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

void __thiscall
anon_unknown.dwarf_109b185::Output_data_plt_aarch64_standard<64,_true>::do_fill_first_plt_entry
          (Output_data_plt_aarch64_standard<64,_true> *this,uchar *pov,Address got_address,
          Address plt_address)

{
  undefined4 uVar1;
  uint uVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  
  uVar1 = (anonymous_namespace)::Output_data_plt_aarch64_standard<64,true>::first_plt_entry;
  *(undefined4 *)(pov + 0x10) = DAT_004809d0;
  uVar3 = DAT_004809d4;
  uVar6 = (uint)got_address + 0x10;
  *(undefined4 *)pov = uVar1;
  uVar2 = DAT_004809c4;
  *(undefined4 *)(pov + 0x14) = uVar3;
  uVar1 = DAT_004809dc;
  *(undefined4 *)(pov + 0x18) = DAT_004809d8;
  *(undefined4 *)(pov + 0x1c) = uVar1;
  uVar4 = (uint)(plt_address + 4) & 0xfffff000;
  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;
  uVar4 = ((uVar5 | (((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -
                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *
                    0x100000 & 0x1fffff) >> 2) << 5;
  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;
  *(uint *)(pov + 4) =
       uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;
  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;
  *(uint *)(pov + 0xc) =
       (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |
       ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;
  *(uint *)(pov + 8) = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;
  return;
}



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

void FUN_001d2f30(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,
                 int param_6)

{
  undefined4 uVar1;
  uint uVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  
  uVar1 = DAT_004809c0;
  param_2[4] = DAT_004809d0;
  uVar3 = DAT_004809d4;
  uVar6 = param_3 + 0x10;
  *param_2 = uVar1;
  uVar2 = DAT_004809c4;
  param_2[5] = uVar3;
  uVar1 = DAT_004809dc;
  param_2[6] = DAT_004809d8;
  param_2[7] = uVar1;
  uVar4 = param_5 + 4 & 0xfffff000;
  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;
  uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -
                     (param_6 + (uint)(0xfffffffb < param_5))) -
                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;
  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;
  param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;
  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;
  param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |
               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;
  param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;
  return;
}


CALL 0x00074f02
ADD EAX,0x4170cb
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x14
MOV ECX,dword ptr [EAX + 0xffe969d0]
MOV EDX,dword ptr [EAX + 0xffe969c0]
MOV EBP,dword ptr [ESP + 0x2c]
MOV EBX,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [ESP + 0x34]
MOV dword ptr [EBP + 0x10],ECX
MOV ECX,dword ptr [EAX + 0xffe969d4]
ADD EBX,0x10
MOV dword ptr [EBP],EDX
MOV EDX,dword ptr [EAX + 0xffe969c4]
ADC ESI,0x0
MOV dword ptr [EBP + 0x14],ECX
MOV ECX,dword ptr [EAX + 0xffe969d8]
MOV EAX,dword ptr [EAX + 0xffe969dc]
BSWAP EDX
MOV dword ptr [EBP + 0x18],ECX
MOV ECX,EBX
MOV EBX,ESI
MOV dword ptr [EBP + 0x1c],EAX
MOV EAX,ECX
MOV EDI,EBX
MOV dword ptr [ESP + 0x8],ECX
MOV ECX,dword ptr [ESP + 0x38]
AND EAX,0xfffff000
MOV dword ptr [ESP + 0xc],EBX
MOV EBX,dword ptr [ESP + 0x3c]
MOV ESI,EAX
ADD ECX,0x4
MOV dword ptr [ESP],ECX
MOV EAX,dword ptr [ESP]
ADC EBX,0x0
MOV dword ptr [ESP + 0x4],EBX
MOV EBX,dword ptr [ESP + 0x4]
AND EAX,0xfffff000
SUB ESI,EAX
SBB EDI,EBX
XOR EBX,EBX
AND EDX,0x9f00001f
SHRD ESI,EDI,0xc
MOV EAX,ESI
AND EAX,0x1fffff
MOV ESI,EAX
MOV ECX,EAX
SHL ESI,0x1d
MOV EAX,ESI
MOV ESI,ECX
SHRD ESI,EBX,0x2
AND EAX,0x60000000
SHL ESI,0x5
MOV ECX,ESI
OR ECX,EAX
MOV EAX,dword ptr [ESP + 0x8]
OR ECX,EDX
MOV EDX,EAX
SHL EAX,0xa
BSWAP ECX
MOV dword ptr [EBP + 0x4],ECX
SHL EDX,0x7
AND EAX,0x3ffc00
AND EDX,0x7fc00
OR EAX,0x91000210
OR EDX,0xf9400211
BSWAP EAX
MOV dword ptr [EBP + 0xc],EAX
BSWAP EDX
MOV dword ptr [EBP + 0x8],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_001d2f30(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  uVar1 = DAT_004809c0;\n  param_2[4] = DAT_004809d0;\n  uVar3 = DAT_004809d4;\n  uVar6 = param_3 + 0x10;\n  *param_2 = uVar1;\n  uVar2 = DAT_004809c4;\n  param_2[5] = uVar3;\n  uVar1 = DAT_004809dc;\n  param_2[6] = DAT_004809d8;\n  param_2[7] = uVar1;\n  uVar4 = param_5 + 4 & 0xfffff000;\n  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;\n  uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;\n  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;\n  param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;\n  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;\n  param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;\n  param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;\n  return;\n}\n\n" comment (function_definition "void FUN_001d2f30(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  uVar1 = DAT_004809c0;\n  param_2[4] = DAT_004809d0;\n  uVar3 = DAT_004809d4;\n  uVar6 = param_3 + 0x10;\n  *param_2 = uVar1;\n  uVar2 = DAT_004809c4;\n  param_2[5] = uVar3;\n  uVar1 = DAT_004809dc;\n  param_2[6] = DAT_004809d8;\n  param_2[7] = uVar1;\n  uVar4 = param_5 + 4 & 0xfffff000;\n  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;\n  uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;\n  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;\n  param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;\n  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;\n  param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;\n  param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;\n  return;\n}" primitive_type (function_declarator "FUN_001d2f30(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *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) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  uVar1 = DAT_004809c0;\n  param_2[4] = DAT_004809d0;\n  uVar3 = DAT_004809d4;\n  uVar6 = param_3 + 0x10;\n  *param_2 = uVar1;\n  uVar2 = DAT_004809c4;\n  param_2[5] = uVar3;\n  uVar1 = DAT_004809dc;\n  param_2[6] = DAT_004809d8;\n  param_2[7] = uVar1;\n  uVar4 = param_5 + 4 & 0xfffff000;\n  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;\n  uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;\n  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;\n  param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;\n  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;\n  param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;\n  param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "uVar1 = DAT_004809c0;" (assignment_expression "uVar1 = DAT_004809c0" identifier = identifier) ;) (expression_statement "param_2[4] = DAT_004809d0;" (assignment_expression "param_2[4] = DAT_004809d0" (subscript_expression "param_2[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar3 = DAT_004809d4;" (assignment_expression "uVar3 = DAT_004809d4" identifier = identifier) ;) (expression_statement "uVar6 = param_3 + 0x10;" (assignment_expression "uVar6 = param_3 + 0x10" identifier = (binary_expression "param_3 + 0x10" identifier + number_literal)) ;) (expression_statement "*param_2 = uVar1;" (assignment_expression "*param_2 = uVar1" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "uVar2 = DAT_004809c4;" (assignment_expression "uVar2 = DAT_004809c4" identifier = identifier) ;) (expression_statement "param_2[5] = uVar3;" (assignment_expression "param_2[5] = uVar3" (subscript_expression "param_2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = DAT_004809dc;" (assignment_expression "uVar1 = DAT_004809dc" identifier = identifier) ;) (expression_statement "param_2[6] = DAT_004809d8;" (assignment_expression "param_2[6] = DAT_004809d8" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[7] = uVar1;" (assignment_expression "param_2[7] = uVar1" (subscript_expression "param_2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = param_5 + 4 & 0xfffff000;" (assignment_expression "uVar4 = param_5 + 4 & 0xfffff000" identifier = (binary_expression "param_5 + 4 & 0xfffff000" (binary_expression "param_5 + 4" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;" (assignment_expression "uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc" identifier = (binary_expression "(uVar6 & 0xfffff000) - uVar4 >> 0xc" (binary_expression "(uVar6 & 0xfffff000) - uVar4" (parenthesized_expression "(uVar6 & 0xfffff000)" ( (binary_expression "uVar6 & 0xfffff000" identifier & number_literal) )) - identifier) >> number_literal)) ;) (expression_statement "uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;" (assignment_expression "uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5" identifier = (binary_expression "((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5" (parenthesized_expression "((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2)" ( (binary_expression "(uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2" (parenthesized_expression "(uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff)" ( (binary_expression "uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff" identifier | (binary_expression "(((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff" (binary_expression "(((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000" (parenthesized_expression "(((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4))" ( (binary_expression "((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)" (parenthesized_expression "((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5)))" ( (binary_expression "(param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))" (parenthesized_expression "(param_4 + (uint)(0xffffffef < param_3))" ( (binary_expression "param_4 + (uint)(0xffffffef < param_3)" identifier + (call_expression "(uint)(0xffffffef < param_3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xffffffef < param_3)" ( (binary_expression "0xffffffef < param_3" number_literal < identifier) )))) )) - (parenthesized_expression "(param_6 + (uint)(0xfffffffb < param_5))" ( (binary_expression "param_6 + (uint)(0xfffffffb < param_5)" identifier + (call_expression "(uint)(0xfffffffb < param_5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffb < param_5)" ( (binary_expression "0xfffffffb < param_5" number_literal < identifier) )))) ))) )) - (call_expression "(uint)((uVar6 & 0xfffff000) < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar6 & 0xfffff000) < uVar4)" ( (binary_expression "(uVar6 & 0xfffff000) < uVar4" (parenthesized_expression "(uVar6 & 0xfffff000)" ( (binary_expression "uVar6 & 0xfffff000" identifier & number_literal) )) < identifier) )))) )) * number_literal) & number_literal)) )) >> number_literal) )) << number_literal)) ;) (expression_statement "uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;" (assignment_expression "uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" identifier = (binary_expression "uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" (binary_expression "uVar4 | (uVar5 & 3) << 0x1d" identifier | (binary_expression "(uVar5 & 3) << 0x1d" (parenthesized_expression "(uVar5 & 3)" ( (binary_expression "uVar5 & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" (parenthesized_expression "(uVar2 >> 0x18 | uVar2 << 0x18)" ( (binary_expression "uVar2 >> 0x18 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "uVar2 << 0x18" identifier << number_literal)) )) & number_literal))) ;) (expression_statement "param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;" (assignment_expression "uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211" identifier = (binary_expression "(uVar6 & 0xff8) << 7 | 0xf9400211" (binary_expression "(uVar6 & 0xff8) << 7" (parenthesized_expression "(uVar6 & 0xff8)" ( (binary_expression "uVar6 & 0xff8" identifier & number_literal) )) << number_literal) | number_literal)) ;) (expression_statement "param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;" (assignment_expression "param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8" (parenthesized_expression "(uVar6 * 0x400 & 0x3f0000)" ( (binary_expression "uVar6 * 0x400 & 0x3f0000" (binary_expression "uVar6 * 0x400" identifier * number_literal) & number_literal) )) >> number_literal) | number_literal) | (binary_expression "((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8" (parenthesized_expression "((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00)" ( (binary_expression "(uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00" (parenthesized_expression "(uVar6 * 0x400 & 0x3ffc00 | 0x91000210)" ( (binary_expression "uVar6 * 0x400 & 0x3ffc00 | 0x91000210" (binary_expression "uVar6 * 0x400 & 0x3ffc00" (binary_expression "uVar6 * 0x400" identifier * number_literal) & number_literal) | number_literal) )) & number_literal) )) << number_literal)) | number_literal)) ;) (expression_statement "param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;" (assignment_expression "param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000" (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8" (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9" (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal) | number_literal) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" 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_first_plt_entry(Output_data_plt_aarch64_standard<64,_true>\n   * this, uchar * pov, Address got_address, Address plt_address) */\n\nvoid __thiscall\nanon_unknown.dwarf_109b185::Output_data_plt_aarch64_standard<64,_true>::do_fill_first_plt_entry\n          (Output_data_plt_aarch64_standard<64,_true> *this,uchar *pov,Address got_address,\n          Address plt_address)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  uVar1 = (anonymous_namespace)::Output_data_plt_aarch64_standard<64,true>::first_plt_entry;\n  *(undefined4 *)(pov + 0x10) = DAT_004809d0;\n  uVar3 = DAT_004809d4;\n  uVar6 = (uint)got_address + 0x10;\n  *(undefined4 *)pov = uVar1;\n  uVar2 = DAT_004809c4;\n  *(undefined4 *)(pov + 0x14) = uVar3;\n  uVar1 = DAT_004809dc;\n  *(undefined4 *)(pov + 0x18) = DAT_004809d8;\n  *(undefined4 *)(pov + 0x1c) = uVar1;\n  uVar4 = (uint)(plt_address + 4) & 0xfffff000;\n  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;\n  uVar4 = ((uVar5 | (((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *\n                    0x100000 & 0x1fffff) >> 2) << 5;\n  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;\n  *(uint *)(pov + 4) =\n       uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;\n  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;\n  *(uint *)(pov + 0xc) =\n       (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n       ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;\n  *(uint *)(pov + 8) = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nanon_unknown.dwarf_109b185::Output_data_plt_aarch64_standard<64,_true>::do_fill_first_plt_entry\n          (Output_data_plt_aarch64_standard<64,_true> *this,uchar *pov,Address got_address,\n          Address plt_address)\n\n{\n  undefined4 uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_109b185::" identifier . identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::do_fill_first_plt_entry\n          (Output_data_plt_aarch64_standard<64,_true> *this,uchar *pov,Address got_address,\n          Address plt_address)\n\n{\n  undefined4" identifier > : : (function_declarator "do_fill_first_plt_entry\n          (Output_data_plt_aarch64_standard<64,_true> *this,uchar *pov,Address got_address,\n          Address plt_address)" identifier (parameter_list "(Output_data_plt_aarch64_standard<64,_true> *this,uchar *pov,Address got_address,\n          Address plt_address)" ( (parameter_declaration "Output_data_plt_aarch64_standard" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *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) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (ERROR "uVar1 = (anonymous_namespace)::Output_data_plt_aarch64_standard<64,true>::first_plt_entry" (assignment_expression "uVar1 = (anonymous_namespace)" identifier = (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (binary_expression "Output_data_plt_aarch64_standard<64" identifier < number_literal) , (binary_expression "true>::first_plt_entry" true > (ERROR "::" : :) identifier)) (expression_statement ";" ;) (expression_statement "*(undefined4 *)(pov + 0x10) = DAT_004809d0;" (assignment_expression "*(undefined4 *)(pov + 0x10) = DAT_004809d0" (pointer_expression "*(undefined4 *)(pov + 0x10)" * (cast_expression "(undefined4 *)(pov + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pov + 0x10)" ( (binary_expression "pov + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = DAT_004809d4;" (assignment_expression "uVar3 = DAT_004809d4" identifier = identifier) ;) (expression_statement "uVar6 = (uint)got_address + 0x10;" (assignment_expression "uVar6 = (uint)got_address + 0x10" identifier = (binary_expression "(uint)got_address + 0x10" (cast_expression "(uint)got_address" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)pov = uVar1;" (assignment_expression "*(undefined4 *)pov = uVar1" (pointer_expression "*(undefined4 *)pov" * (cast_expression "(undefined4 *)pov" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar2 = DAT_004809c4;" (assignment_expression "uVar2 = DAT_004809c4" identifier = identifier) ;) (expression_statement "*(undefined4 *)(pov + 0x14) = uVar3;" (assignment_expression "*(undefined4 *)(pov + 0x14) = uVar3" (pointer_expression "*(undefined4 *)(pov + 0x14)" * (cast_expression "(undefined4 *)(pov + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pov + 0x14)" ( (binary_expression "pov + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = DAT_004809dc;" (assignment_expression "uVar1 = DAT_004809dc" identifier = identifier) ;) (expression_statement "*(undefined4 *)(pov + 0x18) = DAT_004809d8;" (assignment_expression "*(undefined4 *)(pov + 0x18) = DAT_004809d8" (pointer_expression "*(undefined4 *)(pov + 0x18)" * (cast_expression "(undefined4 *)(pov + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pov + 0x18)" ( (binary_expression "pov + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pov + 0x1c) = uVar1;" (assignment_expression "*(undefined4 *)(pov + 0x1c) = uVar1" (pointer_expression "*(undefined4 *)(pov + 0x1c)" * (cast_expression "(undefined4 *)(pov + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pov + 0x1c)" ( (binary_expression "pov + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (uint)(plt_address + 4) & 0xfffff000;" (assignment_expression "uVar4 = (uint)(plt_address + 4) & 0xfffff000" identifier = (binary_expression "(uint)(plt_address + 4) & 0xfffff000" (call_expression "(uint)(plt_address + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plt_address + 4)" ( (binary_expression "plt_address + 4" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;" (assignment_expression "uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc" identifier = (binary_expression "(uVar6 & 0xfffff000) - uVar4 >> 0xc" (binary_expression "(uVar6 & 0xfffff000) - uVar4" (parenthesized_expression "(uVar6 & 0xfffff000)" ( (binary_expression "uVar6 & 0xfffff000" identifier & number_literal) )) - identifier) >> number_literal)) ;) (expression_statement "uVar4 = ((uVar5 | (((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *\n                    0x100000 & 0x1fffff) >> 2) << 5;" (assignment_expression "uVar4 = ((uVar5 | (((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *\n                    0x100000 & 0x1fffff) >> 2) << 5" identifier = (binary_expression "((uVar5 | (((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *\n                    0x100000 & 0x1fffff) >> 2) << 5" (parenthesized_expression "((uVar5 | (((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *\n                    0x100000 & 0x1fffff) >> 2)" ( (binary_expression "(uVar5 | (((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *\n                    0x100000 & 0x1fffff) >> 2" (parenthesized_expression "(uVar5 | (((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *\n                    0x100000 & 0x1fffff)" ( (binary_expression "uVar5 | (((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *\n                    0x100000 & 0x1fffff" identifier | (binary_expression "(((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *\n                    0x100000 & 0x1fffff" (binary_expression "(((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)) *\n                    0x100000" (parenthesized_expression "(((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4))" ( (binary_expression "((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)) - (uint)((uVar6 & 0xfffff000) < uVar4)" (parenthesized_expression "((got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20))" ( (binary_expression "(got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)) -\n                     (int)(plt_address + 4 >> 0x20)" (parenthesized_expression "(got_address._4_4_ + (uint)(0xffffffef < (uint)got_address))" ( (binary_expression "got_address._4_4_ + (uint)(0xffffffef < (uint)got_address)" (field_expression "got_address._4_4_" identifier . field_identifier) + (call_expression "(uint)(0xffffffef < (uint)got_address)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xffffffef < (uint)got_address)" ( (binary_expression "0xffffffef < (uint)got_address" number_literal < (cast_expression "(uint)got_address" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) )) - (cast_expression "(int)(plt_address + 4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(plt_address + 4 >> 0x20)" ( (binary_expression "plt_address + 4 >> 0x20" (binary_expression "plt_address + 4" identifier + number_literal) >> number_literal) )))) )) - (call_expression "(uint)((uVar6 & 0xfffff000) < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar6 & 0xfffff000) < uVar4)" ( (binary_expression "(uVar6 & 0xfffff000) < uVar4" (parenthesized_expression "(uVar6 & 0xfffff000)" ( (binary_expression "uVar6 & 0xfffff000" identifier & number_literal) )) < identifier) )))) )) * number_literal) & number_literal)) )) >> number_literal) )) << number_literal)) ;) (expression_statement "uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;" (assignment_expression "uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" identifier = (binary_expression "uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" (binary_expression "uVar4 | (uVar5 & 3) << 0x1d" identifier | (binary_expression "(uVar5 & 3) << 0x1d" (parenthesized_expression "(uVar5 & 3)" ( (binary_expression "uVar5 & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" (parenthesized_expression "(uVar2 >> 0x18 | uVar2 << 0x18)" ( (binary_expression "uVar2 >> 0x18 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "uVar2 << 0x18" identifier << number_literal)) )) & number_literal))) ;) (expression_statement "*(uint *)(pov + 4) =\n       uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "*(uint *)(pov + 4) =\n       uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18" (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 "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;" (assignment_expression "uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211" identifier = (binary_expression "(uVar6 & 0xff8) << 7 | 0xf9400211" (binary_expression "(uVar6 & 0xff8) << 7" (parenthesized_expression "(uVar6 & 0xff8)" ( (binary_expression "uVar6 & 0xff8" identifier & number_literal) )) << number_literal) | number_literal)) ;) (expression_statement "*(uint *)(pov + 0xc) =\n       (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n       ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;" (assignment_expression "*(uint *)(pov + 0xc) =\n       (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n       ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000" (pointer_expression "*(uint *)(pov + 0xc)" * (cast_expression "(uint *)(pov + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pov + 0xc)" ( (binary_expression "pov + 0xc" identifier + number_literal) )))) = (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n       ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n       ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8" (parenthesized_expression "(uVar6 * 0x400 & 0x3f0000)" ( (binary_expression "uVar6 * 0x400 & 0x3f0000" (binary_expression "uVar6 * 0x400" identifier * number_literal) & number_literal) )) >> number_literal) | number_literal) | (binary_expression "((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8" (parenthesized_expression "((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00)" ( (binary_expression "(uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00" (parenthesized_expression "(uVar6 * 0x400 & 0x3ffc00 | 0x91000210)" ( (binary_expression "uVar6 * 0x400 & 0x3ffc00 | 0x91000210" (binary_expression "uVar6 * 0x400 & 0x3ffc00" (binary_expression "uVar6 * 0x400" identifier * number_literal) & number_literal) | number_literal) )) & number_literal) )) << number_literal)) | number_literal)) ;) (expression_statement "*(uint *)(pov + 8) = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;" (assignment_expression "*(uint *)(pov + 8) = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000" (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 "(uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000" (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8" (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9" (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal) | number_literal) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | number_literal)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001d2f30(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  uVar1 = DAT_004809c0;\n  param_2[4] = DAT_004809d0;\n  uVar3 = DAT_004809d4;\n  uVar6 = param_3 + 0x10;\n  *param_2 = uVar1;\n  uVar2 = DAT_004809c4;\n  param_2[5] = uVar3;\n  uVar1 = DAT_004809dc;\n  param_2[6] = DAT_004809d8;\n  param_2[7] = uVar1;\n  uVar4 = param_5 + 4 & 0xfffff000;\n  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;\n  uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;\n  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;\n  param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;\n  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;\n  param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;\n  param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;\n  return;\n}\n\n" (function_definition "void FUN_001d2f30(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  uVar1 = DAT_004809c0;\n  param_2[4] = DAT_004809d0;\n  uVar3 = DAT_004809d4;\n  uVar6 = param_3 + 0x10;\n  *param_2 = uVar1;\n  uVar2 = DAT_004809c4;\n  param_2[5] = uVar3;\n  uVar1 = DAT_004809dc;\n  param_2[6] = DAT_004809d8;\n  param_2[7] = uVar1;\n  uVar4 = param_5 + 4 & 0xfffff000;\n  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;\n  uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;\n  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;\n  param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;\n  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;\n  param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;\n  param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;\n  return;\n}" primitive_type (function_declarator "FUN_001d2f30(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *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) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  uVar1 = DAT_004809c0;\n  param_2[4] = DAT_004809d0;\n  uVar3 = DAT_004809d4;\n  uVar6 = param_3 + 0x10;\n  *param_2 = uVar1;\n  uVar2 = DAT_004809c4;\n  param_2[5] = uVar3;\n  uVar1 = DAT_004809dc;\n  param_2[6] = DAT_004809d8;\n  param_2[7] = uVar1;\n  uVar4 = param_5 + 4 & 0xfffff000;\n  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;\n  uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;\n  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;\n  param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;\n  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;\n  param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;\n  param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "uVar1 = DAT_004809c0;" (assignment_expression "uVar1 = DAT_004809c0" identifier = identifier) ;) (expression_statement "param_2[4] = DAT_004809d0;" (assignment_expression "param_2[4] = DAT_004809d0" (subscript_expression "param_2[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar3 = DAT_004809d4;" (assignment_expression "uVar3 = DAT_004809d4" identifier = identifier) ;) (expression_statement "uVar6 = param_3 + 0x10;" (assignment_expression "uVar6 = param_3 + 0x10" identifier = (binary_expression "param_3 + 0x10" identifier + number_literal)) ;) (expression_statement "*param_2 = uVar1;" (assignment_expression "*param_2 = uVar1" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "uVar2 = DAT_004809c4;" (assignment_expression "uVar2 = DAT_004809c4" identifier = identifier) ;) (expression_statement "param_2[5] = uVar3;" (assignment_expression "param_2[5] = uVar3" (subscript_expression "param_2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = DAT_004809dc;" (assignment_expression "uVar1 = DAT_004809dc" identifier = identifier) ;) (expression_statement "param_2[6] = DAT_004809d8;" (assignment_expression "param_2[6] = DAT_004809d8" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[7] = uVar1;" (assignment_expression "param_2[7] = uVar1" (subscript_expression "param_2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = param_5 + 4 & 0xfffff000;" (assignment_expression "uVar4 = param_5 + 4 & 0xfffff000" identifier = (binary_expression "param_5 + 4 & 0xfffff000" (binary_expression "param_5 + 4" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;" (assignment_expression "uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc" identifier = (binary_expression "(uVar6 & 0xfffff000) - uVar4 >> 0xc" (binary_expression "(uVar6 & 0xfffff000) - uVar4" (parenthesized_expression "(uVar6 & 0xfffff000)" ( (binary_expression "uVar6 & 0xfffff000" identifier & number_literal) )) - identifier) >> number_literal)) ;) (expression_statement "uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;" (assignment_expression "uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5" identifier = (binary_expression "((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5" (parenthesized_expression "((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2)" ( (binary_expression "(uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2" (parenthesized_expression "(uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff)" ( (binary_expression "uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff" identifier | (binary_expression "(((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff" (binary_expression "(((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000" (parenthesized_expression "(((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4))" ( (binary_expression "((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)" (parenthesized_expression "((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5)))" ( (binary_expression "(param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))" (parenthesized_expression "(param_4 + (uint)(0xffffffef < param_3))" ( (binary_expression "param_4 + (uint)(0xffffffef < param_3)" identifier + (call_expression "(uint)(0xffffffef < param_3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xffffffef < param_3)" ( (binary_expression "0xffffffef < param_3" number_literal < identifier) )))) )) - (parenthesized_expression "(param_6 + (uint)(0xfffffffb < param_5))" ( (binary_expression "param_6 + (uint)(0xfffffffb < param_5)" identifier + (call_expression "(uint)(0xfffffffb < param_5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffb < param_5)" ( (binary_expression "0xfffffffb < param_5" number_literal < identifier) )))) ))) )) - (call_expression "(uint)((uVar6 & 0xfffff000) < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar6 & 0xfffff000) < uVar4)" ( (binary_expression "(uVar6 & 0xfffff000) < uVar4" (parenthesized_expression "(uVar6 & 0xfffff000)" ( (binary_expression "uVar6 & 0xfffff000" identifier & number_literal) )) < identifier) )))) )) * number_literal) & number_literal)) )) >> number_literal) )) << number_literal)) ;) (expression_statement "uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;" (assignment_expression "uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" identifier = (binary_expression "uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" (binary_expression "uVar4 | (uVar5 & 3) << 0x1d" identifier | (binary_expression "(uVar5 & 3) << 0x1d" (parenthesized_expression "(uVar5 & 3)" ( (binary_expression "uVar5 & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" (parenthesized_expression "(uVar2 >> 0x18 | uVar2 << 0x18)" ( (binary_expression "uVar2 >> 0x18 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "uVar2 << 0x18" identifier << number_literal)) )) & number_literal))) ;) (expression_statement "param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;" (assignment_expression "uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211" identifier = (binary_expression "(uVar6 & 0xff8) << 7 | 0xf9400211" (binary_expression "(uVar6 & 0xff8) << 7" (parenthesized_expression "(uVar6 & 0xff8)" ( (binary_expression "uVar6 & 0xff8" identifier & number_literal) )) << number_literal) | number_literal)) ;) (expression_statement "param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;" (assignment_expression "param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8" (parenthesized_expression "(uVar6 * 0x400 & 0x3f0000)" ( (binary_expression "uVar6 * 0x400 & 0x3f0000" (binary_expression "uVar6 * 0x400" identifier * number_literal) & number_literal) )) >> number_literal) | number_literal) | (binary_expression "((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8" (parenthesized_expression "((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00)" ( (binary_expression "(uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00" (parenthesized_expression "(uVar6 * 0x400 & 0x3ffc00 | 0x91000210)" ( (binary_expression "uVar6 * 0x400 & 0x3ffc00 | 0x91000210" (binary_expression "uVar6 * 0x400 & 0x3ffc00" (binary_expression "uVar6 * 0x400" identifier * number_literal) & number_literal) | number_literal) )) & number_literal) )) << number_literal)) | number_literal)) ;) (expression_statement "param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;" (assignment_expression "param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000" (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8" (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9" (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal) | number_literal) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" 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) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (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 + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) )) - (parenthesized_expression ( (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) ))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) < IDENT) )))) )) * LIT) & LIT)) )) >> LIT) )) << LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT)) )) & LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) & LIT) )) >> LIT) | LIT) | (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) & LIT) | LIT) )) & LIT) )) << LIT)) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT) | LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | LIT)) ;) (return_statement return ;) })))
(function_definition "void FUN_001d2f30(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  uVar1 = DAT_004809c0;\n  param_2[4] = DAT_004809d0;\n  uVar3 = DAT_004809d4;\n  uVar6 = param_3 + 0x10;\n  *param_2 = uVar1;\n  uVar2 = DAT_004809c4;\n  param_2[5] = uVar3;\n  uVar1 = DAT_004809dc;\n  param_2[6] = DAT_004809d8;\n  param_2[7] = uVar1;\n  uVar4 = param_5 + 4 & 0xfffff000;\n  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;\n  uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;\n  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;\n  param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;\n  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;\n  param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;\n  param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001d2f30(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)" (identifier "FUN_001d2f30") (parameter_list "(undefined4 param_1,undefined4 *param_2,uint param_3,int param_4,uint param_5,\n                 int param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (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")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  uVar1 = DAT_004809c0;\n  param_2[4] = DAT_004809d0;\n  uVar3 = DAT_004809d4;\n  uVar6 = param_3 + 0x10;\n  *param_2 = uVar1;\n  uVar2 = DAT_004809c4;\n  param_2[5] = uVar3;\n  uVar1 = DAT_004809dc;\n  param_2[6] = DAT_004809d8;\n  param_2[7] = uVar1;\n  uVar4 = param_5 + 4 & 0xfffff000;\n  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;\n  uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;\n  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;\n  param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;\n  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;\n  param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;\n  param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (expression_statement "uVar1 = DAT_004809c0;" (assignment_expression "uVar1 = DAT_004809c0" (identifier "uVar1") (= "=") (identifier "DAT_004809c0")) (; ";")) (expression_statement "param_2[4] = DAT_004809d0;" (assignment_expression "param_2[4] = DAT_004809d0" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "DAT_004809d0")) (; ";")) (expression_statement "uVar3 = DAT_004809d4;" (assignment_expression "uVar3 = DAT_004809d4" (identifier "uVar3") (= "=") (identifier "DAT_004809d4")) (; ";")) (expression_statement "uVar6 = param_3 + 0x10;" (assignment_expression "uVar6 = param_3 + 0x10" (identifier "uVar6") (= "=") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "*param_2 = uVar1;" (assignment_expression "*param_2 = uVar1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar2 = DAT_004809c4;" (assignment_expression "uVar2 = DAT_004809c4" (identifier "uVar2") (= "=") (identifier "DAT_004809c4")) (; ";")) (expression_statement "param_2[5] = uVar3;" (assignment_expression "param_2[5] = uVar3" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar1 = DAT_004809dc;" (assignment_expression "uVar1 = DAT_004809dc" (identifier "uVar1") (= "=") (identifier "DAT_004809dc")) (; ";")) (expression_statement "param_2[6] = DAT_004809d8;" (assignment_expression "param_2[6] = DAT_004809d8" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "DAT_004809d8")) (; ";")) (expression_statement "param_2[7] = uVar1;" (assignment_expression "param_2[7] = uVar1" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar4 = param_5 + 4 & 0xfffff000;" (assignment_expression "uVar4 = param_5 + 4 & 0xfffff000" (identifier "uVar4") (= "=") (binary_expression "param_5 + 4 & 0xfffff000" (binary_expression "param_5 + 4" (identifier "param_5") (+ "+") (number_literal "4")) (& "&") (number_literal "0xfffff000"))) (; ";")) (expression_statement "uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;" (assignment_expression "uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc" (identifier "uVar5") (= "=") (binary_expression "(uVar6 & 0xfffff000) - uVar4 >> 0xc" (binary_expression "(uVar6 & 0xfffff000) - uVar4" (parenthesized_expression "(uVar6 & 0xfffff000)" (( "(") (binary_expression "uVar6 & 0xfffff000" (identifier "uVar6") (& "&") (number_literal "0xfffff000")) () ")")) (- "-") (identifier "uVar4")) (>> ">>") (number_literal "0xc"))) (; ";")) (expression_statement "uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;" (assignment_expression "uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5" (identifier "uVar4") (= "=") (binary_expression "((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5" (parenthesized_expression "((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2)" (( "(") (binary_expression "(uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2" (parenthesized_expression "(uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff)" (( "(") (binary_expression "uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff" (identifier "uVar5") (| "|") (binary_expression "(((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff" (binary_expression "(((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000" (parenthesized_expression "(((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4))" (( "(") (binary_expression "((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))) -\n                    (uint)((uVar6 & 0xfffff000) < uVar4)" (parenthesized_expression "((param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5)))" (( "(") (binary_expression "(param_4 + (uint)(0xffffffef < param_3)) -\n                     (param_6 + (uint)(0xfffffffb < param_5))" (parenthesized_expression "(param_4 + (uint)(0xffffffef < param_3))" (( "(") (binary_expression "param_4 + (uint)(0xffffffef < param_3)" (identifier "param_4") (+ "+") (call_expression "(uint)(0xffffffef < param_3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xffffffef < param_3)" (( "(") (binary_expression "0xffffffef < param_3" (number_literal "0xffffffef") (< "<") (identifier "param_3")) () ")")))) () ")")) (- "-") (parenthesized_expression "(param_6 + (uint)(0xfffffffb < param_5))" (( "(") (binary_expression "param_6 + (uint)(0xfffffffb < param_5)" (identifier "param_6") (+ "+") (call_expression "(uint)(0xfffffffb < param_5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffffb < param_5)" (( "(") (binary_expression "0xfffffffb < param_5" (number_literal "0xfffffffb") (< "<") (identifier "param_5")) () ")")))) () ")"))) () ")")) (- "-") (call_expression "(uint)((uVar6 & 0xfffff000) < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar6 & 0xfffff000) < uVar4)" (( "(") (binary_expression "(uVar6 & 0xfffff000) < uVar4" (parenthesized_expression "(uVar6 & 0xfffff000)" (( "(") (binary_expression "uVar6 & 0xfffff000" (identifier "uVar6") (& "&") (number_literal "0xfffff000")) () ")")) (< "<") (identifier "uVar4")) () ")")))) () ")")) (* "*") (number_literal "0x100000")) (& "&") (number_literal "0x1fffff"))) () ")")) (>> ">>") (number_literal "2")) () ")")) (<< "<<") (number_literal "5"))) (; ";")) (expression_statement "uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;" (assignment_expression "uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" (identifier "uVar5") (= "=") (binary_expression "uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" (binary_expression "uVar4 | (uVar5 & 3) << 0x1d" (identifier "uVar4") (| "|") (binary_expression "(uVar5 & 3) << 0x1d" (parenthesized_expression "(uVar5 & 3)" (( "(") (binary_expression "uVar5 & 3" (identifier "uVar5") (& "&") (number_literal "3")) () ")")) (<< "<<") (number_literal "0x1d"))) (| "|") (binary_expression "(uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f" (parenthesized_expression "(uVar2 >> 0x18 | uVar2 << 0x18)" (( "(") (binary_expression "uVar2 >> 0x18 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "uVar2 << 0x18" (identifier "uVar2") (<< "<<") (number_literal "0x18"))) () ")")) (& "&") (number_literal "0x9f00001f")))) (; ";")) (expression_statement "param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" (( "(") (binary_expression "uVar4 & 0xff0000" (identifier "uVar4") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" (( "(") (binary_expression "uVar4 & 0xff00" (identifier "uVar4") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar5 << 0x18" (identifier "uVar5") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;" (assignment_expression "uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211" (identifier "uVar5") (= "=") (binary_expression "(uVar6 & 0xff8) << 7 | 0xf9400211" (binary_expression "(uVar6 & 0xff8) << 7" (parenthesized_expression "(uVar6 & 0xff8)" (( "(") (binary_expression "uVar6 & 0xff8" (identifier "uVar6") (& "&") (number_literal "0xff8")) () ")")) (<< "<<") (number_literal "7")) (| "|") (number_literal "0xf9400211"))) (; ";")) (expression_statement "param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;" (assignment_expression "param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |\n               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91" (binary_expression "(uVar6 * 0x400 & 0x3f0000) >> 8" (parenthesized_expression "(uVar6 * 0x400 & 0x3f0000)" (( "(") (binary_expression "uVar6 * 0x400 & 0x3f0000" (binary_expression "uVar6 * 0x400" (identifier "uVar6") (* "*") (number_literal "0x400")) (& "&") (number_literal "0x3f0000")) () ")")) (>> ">>") (number_literal "8")) (| "|") (number_literal "0x91")) (| "|") (binary_expression "((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8" (parenthesized_expression "((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00)" (( "(") (binary_expression "(uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00" (parenthesized_expression "(uVar6 * 0x400 & 0x3ffc00 | 0x91000210)" (( "(") (binary_expression "uVar6 * 0x400 & 0x3ffc00 | 0x91000210" (binary_expression "uVar6 * 0x400 & 0x3ffc00" (binary_expression "uVar6 * 0x400" (identifier "uVar6") (* "*") (number_literal "0x400")) (& "&") (number_literal "0x3ffc00")) (| "|") (number_literal "0x91000210")) () ")")) (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (number_literal "0x10000000"))) (; ";")) (expression_statement "param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;" (assignment_expression "param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000" (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8" (binary_expression "(uVar5 & 0xff0000) >> 8 | 0xf9" (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" (( "(") (binary_expression "uVar5 & 0xff0000" (identifier "uVar5") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8")) (| "|") (number_literal "0xf9")) (| "|") (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" (( "(") (binary_expression "uVar5 & 0xff00" (identifier "uVar5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (number_literal "0x11000000"))) (; ";")) (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_first_plt_entry(Output_data_plt_aarch64_standard<64,_true>
   * this, uchar * pov, Address got_address, Address plt_address) */

void __thiscall
anon_unknown.dwarf_109b185::Output_data_plt_aarch64_standard<64,_true>::do_fill_first_plt_entry
          (Output_data_plt_aarch64_standard<64,_true> *this,uchar *var_1,Address got_address,
          Address var_2)

{
  type_2 uVar1;
  type_1 var_6;
  type_2 uVar3;
  type_1 var_4;
  type_1 var_5;
  type_1 var_3;
  
  uVar1 = (anonymous_namespace)::Output_data_plt_aarch64_standard<64,true>::first_plt_entry;
  *(type_2 *)(var_1 + 0x10) = DAT_004809d0;
  uVar3 = DAT_004809d4;
  var_3 = (type_1)got_address + 0x10;
  *(type_2 *)var_1 = uVar1;
  var_6 = DAT_004809c4;
  *(type_2 *)(var_1 + 0x14) = uVar3;
  uVar1 = DAT_004809dc;
  *(type_2 *)(var_1 + 0x18) = DAT_004809d8;
  *(type_2 *)(var_1 + 0x1c) = uVar1;
  var_4 = (type_1)(var_2 + 4) & 0xfffff000;
  var_5 = (var_3 & 0xfffff000) - var_4 >> 0xc;
  var_4 = ((var_5 | (((got_address._4_4_ + (type_1)(0xffffffef < (type_1)got_address)) -
                     (int)(var_2 + 4 >> 0x20)) - (type_1)((var_3 & 0xfffff000) < var_4)) *
                    0x100000 & 0x1fffff) >> 2) << 5;
  var_5 = var_4 | (var_5 & 3) << 0x1d | (var_6 >> 0x18 | var_6 << 0x18) & 0x9f00001f;
  *(type_1 *)(var_1 + 4) =
       var_5 >> 0x18 | (var_4 & 0xff0000) >> 8 | (var_4 & 0xff00) << 8 | var_5 << 0x18;
  var_5 = (var_3 & 0xff8) << 7 | 0xf9400211;
  *(type_1 *)(var_1 + 0xc) =
       (var_3 * 0x400 & 0x3f0000) >> 8 | 0x91 |
       ((var_3 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;
  *(type_1 *)(var_1 + 8) = (var_5 & 0xff0000) >> 8 | 0xf9 | (var_5 & 0xff00) << 8 | 0x11000000;
  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)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (binary_expression left: (identifier) right: (number_literal)) 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: (identifier) right: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) 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: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (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: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal)) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (number_literal))) 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: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) 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)))) (return_statement))))

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

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

{
  undefined4 uVar1;
  uint uVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  
  uVar1 = DAT_004809c0;
  param_2[4] = DAT_004809d0;
  uVar3 = DAT_004809d4;
  uVar6 = param_3 + 0x10;
  *param_2 = uVar1;
  uVar2 = DAT_004809c4;
  param_2[5] = uVar3;
  uVar1 = DAT_004809dc;
  param_2[6] = DAT_004809d8;
  param_2[7] = uVar1;
  uVar4 = param_5 + 4 & 0xfffff000;
  uVar5 = (uVar6 & 0xfffff000) - uVar4 >> 0xc;
  uVar4 = ((uVar5 | (((param_4 + (uint)(0xffffffef < param_3)) -
                     (param_6 + (uint)(0xfffffffb < param_5))) -
                    (uint)((uVar6 & 0xfffff000) < uVar4)) * 0x100000 & 0x1fffff) >> 2) << 5;
  uVar5 = uVar4 | (uVar5 & 3) << 0x1d | (uVar2 >> 0x18 | uVar2 << 0x18) & 0x9f00001f;
  param_2[1] = uVar5 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar5 << 0x18;
  uVar5 = (uVar6 & 0xff8) << 7 | 0xf9400211;
  param_2[3] = (uVar6 * 0x400 & 0x3f0000) >> 8 | 0x91 |
               ((uVar6 * 0x400 & 0x3ffc00 | 0x91000210) & 0xff00) << 8 | 0x10000000;
  param_2[2] = (uVar5 & 0xff0000) >> 8 | 0xf9 | (uVar5 & 0xff00) << 8 | 0x11000000;
  return;
}

