
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: void do_fill_plt_entry(Output_data_plt_aarch64_standard<64,_false> *
   this, uchar * pov, Address got_address, Address plt_address, uint got_offset, uint plt_offset) */

void __thiscall
anon_unknown.dwarf_109b185::Output_data_plt_aarch64_standard<64,_false>::do_fill_plt_entry
          (Output_data_plt_aarch64_standard<64,_false> *this,uchar *pov,Address got_address,
          Address plt_address,uint got_offset,uint plt_offset)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  
  *(undefined4 *)(pov + 0xc) =
       (anonymous_namespace)::Output_data_plt_aarch64_standard<64,true>::plt_entry._12_4_;
  uVar2 = got_offset + (uint)got_address;
  uVar3 = (uint)(plt_address + plt_offset) & 0xfffff000;
  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;
  *(uint *)pov = ((uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -
                            (int)(plt_address + plt_offset >> 0x20)) -
                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |
                 (uVar1 & 3) << 0x1d | 0x90000010;
  *(uint *)(pov + 8) = (uVar2 & 0xfff) << 10 | 0x91000210;
  *(uint *)(pov + 4) = (uVar2 & 0xff8) << 7 | 0xf9400211;
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_001d1500(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6
                 ,uint param_7,uint param_8)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  
  param_2[3] = DAT_004809ac;
  uVar2 = param_7 + param_3;
  uVar3 = param_8 + param_5 & 0xfffff000;
  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;
  *param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -
                        (param_6 + (uint)CARRY4(param_8,param_5))) -
                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |
             (uVar1 & 3) << 0x1d | 0x90000010;
  param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;
  param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;
  return;
}


CALL 0x00074f02
ADD EAX,0x418afb
PUSH EBP
XOR EDX,EDX
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x14
MOV EAX,dword ptr [EAX + 0xffe969ac]
MOV EBP,dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [ESP + 0x44]
MOV dword ptr [EBP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x40]
ADD EAX,dword ptr [ESP + 0x30]
ADC EDX,dword ptr [ESP + 0x34]
MOV EBX,EAX
MOV dword ptr [ESP + 0x4],EDX
AND EBX,0xfffff000
MOV dword ptr [ESP + 0xc],EDX
MOV dword ptr [ESP],EBX
XOR EBX,EBX
ADD ECX,dword ptr [ESP + 0x38]
MOV EDI,ECX
ADC EBX,dword ptr [ESP + 0x3c]
MOV ECX,dword ptr [ESP]
MOV dword ptr [ESP + 0x8],EAX
MOV EDX,EBX
AND EDI,0xfffff000
MOV EBX,dword ptr [ESP + 0x4]
SUB ECX,EDI
SBB EBX,EDX
MOV ESI,ECX
XOR EDX,EDX
SHRD ESI,EBX,0xc
MOV EDI,ESI
AND EDI,0x1fffff
MOV ESI,EDI
MOV EAX,EDI
SHL ESI,0x1d
SHRD EAX,EDX,0x2
MOV ECX,ESI
SHL EAX,0x5
AND ECX,0x60000000
OR EAX,ECX
OR EAX,0x90000010
MOV dword ptr [EBP],EAX
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,EAX
SHL EAX,0xa
SHL EDX,0x7
AND EAX,0x3ffc00
AND EDX,0x7fc00
OR EAX,0x91000210
OR EDX,0xf9400211
MOV dword ptr [EBP + 0x8],EAX
MOV dword ptr [EBP + 0x4],EDX
ADD ESP,0x14
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_001d1500(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  param_2[3] = DAT_004809ac;\n  uVar2 = param_7 + param_3;\n  uVar3 = param_8 + param_5 & 0xfffff000;\n  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;\n  *param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;\n  param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;\n  param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;\n  return;\n}\n\n" comment (function_definition "void FUN_001d1500(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  param_2[3] = DAT_004809ac;\n  uVar2 = param_7 + param_3;\n  uVar3 = param_8 + param_5 & 0xfffff000;\n  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;\n  *param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;\n  param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;\n  param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;\n  return;\n}" primitive_type (function_declarator "FUN_001d1500(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)" identifier (parameter_list "(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "uint param_7" type_identifier identifier) , (parameter_declaration "uint param_8" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  param_2[3] = DAT_004809ac;\n  uVar2 = param_7 + param_3;\n  uVar3 = param_8 + param_5 & 0xfffff000;\n  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;\n  *param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;\n  param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;\n  param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "param_2[3] = DAT_004809ac;" (assignment_expression "param_2[3] = DAT_004809ac" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = param_7 + param_3;" (assignment_expression "uVar2 = param_7 + param_3" identifier = (binary_expression "param_7 + param_3" identifier + identifier)) ;) (expression_statement "uVar3 = param_8 + param_5 & 0xfffff000;" (assignment_expression "uVar3 = param_8 + param_5 & 0xfffff000" identifier = (binary_expression "param_8 + param_5 & 0xfffff000" (binary_expression "param_8 + param_5" identifier + identifier) & number_literal)) ;) (expression_statement "uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;" (assignment_expression "uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc" identifier = (binary_expression "(uVar2 & 0xfffff000) - uVar3 >> 0xc" (binary_expression "(uVar2 & 0xfffff000) - uVar3" (parenthesized_expression "(uVar2 & 0xfffff000)" ( (binary_expression "uVar2 & 0xfffff000" identifier & number_literal) )) - identifier) >> number_literal)) ;) (expression_statement "*param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;" (assignment_expression "*param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010" (pointer_expression "*param_2" * identifier) = (binary_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010" (binary_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d" (binary_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5" (parenthesized_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2)" ( (binary_expression "(uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2" (parenthesized_expression "(uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff)" ( (binary_expression "uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff" identifier | (binary_expression "(((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff" (binary_expression "(((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000" (parenthesized_expression "(((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3))" ( (binary_expression "((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)" (parenthesized_expression "((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5)))" ( (binary_expression "(param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))" (parenthesized_expression "(param_4 + (uint)CARRY4(param_7,param_3))" ( (binary_expression "param_4 + (uint)CARRY4(param_7,param_3)" identifier + (cast_expression "(uint)CARRY4(param_7,param_3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(param_7,param_3)" identifier (argument_list "(param_7,param_3)" ( identifier , identifier ))))) )) - (parenthesized_expression "(param_6 + (uint)CARRY4(param_8,param_5))" ( (binary_expression "param_6 + (uint)CARRY4(param_8,param_5)" identifier + (cast_expression "(uint)CARRY4(param_8,param_5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(param_8,param_5)" identifier (argument_list "(param_8,param_5)" ( identifier , identifier ))))) ))) )) - (call_expression "(uint)((uVar2 & 0xfffff000) < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar2 & 0xfffff000) < uVar3)" ( (binary_expression "(uVar2 & 0xfffff000) < uVar3" (parenthesized_expression "(uVar2 & 0xfffff000)" ( (binary_expression "uVar2 & 0xfffff000" identifier & number_literal) )) < identifier) )))) )) * number_literal) & number_literal)) )) >> number_literal) )) << number_literal) | (binary_expression "(uVar1 & 3) << 0x1d" (parenthesized_expression "(uVar1 & 3)" ( (binary_expression "uVar1 & 3" identifier & number_literal) )) << number_literal)) | number_literal)) ;) (expression_statement "param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;" (assignment_expression "param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "(uVar2 & 0xfff) << 10 | 0x91000210" (binary_expression "(uVar2 & 0xfff) << 10" (parenthesized_expression "(uVar2 & 0xfff)" ( (binary_expression "uVar2 & 0xfff" identifier & number_literal) )) << number_literal) | number_literal)) ;) (expression_statement "param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;" (assignment_expression "param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "(uVar2 & 0xff8) << 7 | 0xf9400211" (binary_expression "(uVar2 & 0xff8) << 7" (parenthesized_expression "(uVar2 & 0xff8)" ( (binary_expression "uVar2 & 0xff8" identifier & number_literal) )) << number_literal) | number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original prototype: void do_fill_plt_entry(Output_data_plt_aarch64_standard<64,_false> *\n   this, uchar * pov, Address got_address, Address plt_address, uint got_offset, uint plt_offset) */\n\nvoid __thiscall\nanon_unknown.dwarf_109b185::Output_data_plt_aarch64_standard<64,_false>::do_fill_plt_entry\n          (Output_data_plt_aarch64_standard<64,_false> *this,uchar *pov,Address got_address,\n          Address plt_address,uint got_offset,uint plt_offset)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  *(undefined4 *)(pov + 0xc) =\n       (anonymous_namespace)::Output_data_plt_aarch64_standard<64,true>::plt_entry._12_4_;\n  uVar2 = got_offset + (uint)got_address;\n  uVar3 = (uint)(plt_address + plt_offset) & 0xfffff000;\n  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;\n  *(uint *)pov = ((uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n                 (uVar1 & 3) << 0x1d | 0x90000010;\n  *(uint *)(pov + 8) = (uVar2 & 0xfff) << 10 | 0x91000210;\n  *(uint *)(pov + 4) = (uVar2 & 0xff8) << 7 | 0xf9400211;\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nanon_unknown.dwarf_109b185::Output_data_plt_aarch64_standard<64,_false>::do_fill_plt_entry\n          (Output_data_plt_aarch64_standard<64,_false> *this,uchar *pov,Address got_address,\n          Address plt_address,uint got_offset,uint plt_offset)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_109b185::" identifier . identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>::do_fill_plt_entry\n          (Output_data_plt_aarch64_standard<64,_false> *this,uchar *pov,Address got_address,\n          Address plt_address,uint got_offset,uint plt_offset)\n\n{\n  uint" identifier > : : (function_declarator "do_fill_plt_entry\n          (Output_data_plt_aarch64_standard<64,_false> *this,uchar *pov,Address got_address,\n          Address plt_address,uint got_offset,uint plt_offset)" identifier (parameter_list "(Output_data_plt_aarch64_standard<64,_false> *this,uchar *pov,Address got_address,\n          Address plt_address,uint got_offset,uint plt_offset)" ( (parameter_declaration "Output_data_plt_aarch64_standard" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uchar *pov" type_identifier (pointer_declarator "*pov" * identifier)) , (parameter_declaration "Address got_address" type_identifier identifier) , (parameter_declaration "Address plt_address" type_identifier identifier) , (parameter_declaration "uint got_offset" type_identifier identifier) , (parameter_declaration "uint plt_offset" type_identifier identifier) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "*(undefined4 *)(pov + 0xc) =\n       (anonymous_namespace)::Output_data_plt_aarch64_standard<64,true>::plt_entry._12_4_;" (update_expression "*(undefined4 *)(pov + 0xc) =\n       (anonymous_namespace)::Output_data_plt_aarch64_standard<64,true>::plt_entry._12_4_" (binary_expression "*(undefined4 *)(pov + 0xc) =\n       (anonymous_namespace)::Output_data_plt_aarch64_standard<64,true>::plt_entry._12_4_" (binary_expression "*(undefined4 *)(pov + 0xc) =\n       (anonymous_namespace)::Output_data_plt_aarch64_standard<64" (assignment_expression "*(undefined4 *)(pov + 0xc) =\n       (anonymous_namespace)" (pointer_expression "*(undefined4 *)(pov + 0xc)" * (cast_expression "(undefined4 *)(pov + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pov + 0xc)" ( (binary_expression "pov + 0xc" identifier + number_literal) )))) = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Output_data_plt_aarch64_standard" : : identifier) < number_literal) (ERROR ",true" , true) > (ERROR "::" : :) (field_expression "plt_entry._12_4_" identifier . field_identifier)) --) ;) (expression_statement "uVar2 = got_offset + (uint)got_address;" (assignment_expression "uVar2 = got_offset + (uint)got_address" identifier = (binary_expression "got_offset + (uint)got_address" identifier + (cast_expression "(uint)got_address" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar3 = (uint)(plt_address + plt_offset) & 0xfffff000;" (assignment_expression "uVar3 = (uint)(plt_address + plt_offset) & 0xfffff000" identifier = (binary_expression "(uint)(plt_address + plt_offset) & 0xfffff000" (call_expression "(uint)(plt_address + plt_offset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plt_address + plt_offset)" ( (binary_expression "plt_address + plt_offset" identifier + identifier) ))) & number_literal)) ;) (expression_statement "uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;" (assignment_expression "uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc" identifier = (binary_expression "(uVar2 & 0xfffff000) - uVar3 >> 0xc" (binary_expression "(uVar2 & 0xfffff000) - uVar3" (parenthesized_expression "(uVar2 & 0xfffff000)" ( (binary_expression "uVar2 & 0xfffff000" identifier & number_literal) )) - identifier) >> number_literal)) ;) (expression_statement "*(uint *)pov = ((uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n                 (uVar1 & 3) << 0x1d | 0x90000010;" (assignment_expression "*(uint *)pov = ((uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n                 (uVar1 & 3) << 0x1d | 0x90000010" (pointer_expression "*(uint *)pov" * (cast_expression "(uint *)pov" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "((uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n                 (uVar1 & 3) << 0x1d | 0x90000010" (binary_expression "((uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n                 (uVar1 & 3) << 0x1d" (binary_expression "((uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5" (parenthesized_expression "((uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2)" ( (binary_expression "(uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2" (parenthesized_expression "(uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff)" ( (binary_expression "uVar1 | (((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff" identifier | (binary_expression "(((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff" (binary_expression "(((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000" (parenthesized_expression "(((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3))" ( (binary_expression "((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)) -\n                           (uint)((uVar2 & 0xfffff000) < uVar3)" (parenthesized_expression "((got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20))" ( (binary_expression "(got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)) -\n                            (int)(plt_address + plt_offset >> 0x20)" (parenthesized_expression "(got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address))" ( (binary_expression "got_address._4_4_ + (uint)CARRY4(got_offset,(uint)got_address)" (field_expression "got_address._4_4_" identifier . field_identifier) + (cast_expression "(uint)CARRY4(got_offset,(uint)got_address)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(got_offset,(uint)got_address)" identifier (argument_list "(got_offset,(uint)got_address)" ( identifier , (cast_expression "(uint)got_address" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)(plt_address + plt_offset >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(plt_address + plt_offset >> 0x20)" ( (binary_expression "plt_address + plt_offset >> 0x20" (binary_expression "plt_address + plt_offset" identifier + identifier) >> number_literal) )))) )) - (call_expression "(uint)((uVar2 & 0xfffff000) < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar2 & 0xfffff000) < uVar3)" ( (binary_expression "(uVar2 & 0xfffff000) < uVar3" (parenthesized_expression "(uVar2 & 0xfffff000)" ( (binary_expression "uVar2 & 0xfffff000" identifier & number_literal) )) < identifier) )))) )) * number_literal) & number_literal)) )) >> number_literal) )) << number_literal) | (binary_expression "(uVar1 & 3) << 0x1d" (parenthesized_expression "(uVar1 & 3)" ( (binary_expression "uVar1 & 3" identifier & number_literal) )) << number_literal)) | number_literal)) ;) (expression_statement "*(uint *)(pov + 8) = (uVar2 & 0xfff) << 10 | 0x91000210;" (assignment_expression "*(uint *)(pov + 8) = (uVar2 & 0xfff) << 10 | 0x91000210" (pointer_expression "*(uint *)(pov + 8)" * (cast_expression "(uint *)(pov + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pov + 8)" ( (binary_expression "pov + 8" identifier + number_literal) )))) = (binary_expression "(uVar2 & 0xfff) << 10 | 0x91000210" (binary_expression "(uVar2 & 0xfff) << 10" (parenthesized_expression "(uVar2 & 0xfff)" ( (binary_expression "uVar2 & 0xfff" identifier & number_literal) )) << number_literal) | number_literal)) ;) (expression_statement "*(uint *)(pov + 4) = (uVar2 & 0xff8) << 7 | 0xf9400211;" (assignment_expression "*(uint *)(pov + 4) = (uVar2 & 0xff8) << 7 | 0xf9400211" (pointer_expression "*(uint *)(pov + 4)" * (cast_expression "(uint *)(pov + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pov + 4)" ( (binary_expression "pov + 4" identifier + number_literal) )))) = (binary_expression "(uVar2 & 0xff8) << 7 | 0xf9400211" (binary_expression "(uVar2 & 0xff8) << 7" (parenthesized_expression "(uVar2 & 0xff8)" ( (binary_expression "uVar2 & 0xff8" identifier & number_literal) )) << number_literal) | number_literal)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001d1500(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  param_2[3] = DAT_004809ac;\n  uVar2 = param_7 + param_3;\n  uVar3 = param_8 + param_5 & 0xfffff000;\n  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;\n  *param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;\n  param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;\n  param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;\n  return;\n}\n\n" (function_definition "void FUN_001d1500(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  param_2[3] = DAT_004809ac;\n  uVar2 = param_7 + param_3;\n  uVar3 = param_8 + param_5 & 0xfffff000;\n  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;\n  *param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;\n  param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;\n  param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;\n  return;\n}" primitive_type (function_declarator "FUN_001d1500(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)" identifier (parameter_list "(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "uint param_7" type_identifier identifier) , (parameter_declaration "uint param_8" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  param_2[3] = DAT_004809ac;\n  uVar2 = param_7 + param_3;\n  uVar3 = param_8 + param_5 & 0xfffff000;\n  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;\n  *param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;\n  param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;\n  param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "param_2[3] = DAT_004809ac;" (assignment_expression "param_2[3] = DAT_004809ac" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = param_7 + param_3;" (assignment_expression "uVar2 = param_7 + param_3" identifier = (binary_expression "param_7 + param_3" identifier + identifier)) ;) (expression_statement "uVar3 = param_8 + param_5 & 0xfffff000;" (assignment_expression "uVar3 = param_8 + param_5 & 0xfffff000" identifier = (binary_expression "param_8 + param_5 & 0xfffff000" (binary_expression "param_8 + param_5" identifier + identifier) & number_literal)) ;) (expression_statement "uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;" (assignment_expression "uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc" identifier = (binary_expression "(uVar2 & 0xfffff000) - uVar3 >> 0xc" (binary_expression "(uVar2 & 0xfffff000) - uVar3" (parenthesized_expression "(uVar2 & 0xfffff000)" ( (binary_expression "uVar2 & 0xfffff000" identifier & number_literal) )) - identifier) >> number_literal)) ;) (expression_statement "*param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;" (assignment_expression "*param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010" (pointer_expression "*param_2" * identifier) = (binary_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010" (binary_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d" (binary_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5" (parenthesized_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2)" ( (binary_expression "(uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2" (parenthesized_expression "(uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff)" ( (binary_expression "uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff" identifier | (binary_expression "(((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff" (binary_expression "(((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000" (parenthesized_expression "(((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3))" ( (binary_expression "((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)" (parenthesized_expression "((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5)))" ( (binary_expression "(param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))" (parenthesized_expression "(param_4 + (uint)CARRY4(param_7,param_3))" ( (binary_expression "param_4 + (uint)CARRY4(param_7,param_3)" identifier + (cast_expression "(uint)CARRY4(param_7,param_3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(param_7,param_3)" identifier (argument_list "(param_7,param_3)" ( identifier , identifier ))))) )) - (parenthesized_expression "(param_6 + (uint)CARRY4(param_8,param_5))" ( (binary_expression "param_6 + (uint)CARRY4(param_8,param_5)" identifier + (cast_expression "(uint)CARRY4(param_8,param_5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(param_8,param_5)" identifier (argument_list "(param_8,param_5)" ( identifier , identifier ))))) ))) )) - (call_expression "(uint)((uVar2 & 0xfffff000) < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar2 & 0xfffff000) < uVar3)" ( (binary_expression "(uVar2 & 0xfffff000) < uVar3" (parenthesized_expression "(uVar2 & 0xfffff000)" ( (binary_expression "uVar2 & 0xfffff000" identifier & number_literal) )) < identifier) )))) )) * number_literal) & number_literal)) )) >> number_literal) )) << number_literal) | (binary_expression "(uVar1 & 3) << 0x1d" (parenthesized_expression "(uVar1 & 3)" ( (binary_expression "uVar1 & 3" identifier & number_literal) )) << number_literal)) | number_literal)) ;) (expression_statement "param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;" (assignment_expression "param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "(uVar2 & 0xfff) << 10 | 0x91000210" (binary_expression "(uVar2 & 0xfff) << 10" (parenthesized_expression "(uVar2 & 0xfff)" ( (binary_expression "uVar2 & 0xfff" identifier & number_literal) )) << number_literal) | number_literal)) ;) (expression_statement "param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;" (assignment_expression "param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "(uVar2 & 0xff8) << 7 | 0xf9400211" (binary_expression "(uVar2 & 0xff8) << 7" (parenthesized_expression "(uVar2 & 0xff8)" ( (binary_expression "uVar2 & 0xff8" identifier & number_literal) )) << number_literal) | number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - IDENT) >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT | (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) )) - (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) < IDENT) )))) )) * LIT) & LIT)) )) >> LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | LIT)) ;) (return_statement return ;) })))
(function_definition "void FUN_001d1500(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  param_2[3] = DAT_004809ac;\n  uVar2 = param_7 + param_3;\n  uVar3 = param_8 + param_5 & 0xfffff000;\n  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;\n  *param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;\n  param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;\n  param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001d1500(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)" (identifier "FUN_001d1500") (parameter_list "(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6\n                 ,uint param_7,uint param_8)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "uint param_7" (type_identifier "uint") (identifier "param_7")) (, ",") (parameter_declaration "uint param_8" (type_identifier "uint") (identifier "param_8")) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  \n  param_2[3] = DAT_004809ac;\n  uVar2 = param_7 + param_3;\n  uVar3 = param_8 + param_5 & 0xfffff000;\n  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;\n  *param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;\n  param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;\n  param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (expression_statement "param_2[3] = DAT_004809ac;" (assignment_expression "param_2[3] = DAT_004809ac" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "DAT_004809ac")) (; ";")) (expression_statement "uVar2 = param_7 + param_3;" (assignment_expression "uVar2 = param_7 + param_3" (identifier "uVar2") (= "=") (binary_expression "param_7 + param_3" (identifier "param_7") (+ "+") (identifier "param_3"))) (; ";")) (expression_statement "uVar3 = param_8 + param_5 & 0xfffff000;" (assignment_expression "uVar3 = param_8 + param_5 & 0xfffff000" (identifier "uVar3") (= "=") (binary_expression "param_8 + param_5 & 0xfffff000" (binary_expression "param_8 + param_5" (identifier "param_8") (+ "+") (identifier "param_5")) (& "&") (number_literal "0xfffff000"))) (; ";")) (expression_statement "uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;" (assignment_expression "uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc" (identifier "uVar1") (= "=") (binary_expression "(uVar2 & 0xfffff000) - uVar3 >> 0xc" (binary_expression "(uVar2 & 0xfffff000) - uVar3" (parenthesized_expression "(uVar2 & 0xfffff000)" (( "(") (binary_expression "uVar2 & 0xfffff000" (identifier "uVar2") (& "&") (number_literal "0xfffff000")) () ")")) (- "-") (identifier "uVar3")) (>> ">>") (number_literal "0xc"))) (; ";")) (expression_statement "*param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010;" (assignment_expression "*param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d | 0x90000010" (binary_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |\n             (uVar1 & 3) << 0x1d" (binary_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5" (parenthesized_expression "((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2)" (( "(") (binary_expression "(uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2" (parenthesized_expression "(uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff)" (( "(") (binary_expression "uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff" (identifier "uVar1") (| "|") (binary_expression "(((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff" (binary_expression "(((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000" (parenthesized_expression "(((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3))" (( "(") (binary_expression "((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))) -\n                       (uint)((uVar2 & 0xfffff000) < uVar3)" (parenthesized_expression "((param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5)))" (( "(") (binary_expression "(param_4 + (uint)CARRY4(param_7,param_3)) -\n                        (param_6 + (uint)CARRY4(param_8,param_5))" (parenthesized_expression "(param_4 + (uint)CARRY4(param_7,param_3))" (( "(") (binary_expression "param_4 + (uint)CARRY4(param_7,param_3)" (identifier "param_4") (+ "+") (cast_expression "(uint)CARRY4(param_7,param_3)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(param_7,param_3)" (identifier "CARRY4") (argument_list "(param_7,param_3)" (( "(") (identifier "param_7") (, ",") (identifier "param_3") () ")"))))) () ")")) (- "-") (parenthesized_expression "(param_6 + (uint)CARRY4(param_8,param_5))" (( "(") (binary_expression "param_6 + (uint)CARRY4(param_8,param_5)" (identifier "param_6") (+ "+") (cast_expression "(uint)CARRY4(param_8,param_5)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(param_8,param_5)" (identifier "CARRY4") (argument_list "(param_8,param_5)" (( "(") (identifier "param_8") (, ",") (identifier "param_5") () ")"))))) () ")"))) () ")")) (- "-") (call_expression "(uint)((uVar2 & 0xfffff000) < uVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar2 & 0xfffff000) < uVar3)" (( "(") (binary_expression "(uVar2 & 0xfffff000) < uVar3" (parenthesized_expression "(uVar2 & 0xfffff000)" (( "(") (binary_expression "uVar2 & 0xfffff000" (identifier "uVar2") (& "&") (number_literal "0xfffff000")) () ")")) (< "<") (identifier "uVar3")) () ")")))) () ")")) (* "*") (number_literal "0x100000")) (& "&") (number_literal "0x1fffff"))) () ")")) (>> ">>") (number_literal "2")) () ")")) (<< "<<") (number_literal "5")) (| "|") (binary_expression "(uVar1 & 3) << 0x1d" (parenthesized_expression "(uVar1 & 3)" (( "(") (binary_expression "uVar1 & 3" (identifier "uVar1") (& "&") (number_literal "3")) () ")")) (<< "<<") (number_literal "0x1d"))) (| "|") (number_literal "0x90000010"))) (; ";")) (expression_statement "param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;" (assignment_expression "param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(uVar2 & 0xfff) << 10 | 0x91000210" (binary_expression "(uVar2 & 0xfff) << 10" (parenthesized_expression "(uVar2 & 0xfff)" (( "(") (binary_expression "uVar2 & 0xfff" (identifier "uVar2") (& "&") (number_literal "0xfff")) () ")")) (<< "<<") (number_literal "10")) (| "|") (number_literal "0x91000210"))) (; ";")) (expression_statement "param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;" (assignment_expression "param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(uVar2 & 0xff8) << 7 | 0xf9400211" (binary_expression "(uVar2 & 0xff8) << 7" (parenthesized_expression "(uVar2 & 0xff8)" (( "(") (binary_expression "uVar2 & 0xff8" (identifier "uVar2") (& "&") (number_literal "0xff8")) () ")")) (<< "<<") (number_literal "7")) (| "|") (number_literal "0xf9400211"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: void do_fill_plt_entry(Output_data_plt_aarch64_standard<64,_false> *
   this, uchar * pov, Address got_address, Address plt_address, uint got_offset, uint plt_offset) */

void __thiscall
anon_unknown.dwarf_109b185::Output_data_plt_aarch64_standard<64,_false>::do_fill_plt_entry
          (Output_data_plt_aarch64_standard<64,_false> *this,uchar *var_1,Address got_address,
          Address var_3,type_1 var_2,type_1 var_4)

{
  type_1 var_7;
  type_1 var_5;
  type_1 var_6;
  
  *(type_2 *)(var_1 + 0xc) =
       (anonymous_namespace)::Output_data_plt_aarch64_standard<64,true>::plt_entry._12_4_;
  var_5 = var_2 + (type_1)got_address;
  var_6 = (type_1)(var_3 + var_4) & 0xfffff000;
  var_7 = (var_5 & 0xfffff000) - var_6 >> 0xc;
  *(type_1 *)var_1 = ((var_7 | (((got_address._4_4_ + (type_1)var_8(var_2,(type_1)got_address)) -
                            (int)(var_3 + var_4 >> 0x20)) -
                           (type_1)((var_5 & 0xfffff000) < var_6)) * 0x100000 & 0x1fffff) >> 2) << 5 |
                 (var_7 & 3) << 0x1d | 0x90000010;
  *(type_1 *)(var_1 + 8) = (var_5 & 0xfff) << 10 | 0x91000210;
  *(type_1 *)(var_1 + 4) = (var_5 & 0xff8) << 7 | 0xf9400211;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier)))))) right: (number_literal)) right: (number_literal)))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (number_literal)))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(undefined4 param_1,uint *param_2,uint param_3,int param_4,uint param_5,int param_6
                 ,uint param_7,uint param_8)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  
  param_2[3] = DAT_004809ac;
  uVar2 = param_7 + param_3;
  uVar3 = param_8 + param_5 & 0xfffff000;
  uVar1 = (uVar2 & 0xfffff000) - uVar3 >> 0xc;
  *param_2 = ((uVar1 | (((param_4 + (uint)CARRY4(param_7,param_3)) -
                        (param_6 + (uint)CARRY4(param_8,param_5))) -
                       (uint)((uVar2 & 0xfffff000) < uVar3)) * 0x100000 & 0x1fffff) >> 2) << 5 |
             (uVar1 & 3) << 0x1d | 0x90000010;
  param_2[2] = (uVar2 & 0xfff) << 10 | 0x91000210;
  param_2[1] = (uVar2 & 0xff8) << 7 | 0xf9400211;
  return;
}

