
/* DWARF original prototype: string do_code_fill(Target_x86_64<64> * this, section_size_type length)
    */

string * __thiscall
anon_unknown.dwarf_241c3b::Target_x86_64<64>::do_code_fill
          (string *__return_storage_ptr__,Target_x86_64<64> *this,section_size_type length)

{
  char *pcVar1;
  long lVar2;
  ulong uVar3;
  long *plVar4;
  char nop1 [1];
  char nop2 [2];
  char nop3 [3];
  char nop4 [4];
  char nop5 [5];
  char nop6 [6];
  char nop7 [7];
  char nop8 [8];
  char nop9 [9];
  char nop10 [10];
  char nop11 [11];
  char nop12 [12];
  char nop13 [13];
  char nop14 [14];
  char nop15 [15];
  undefined1 uStack_a9;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  local_a8;
  char *nops [16];
  
  if (length < 0x10) {
    nop2[0] = 'f';
    nop2[1] = -0x70;
    nop9[0] = 'f';
    nop9[1] = '\x0f';
    nop9[2] = '\x1f';
    nop9[3] = -0x7c;
    nop9[4] = '\0';
    nop9[5] = '\0';
    nop9[6] = '\0';
    nop9[7] = '\0';
    nop10[0] = 'f';
    nop10[1] = '.';
    nop10[2] = '\x0f';
    nop10[3] = '\x1f';
    nop10[4] = -0x7c;
    nop10[5] = '\0';
    nop10[6] = '\0';
    nop10[7] = '\0';
    nop11[0] = 'f';
    nop11[1] = 'f';
    nop11[2] = '.';
    nop11[3] = '\x0f';
    nop11[4] = '\x1f';
    nop11[5] = -0x7c;
    nop11[6] = '\0';
    nop11[7] = '\0';
    nop12[0] = 'f';
    nop12[1] = 'f';
    nop12[2] = 'f';
    nop12[3] = '.';
    nop12[4] = '\x0f';
    nop12[5] = '\x1f';
    nop12[6] = -0x7c;
    nop12[7] = '\0';
    nop13[0] = 'f';
    nop13[1] = 'f';
    nop13[2] = 'f';
    nop13[3] = 'f';
    nop13[4] = '.';
    nop13[5] = '\x0f';
    nop13[6] = '\x1f';
    nop13[7] = -0x7c;
    nop14[0] = 'f';
    nop14[1] = 'f';
    nop14[2] = 'f';
    nop14[3] = 'f';
    nop14[4] = 'f';
    nop14[5] = '.';
    nop14[6] = '\x0f';
    nop14[7] = '\x1f';
    nop15[0] = 'f';
    nop15[1] = 'f';
    nop15[2] = 'f';
    nop15[3] = 'f';
    nop15[4] = 'f';
    nop15[5] = 'f';
    nop15[6] = '.';
    nop15[7] = '\x0f';
    nop3[0] = '\x0f';
    nop3[1] = '\x1f';
    builtin_strncpy(nop6,"f\x0f\x1fD",5);
    nop6[5] = '\0';
    nop7[4] = '\0';
    nop7[5] = '\0';
    nop10[8] = '\0';
    nop10[9] = '\0';
    nop11[8] = '\0';
    nop11[9] = '\0';
    nop14[0xc] = '\0';
    nop14[0xd] = '\0';
    nop15[0xc] = '\0';
    nop15[0xd] = '\0';
    nop1[0] = -0x70;
    nop3[2] = '\0';
    builtin_strncpy(nop4,"\x0f\x1f@",4);
    builtin_strncpy(nop5,"\x0f\x1fD",4);
    nop5[4] = '\0';
    nop7[0] = '\x0f';
    nop7[1] = '\x1f';
    nop7[2] = -0x80;
    nop7[3] = '\0';
    nop7[6] = '\0';
    nop8[0] = '\x0f';
    nop8[1] = '\x1f';
    nop8[2] = -0x7c;
    nop8[3] = '\0';
    nop8[4] = '\0';
    nop8[5] = '\0';
    nop8[6] = '\0';
    nop8[7] = '\0';
    nop9[8] = '\0';
    nop11[10] = '\0';
    nop12[8] = '\0';
    nop12[9] = '\0';
    nop12[10] = '\0';
    nop12[0xb] = '\0';
    nop13[8] = '\0';
    nop13[9] = '\0';
    nop13[10] = '\0';
    nop13[0xb] = '\0';
    nop13[0xc] = '\0';
    nop14[8] = -0x7c;
    nop14[9] = '\0';
    nop14[10] = '\0';
    nop14[0xb] = '\0';
    nop15[8] = '\x1f';
    nop15[9] = -0x7c;
    nop15[10] = '\0';
    nop15[0xb] = '\0';
    nop15[0xe] = '\0';
    nops[0] = (char *)0x0;
    nops[1] = nop1;
    nops[2] = nop2;
    nops[3] = nop3;
    nops[4] = nop4;
    nops[5] = nop5;
    nops[6] = nop6;
    nops[7] = nop7;
    nops[8] = nop8;
    nops[9] = nop9;
    nops[10] = nop10;
    nops[0xb] = nop11;
    nops[0xc] = nop12;
    nops[0xd] = nop13;
    nops[0xe] = nop14;
    nops[0xf] = nop15;
    pcVar1 = nops[length];
    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(__return_storage_ptr__,pcVar1,pcVar1 + length);
    return __return_storage_ptr__;
  }
  nop14._1_4_ = (int)length + -5;
  nop14[0] = -0x17;
  nops[0] = (char *)(nops + 2);
  std::string::_M_construct((string *)nops,length - 5,-0x70);
  nop15._0_8_ = &local_a8;
                    /* try { // try from 001649b4 to 001649b8 has its CatchHandler @ 00164cfa */
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>
            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)nop15,nop14,
             nop14 + 5);
  uVar3 = CONCAT17(uStack_a9,CONCAT16(nop15[0xe],CONCAT24(nop15._12_2_,nop15._8_4_)));
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)nop15._0_8_ == &local_a8) {
    local_a8._M_allocated_capacity = (size_type)(char *)0xf;
  }
  if (local_a8._M_allocated_capacity < nops[1] + uVar3) {
    if ((char **)nops[0] == nops + 2) {
      nops[2] = (char *)0xf;
    }
    if (nops[1] + uVar3 <= nops[2]) {
                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */
      plVar4 = (long *)std::string::_M_replace((string *)nops,0,0,(char *)nop15._0_8_,uVar3);
      goto LAB_00164a18;
    }
  }
                    /* try { // try from 00164a13 to 00164a17 has its CatchHandler @ 00164cf2 */
  plVar4 = (long *)std::string::_M_append((string *)nop15,nops[0],(ulong)nops[1]);
LAB_00164a18:
  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;
  if ((long *)*plVar4 == plVar4 + 2) {
    lVar2 = plVar4[3];
    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];
    *(long *)((long)&__return_storage_ptr__->field_2 + 8) = lVar2;
  }
  else {
    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)*plVar4;
    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];
  }
  __return_storage_ptr__->_M_string_length = plVar4[1];
  *plVar4 = (long)(plVar4 + 2);
  plVar4[1] = 0;
  *(undefined1 *)(plVar4 + 2) = 0;
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)nop15._0_8_ != &local_a8) {
    operator_delete((void *)nop15._0_8_);
  }
  if ((char **)nops[0] != nops + 2) {
    operator_delete(nops[0]);
  }
  return __return_storage_ptr__;
}



long * FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)

{
  ulong uVar1;
  undefined8 ****ppppuVar2;
  long lVar3;
  long *plVar4;
  undefined1 local_121;
  undefined2 local_120;
  undefined2 local_11e;
  undefined1 local_11c;
  undefined4 local_11b;
  undefined4 local_117;
  undefined1 local_113;
  undefined4 local_112;
  undefined2 local_10e;
  undefined4 local_10c;
  undefined2 local_108;
  undefined1 local_106;
  undefined8 local_105;
  undefined8 local_fd;
  undefined1 local_f5;
  undefined8 local_f4;
  undefined2 local_ec;
  undefined8 local_ea;
  undefined2 local_e2;
  undefined1 local_e0;
  undefined8 local_df;
  undefined4 local_d7;
  undefined8 local_d3;
  undefined4 local_cb;
  undefined1 local_c7;
  undefined8 local_c6;
  undefined4 local_be;
  undefined2 local_ba;
  ulong *local_b8;
  undefined4 local_b0;
  undefined2 uStack_ac;
  undefined1 uStack_aa;
  undefined1 uStack_a9;
  ulong local_a8 [2];
  undefined8 ****local_98 [15];
  ulong **local_20;
  
  if (param_3 < 0x10) {
    local_120 = 0x9066;
    local_fd = 0x841f0f66;
    local_f4 = 0x841f0f2e66;
    local_ea = 0x841f0f2e6666;
    local_df = 0x841f0f2e666666;
    local_d3 = 0x841f0f2e66666666;
    local_c6 = 0x1f0f2e6666666666;
    local_b8 = (ulong *)0xf2e666666666666;
    local_11e = 0x1f0f;
    local_10e = 0;
    local_108 = 0;
    local_ec = 0;
    local_e2 = 0;
    local_ba = 0;
    uStack_ac = 0;
    local_121 = 0x90;
    local_11c = 0;
    local_11b = 0x401f0f;
    local_117 = 0x441f0f;
    local_113 = 0;
    local_112 = 0x441f0f66;
    local_10c = 0x801f0f;
    local_106 = 0;
    local_105 = 0x841f0f;
    local_f5 = 0;
    local_e0 = 0;
    local_d7 = 0;
    local_cb = 0;
    local_c7 = 0;
    local_be = 0x84;
    local_b0 = 0x841f;
    uStack_aa = 0;
    local_98[0] = (undefined8 ****)0x0;
    local_98[1] = (undefined8 ****)&local_121;
    local_98[2] = (undefined8 ****)&local_120;
    local_98[3] = (undefined8 ****)&local_11e;
    local_98[4] = (undefined8 ****)&local_11b;
    local_98[5] = (undefined8 ****)&local_117;
    local_98[6] = (undefined8 ****)&local_112;
    local_98[7] = (undefined8 ****)&local_10c;
    local_98[8] = (undefined8 ****)&local_105;
    local_98[9] = (undefined8 ****)&local_fd;
    local_98[10] = (undefined8 ****)&local_f4;
    local_98[0xb] = (undefined8 ****)&local_ea;
    local_98[0xc] = (undefined8 ****)&local_df;
    local_98[0xd] = (undefined8 ****)&local_d3;
    local_98[0xe] = (undefined8 ****)&local_c6;
    local_20 = &local_b8;
    ppppuVar2 = local_98[param_3];
    *param_1 = (long)(param_1 + 2);
    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);
    return param_1;
  }
  local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);
  local_98[0] = local_98 + 2;
  FUN_002a9350(local_98,param_3 - 5,0xffffff90);
  local_b8 = local_a8;
                    /* try { // try from 001649b4 to 001649b8 has its CatchHandler @ 00164cfa */
  FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);
  uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];
  if (local_b8 == local_a8) {
    local_a8[0] = 0xf;
  }
  if (local_a8[0] < uVar1) {
    if ((undefined8 *****)local_98[0] == local_98 + 2) {
      local_98[2] = (undefined8 ****)0xf;
    }
    if (uVar1 <= local_98[2]) {
                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */
      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);
      goto LAB_00164a18;
    }
  }
                    /* try { // try from 00164a13 to 00164a17 has its CatchHandler @ 00164cf2 */
  plVar4 = (long *)FUN_002aac00(&local_b8);
LAB_00164a18:
  *param_1 = (long)(param_1 + 2);
  if ((long *)*plVar4 == plVar4 + 2) {
    lVar3 = plVar4[3];
    param_1[2] = plVar4[2];
    param_1[3] = lVar3;
  }
  else {
    *param_1 = *plVar4;
    param_1[2] = plVar4[2];
  }
  param_1[1] = plVar4[1];
  *plVar4 = (long)(plVar4 + 2);
  plVar4[1] = 0;
  *(undefined1 *)(plVar4 + 2) = 0;
  if (local_b8 != local_a8) {
    FUN_002a2980();
  }
  if ((undefined8 *****)local_98[0] != local_98 + 2) {
    FUN_002a2980();
  }
  return param_1;
}


PUSH R12
PUSH RBP
PUSH RBX
MOV RBX,RDI
SUB RSP,0x110
CMP RDX,0xf
JBE 0x00164a90
LEA EAX,[RDX + -0x5]
LEA RSI,[RDX + -0x5]
MOV EDX,0xffffff90
MOV byte ptr [RSP + 0x62],0xe9
LEA R12,[RSP + 0x90]
MOV dword ptr [RSP + 0x63],EAX
LEA RBP,[RSP + 0x70]
LEA RAX,[R12 + 0x10]
MOV RDI,R12
MOV qword ptr [RSP + 0x90],RAX
CALL 0x002a9350
LEA RSI,[RSP + 0x62]
LEA RAX,[RBP + 0x10]
MOV RDI,RBP
LEA RDX,[RSI + 0x5]
MOV qword ptr [RSP + 0x70],RAX
CALL 0x001769d0
MOV R8,qword ptr [RSP + 0x78]
MOV RDX,qword ptr [RSP + 0x98]
LEA RSI,[RBP + 0x10]
MOV RCX,qword ptr [RSP + 0x70]
LEA RAX,[R8 + RDX*0x1]
CMP RCX,RSI
JZ 0x00164ca8
MOV RDI,qword ptr [RSP + 0x80]
MOV RSI,qword ptr [RSP + 0x90]
CMP RAX,RDI
JBE 0x00164a10
LEA RDI,[R12 + 0x10]
CMP RSI,RDI
JZ 0x00164ce8
MOV RDI,qword ptr [RSP + 0xa0]
CMP RAX,RDI
JBE 0x00164cd0
MOV RDI,RBP
CALL 0x002aac00
LEA RDX,[RBX + 0x10]
MOV qword ptr [RBX],RDX
MOV RCX,qword ptr [RAX]
LEA RDX,[RAX + 0x10]
CMP RCX,RDX
JZ 0x00164cb8
MOV qword ptr [RBX],RCX
MOV RCX,qword ptr [RAX + 0x10]
MOV qword ptr [RBX + 0x10],RCX
MOV RCX,qword ptr [RAX + 0x8]
ADD RBP,0x10
MOV qword ptr [RBX + 0x8],RCX
MOV qword ptr [RAX],RDX
MOV qword ptr [RAX + 0x8],0x0
MOV byte ptr [RAX + 0x10],0x0
MOV RDI,qword ptr [RSP + 0x70]
CMP RDI,RBP
JZ 0x00164a64
CALL 0x002a2980
MOV RDI,qword ptr [RSP + 0x90]
ADD R12,0x10
CMP RDI,R12
JZ 0x00164a7a
CALL 0x002a2980
ADD RSP,0x110
MOV RAX,RBX
POP RBX
POP RBP
POP R12
RET
MOV EAX,0xffff9066
MOV ECX,0x1f0f
XOR ESI,ESI
XOR EDI,EDI
MOV word ptr [RSP + 0x8],AX
MOV EAX,0x841f0f66
XOR R8D,R8D
XOR R9D,R9D
MOV qword ptr [RSP + 0x2b],RAX
XOR R10D,R10D
XOR R11D,R11D
MOV RAX,0x841f0f2e66
MOV qword ptr [RSP + 0x34],RAX
MOV RAX,0x841f0f2e6666
MOV qword ptr [RSP + 0x3e],RAX
MOV RAX,0x841f0f2e666666
MOV qword ptr [RSP + 0x49],RAX
MOV RAX,-0x7be0f0d19999999a
MOV qword ptr [RSP + 0x55],RAX
MOV RAX,0x1f0f2e6666666666
MOV qword ptr [RSP + 0x62],RAX
MOV RAX,0xf2e666666666666
MOV qword ptr [RSP + 0x70],RAX
LEA RAX,[RSP + 0x7]
MOV word ptr [RSP + 0xa],CX
MOV word ptr [RSP + 0x1a],SI
MOV word ptr [RSP + 0x20],DI
MOV RDI,RBX
MOV word ptr [RSP + 0x3c],R8W
MOV word ptr [RSP + 0x46],R9W
MOV word ptr [RSP + 0x6e],R10W
MOV word ptr [RSP + 0x7c],R11W
MOV byte ptr [RSP + 0x7],0x90
MOV byte ptr [RSP + 0xc],0x0
MOV dword ptr [RSP + 0xd],0x401f0f
MOV dword ptr [RSP + 0x11],0x441f0f
MOV byte ptr [RSP + 0x15],0x0
MOV dword ptr [RSP + 0x16],0x441f0f66
MOV dword ptr [RSP + 0x1c],0x801f0f
MOV byte ptr [RSP + 0x22],0x0
MOV qword ptr [RSP + 0x23],0x841f0f
MOV byte ptr [RSP + 0x33],0x0
MOV byte ptr [RSP + 0x48],0x0
MOV dword ptr [RSP + 0x51],0x0
MOV dword ptr [RSP + 0x5d],0x0
MOV byte ptr [RSP + 0x61],0x0
MOV dword ptr [RSP + 0x6a],0x84
MOV dword ptr [RSP + 0x78],0x841f
MOV byte ptr [RSP + 0x7e],0x0
MOV qword ptr [RSP + 0x90],0x0
MOV qword ptr [RSP + 0x98],RAX
LEA RAX,[RSP + 0x8]
MOV qword ptr [RSP + 0xa0],RAX
LEA RAX,[RSP + 0xa]
MOV qword ptr [RSP + 0xa8],RAX
LEA RAX,[RSP + 0xd]
MOV qword ptr [RSP + 0xb0],RAX
LEA RAX,[RSP + 0x11]
MOV qword ptr [RSP + 0xb8],RAX
LEA RAX,[RSP + 0x16]
MOV qword ptr [RSP + 0xc0],RAX
LEA RAX,[RSP + 0x1c]
MOV qword ptr [RSP + 0xc8],RAX
LEA RAX,[RSP + 0x23]
MOV qword ptr [RSP + 0xd0],RAX
LEA RAX,[RSP + 0x2b]
MOV qword ptr [RSP + 0xd8],RAX
LEA RAX,[RSP + 0x34]
MOV qword ptr [RSP + 0xe0],RAX
LEA RAX,[RSP + 0x3e]
MOV qword ptr [RSP + 0xe8],RAX
LEA RAX,[RSP + 0x49]
MOV qword ptr [RSP + 0xf0],RAX
LEA RAX,[RSP + 0x55]
MOV qword ptr [RSP + 0xf8],RAX
LEA RAX,[RSP + 0x62]
MOV qword ptr [RSP + 0x100],RAX
LEA RAX,[RSP + 0x70]
MOV qword ptr [RSP + 0x108],RAX
LEA RAX,[RBX + 0x10]
MOV RSI,qword ptr [RSP + RDX*0x8 + 0x90]
MOV qword ptr [RBX],RAX
ADD RDX,RSI
CALL 0x001769d0
ADD RSP,0x110
MOV RAX,RBX
POP RBX
POP RBP
POP R12
RET
MOV EDI,0xf
JMP 0x001649e4
MOVDQU XMM0,xmmword ptr [RAX + 0x10]
MOVUPS xmmword ptr [RBX + 0x10],XMM0
JMP 0x00164a3a
XOR EDX,EDX
XOR ESI,ESI
MOV RDI,R12
CALL 0x002aa2b0
JMP 0x00164a18
MOV EDI,0xf
JMP 0x00164a07
(translation_unit "long * FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)\n\n{\n  ulong uVar1;\n  undefined8 ****ppppuVar2;\n  long lVar3;\n  long *plVar4;\n  undefined1 local_121;\n  undefined2 local_120;\n  undefined2 local_11e;\n  undefined1 local_11c;\n  undefined4 local_11b;\n  undefined4 local_117;\n  undefined1 local_113;\n  undefined4 local_112;\n  undefined2 local_10e;\n  undefined4 local_10c;\n  undefined2 local_108;\n  undefined1 local_106;\n  undefined8 local_105;\n  undefined8 local_fd;\n  undefined1 local_f5;\n  undefined8 local_f4;\n  undefined2 local_ec;\n  undefined8 local_ea;\n  undefined2 local_e2;\n  undefined1 local_e0;\n  undefined8 local_df;\n  undefined4 local_d7;\n  undefined8 local_d3;\n  undefined4 local_cb;\n  undefined1 local_c7;\n  undefined8 local_c6;\n  undefined4 local_be;\n  undefined2 local_ba;\n  ulong *local_b8;\n  undefined4 local_b0;\n  undefined2 uStack_ac;\n  undefined1 uStack_aa;\n  undefined1 uStack_a9;\n  ulong local_a8 [2];\n  undefined8 ****local_98 [15];\n  ulong **local_20;\n  \n  if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }\n  local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);\n  local_98[0] = local_98 + 2;\n  FUN_002a9350(local_98,param_3 - 5,0xffffff90);\n  local_b8 = local_a8;\n                    /* try { // try from 001649b4 to 001649b8 has its CatchHandler @ 00164cfa */\n  FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);\n  uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];\n  if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }\n  if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }\n                    /* try { // try from 00164a13 to 00164a17 has its CatchHandler @ 00164cf2 */\n  plVar4 = (long *)FUN_002aac00(&local_b8);\nLAB_00164a18:\n  *param_1 = (long)(param_1 + 2);\n  if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }\n  param_1[1] = plVar4[1];\n  *plVar4 = (long)(plVar4 + 2);\n  plVar4[1] = 0;\n  *(undefined1 *)(plVar4 + 2) = 0;\n  if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }\n  if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }\n  return param_1;\n}\n\n" (function_definition "long * FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)\n\n{\n  ulong uVar1;\n  undefined8 ****ppppuVar2;\n  long lVar3;\n  long *plVar4;\n  undefined1 local_121;\n  undefined2 local_120;\n  undefined2 local_11e;\n  undefined1 local_11c;\n  undefined4 local_11b;\n  undefined4 local_117;\n  undefined1 local_113;\n  undefined4 local_112;\n  undefined2 local_10e;\n  undefined4 local_10c;\n  undefined2 local_108;\n  undefined1 local_106;\n  undefined8 local_105;\n  undefined8 local_fd;\n  undefined1 local_f5;\n  undefined8 local_f4;\n  undefined2 local_ec;\n  undefined8 local_ea;\n  undefined2 local_e2;\n  undefined1 local_e0;\n  undefined8 local_df;\n  undefined4 local_d7;\n  undefined8 local_d3;\n  undefined4 local_cb;\n  undefined1 local_c7;\n  undefined8 local_c6;\n  undefined4 local_be;\n  undefined2 local_ba;\n  ulong *local_b8;\n  undefined4 local_b0;\n  undefined2 uStack_ac;\n  undefined1 uStack_aa;\n  undefined1 uStack_a9;\n  ulong local_a8 [2];\n  undefined8 ****local_98 [15];\n  ulong **local_20;\n  \n  if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }\n  local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);\n  local_98[0] = local_98 + 2;\n  FUN_002a9350(local_98,param_3 - 5,0xffffff90);\n  local_b8 = local_a8;\n                    /* try { // try from 001649b4 to 001649b8 has its CatchHandler @ 00164cfa */\n  FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);\n  uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];\n  if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }\n  if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }\n                    /* try { // try from 00164a13 to 00164a17 has its CatchHandler @ 00164cf2 */\n  plVar4 = (long *)FUN_002aac00(&local_b8);\nLAB_00164a18:\n  *param_1 = (long)(param_1 + 2);\n  if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }\n  param_1[1] = plVar4[1];\n  *plVar4 = (long)(plVar4 + 2);\n  plVar4[1] = 0;\n  *(undefined1 *)(plVar4 + 2) = 0;\n  if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }\n  if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }\n  return param_1;\n}" (sized_type_specifier "long" long) (pointer_declarator "* FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)" * (function_declarator "FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)" identifier (parameter_list "(long *param_1,undefined8 param_2,ulong param_3)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "ulong param_3" type_identifier identifier) )))) (compound_statement "{\n  ulong uVar1;\n  undefined8 ****ppppuVar2;\n  long lVar3;\n  long *plVar4;\n  undefined1 local_121;\n  undefined2 local_120;\n  undefined2 local_11e;\n  undefined1 local_11c;\n  undefined4 local_11b;\n  undefined4 local_117;\n  undefined1 local_113;\n  undefined4 local_112;\n  undefined2 local_10e;\n  undefined4 local_10c;\n  undefined2 local_108;\n  undefined1 local_106;\n  undefined8 local_105;\n  undefined8 local_fd;\n  undefined1 local_f5;\n  undefined8 local_f4;\n  undefined2 local_ec;\n  undefined8 local_ea;\n  undefined2 local_e2;\n  undefined1 local_e0;\n  undefined8 local_df;\n  undefined4 local_d7;\n  undefined8 local_d3;\n  undefined4 local_cb;\n  undefined1 local_c7;\n  undefined8 local_c6;\n  undefined4 local_be;\n  undefined2 local_ba;\n  ulong *local_b8;\n  undefined4 local_b0;\n  undefined2 uStack_ac;\n  undefined1 uStack_aa;\n  undefined1 uStack_a9;\n  ulong local_a8 [2];\n  undefined8 ****local_98 [15];\n  ulong **local_20;\n  \n  if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }\n  local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);\n  local_98[0] = local_98 + 2;\n  FUN_002a9350(local_98,param_3 - 5,0xffffff90);\n  local_b8 = local_a8;\n                    /* try { // try from 001649b4 to 001649b8 has its CatchHandler @ 00164cfa */\n  FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);\n  uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];\n  if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }\n  if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }\n                    /* try { // try from 00164a13 to 00164a17 has its CatchHandler @ 00164cf2 */\n  plVar4 = (long *)FUN_002aac00(&local_b8);\nLAB_00164a18:\n  *param_1 = (long)(param_1 + 2);\n  if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }\n  param_1[1] = plVar4[1];\n  *plVar4 = (long)(plVar4 + 2);\n  plVar4[1] = 0;\n  *(undefined1 *)(plVar4 + 2) = 0;\n  if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }\n  if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }\n  return param_1;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "undefined8 ****ppppuVar2;" type_identifier (pointer_declarator "****ppppuVar2" * (pointer_declarator "***ppppuVar2" * (pointer_declarator "**ppppuVar2" * (pointer_declarator "*ppppuVar2" * identifier)))) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "undefined1 local_121;" type_identifier identifier ;) (declaration "undefined2 local_120;" type_identifier identifier ;) (declaration "undefined2 local_11e;" type_identifier identifier ;) (declaration "undefined1 local_11c;" type_identifier identifier ;) (declaration "undefined4 local_11b;" type_identifier identifier ;) (declaration "undefined4 local_117;" type_identifier identifier ;) (declaration "undefined1 local_113;" type_identifier identifier ;) (declaration "undefined4 local_112;" type_identifier identifier ;) (declaration "undefined2 local_10e;" type_identifier identifier ;) (declaration "undefined4 local_10c;" type_identifier identifier ;) (declaration "undefined2 local_108;" type_identifier identifier ;) (declaration "undefined1 local_106;" type_identifier identifier ;) (declaration "undefined8 local_105;" type_identifier identifier ;) (declaration "undefined8 local_fd;" type_identifier identifier ;) (declaration "undefined1 local_f5;" type_identifier identifier ;) (declaration "undefined8 local_f4;" type_identifier identifier ;) (declaration "undefined2 local_ec;" type_identifier identifier ;) (declaration "undefined8 local_ea;" type_identifier identifier ;) (declaration "undefined2 local_e2;" type_identifier identifier ;) (declaration "undefined1 local_e0;" type_identifier identifier ;) (declaration "undefined8 local_df;" type_identifier identifier ;) (declaration "undefined4 local_d7;" type_identifier identifier ;) (declaration "undefined8 local_d3;" type_identifier identifier ;) (declaration "undefined4 local_cb;" type_identifier identifier ;) (declaration "undefined1 local_c7;" type_identifier identifier ;) (declaration "undefined8 local_c6;" type_identifier identifier ;) (declaration "undefined4 local_be;" type_identifier identifier ;) (declaration "undefined2 local_ba;" type_identifier identifier ;) (declaration "ulong *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "undefined4 local_b0;" type_identifier identifier ;) (declaration "undefined2 uStack_ac;" type_identifier identifier ;) (declaration "undefined1 uStack_aa;" type_identifier identifier ;) (declaration "undefined1 uStack_a9;" type_identifier identifier ;) (declaration "ulong local_a8 [2];" type_identifier (array_declarator "local_a8 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 ****local_98 [15];" type_identifier (pointer_declarator "****local_98 [15]" * (pointer_declarator "***local_98 [15]" * (pointer_declarator "**local_98 [15]" * (pointer_declarator "*local_98 [15]" * (array_declarator "local_98 [15]" identifier [ number_literal ]))))) ;) (declaration "ulong **local_20;" type_identifier (pointer_declarator "**local_20" * (pointer_declarator "*local_20" * identifier)) ;) (if_statement "if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }" if (parenthesized_expression "(param_3 < 0x10)" ( (binary_expression "param_3 < 0x10" identifier < number_literal) )) (compound_statement "{\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }" { (expression_statement "local_120 = 0x9066;" (assignment_expression "local_120 = 0x9066" identifier = number_literal) ;) (expression_statement "local_fd = 0x841f0f66;" (assignment_expression "local_fd = 0x841f0f66" identifier = number_literal) ;) (expression_statement "local_f4 = 0x841f0f2e66;" (assignment_expression "local_f4 = 0x841f0f2e66" identifier = number_literal) ;) (expression_statement "local_ea = 0x841f0f2e6666;" (assignment_expression "local_ea = 0x841f0f2e6666" identifier = number_literal) ;) (expression_statement "local_df = 0x841f0f2e666666;" (assignment_expression "local_df = 0x841f0f2e666666" identifier = number_literal) ;) (expression_statement "local_d3 = 0x841f0f2e66666666;" (assignment_expression "local_d3 = 0x841f0f2e66666666" identifier = number_literal) ;) (expression_statement "local_c6 = 0x1f0f2e6666666666;" (assignment_expression "local_c6 = 0x1f0f2e6666666666" identifier = number_literal) ;) (expression_statement "local_b8 = (ulong *)0xf2e666666666666;" (assignment_expression "local_b8 = (ulong *)0xf2e666666666666" identifier = (cast_expression "(ulong *)0xf2e666666666666" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_11e = 0x1f0f;" (assignment_expression "local_11e = 0x1f0f" identifier = number_literal) ;) (expression_statement "local_10e = 0;" (assignment_expression "local_10e = 0" identifier = number_literal) ;) (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" identifier = number_literal) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_e2 = 0;" (assignment_expression "local_e2 = 0" identifier = number_literal) ;) (expression_statement "local_ba = 0;" (assignment_expression "local_ba = 0" identifier = number_literal) ;) (expression_statement "uStack_ac = 0;" (assignment_expression "uStack_ac = 0" identifier = number_literal) ;) (expression_statement "local_121 = 0x90;" (assignment_expression "local_121 = 0x90" identifier = number_literal) ;) (expression_statement "local_11c = 0;" (assignment_expression "local_11c = 0" identifier = number_literal) ;) (expression_statement "local_11b = 0x401f0f;" (assignment_expression "local_11b = 0x401f0f" identifier = number_literal) ;) (expression_statement "local_117 = 0x441f0f;" (assignment_expression "local_117 = 0x441f0f" identifier = number_literal) ;) (expression_statement "local_113 = 0;" (assignment_expression "local_113 = 0" identifier = number_literal) ;) (expression_statement "local_112 = 0x441f0f66;" (assignment_expression "local_112 = 0x441f0f66" identifier = number_literal) ;) (expression_statement "local_10c = 0x801f0f;" (assignment_expression "local_10c = 0x801f0f" identifier = number_literal) ;) (expression_statement "local_106 = 0;" (assignment_expression "local_106 = 0" identifier = number_literal) ;) (expression_statement "local_105 = 0x841f0f;" (assignment_expression "local_105 = 0x841f0f" identifier = number_literal) ;) (expression_statement "local_f5 = 0;" (assignment_expression "local_f5 = 0" identifier = number_literal) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_d7 = 0;" (assignment_expression "local_d7 = 0" identifier = number_literal) ;) (expression_statement "local_cb = 0;" (assignment_expression "local_cb = 0" identifier = number_literal) ;) (expression_statement "local_c7 = 0;" (assignment_expression "local_c7 = 0" identifier = number_literal) ;) (expression_statement "local_be = 0x84;" (assignment_expression "local_be = 0x84" identifier = number_literal) ;) (expression_statement "local_b0 = 0x841f;" (assignment_expression "local_b0 = 0x841f" identifier = number_literal) ;) (expression_statement "uStack_aa = 0;" (assignment_expression "uStack_aa = 0" identifier = number_literal) ;) (expression_statement "local_98[0] = (undefined8 ****)0x0;" (assignment_expression "local_98[0] = (undefined8 ****)0x0" (subscript_expression "local_98[0]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)0x0" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_98[1] = (undefined8 ****)&local_121;" (assignment_expression "local_98[1] = (undefined8 ****)&local_121" (subscript_expression "local_98[1]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_121" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_121" & identifier))) ;) (expression_statement "local_98[2] = (undefined8 ****)&local_120;" (assignment_expression "local_98[2] = (undefined8 ****)&local_120" (subscript_expression "local_98[2]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_120" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_120" & identifier))) ;) (expression_statement "local_98[3] = (undefined8 ****)&local_11e;" (assignment_expression "local_98[3] = (undefined8 ****)&local_11e" (subscript_expression "local_98[3]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_11e" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_11e" & identifier))) ;) (expression_statement "local_98[4] = (undefined8 ****)&local_11b;" (assignment_expression "local_98[4] = (undefined8 ****)&local_11b" (subscript_expression "local_98[4]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_11b" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_11b" & identifier))) ;) (expression_statement "local_98[5] = (undefined8 ****)&local_117;" (assignment_expression "local_98[5] = (undefined8 ****)&local_117" (subscript_expression "local_98[5]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_117" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_117" & identifier))) ;) (expression_statement "local_98[6] = (undefined8 ****)&local_112;" (assignment_expression "local_98[6] = (undefined8 ****)&local_112" (subscript_expression "local_98[6]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_112" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_112" & identifier))) ;) (expression_statement "local_98[7] = (undefined8 ****)&local_10c;" (assignment_expression "local_98[7] = (undefined8 ****)&local_10c" (subscript_expression "local_98[7]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_10c" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_10c" & identifier))) ;) (expression_statement "local_98[8] = (undefined8 ****)&local_105;" (assignment_expression "local_98[8] = (undefined8 ****)&local_105" (subscript_expression "local_98[8]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_105" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_105" & identifier))) ;) (expression_statement "local_98[9] = (undefined8 ****)&local_fd;" (assignment_expression "local_98[9] = (undefined8 ****)&local_fd" (subscript_expression "local_98[9]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_fd" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_fd" & identifier))) ;) (expression_statement "local_98[10] = (undefined8 ****)&local_f4;" (assignment_expression "local_98[10] = (undefined8 ****)&local_f4" (subscript_expression "local_98[10]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_f4" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_f4" & identifier))) ;) (expression_statement "local_98[0xb] = (undefined8 ****)&local_ea;" (assignment_expression "local_98[0xb] = (undefined8 ****)&local_ea" (subscript_expression "local_98[0xb]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_ea" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_ea" & identifier))) ;) (expression_statement "local_98[0xc] = (undefined8 ****)&local_df;" (assignment_expression "local_98[0xc] = (undefined8 ****)&local_df" (subscript_expression "local_98[0xc]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_df" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_df" & identifier))) ;) (expression_statement "local_98[0xd] = (undefined8 ****)&local_d3;" (assignment_expression "local_98[0xd] = (undefined8 ****)&local_d3" (subscript_expression "local_98[0xd]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_d3" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_d3" & identifier))) ;) (expression_statement "local_98[0xe] = (undefined8 ****)&local_c6;" (assignment_expression "local_98[0xe] = (undefined8 ****)&local_c6" (subscript_expression "local_98[0xe]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_c6" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_c6" & identifier))) ;) (expression_statement "local_20 = &local_b8;" (assignment_expression "local_20 = &local_b8" identifier = (pointer_expression "&local_b8" & identifier)) ;) (expression_statement "ppppuVar2 = local_98[param_3];" (assignment_expression "ppppuVar2 = local_98[param_3]" identifier = (subscript_expression "local_98[param_3]" identifier [ identifier ])) ;) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);" (call_expression "FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2)" identifier (argument_list "(param_1,ppppuVar2,param_3 + (long)ppppuVar2)" ( identifier , identifier , (binary_expression "param_3 + (long)ppppuVar2" identifier + (cast_expression "(long)ppppuVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);" (assignment_expression "local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9)" (field_expression "local_c6._0_5_" identifier . field_identifier) = (call_expression "CONCAT41((int)param_3 + -5,0xe9)" identifier (argument_list "((int)param_3 + -5,0xe9)" ( (binary_expression "(int)param_3 + -5" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "local_98[0] = local_98 + 2;" (assignment_expression "local_98[0] = local_98 + 2" (subscript_expression "local_98[0]" identifier [ number_literal ]) = (binary_expression "local_98 + 2" identifier + number_literal)) ;) (expression_statement "FUN_002a9350(local_98,param_3 - 5,0xffffff90);" (call_expression "FUN_002a9350(local_98,param_3 - 5,0xffffff90)" identifier (argument_list "(local_98,param_3 - 5,0xffffff90)" ( identifier , (binary_expression "param_3 - 5" identifier - number_literal) , number_literal ))) ;) (expression_statement "local_b8 = local_a8;" (assignment_expression "local_b8 = local_a8" identifier = identifier) ;) comment (expression_statement "FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);" (call_expression "FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5)" identifier (argument_list "(&local_b8,&local_c6,(long)&local_c6 + 5)" ( (pointer_expression "&local_b8" & identifier) , (pointer_expression "&local_c6" & identifier) , (binary_expression "(long)&local_c6 + 5" (cast_expression "(long)&local_c6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_c6" & identifier)) + number_literal) ))) ;) (expression_statement "uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];" (assignment_expression "uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1]" identifier = (binary_expression "CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1]" (call_expression "CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0)))" identifier (argument_list "(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0)))" ( identifier , (call_expression "CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))" identifier (argument_list "(uStack_aa,CONCAT24(uStack_ac,local_b0))" ( identifier , (call_expression "CONCAT24(uStack_ac,local_b0)" identifier (argument_list "(uStack_ac,local_b0)" ( identifier , identifier ))) ))) ))) + (cast_expression "(long)local_98[1]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "local_98[1]" identifier [ number_literal ])))) ;) (if_statement "if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }" if (parenthesized_expression "(local_b8 == local_a8)" ( (binary_expression "local_b8 == local_a8" identifier == identifier) )) (compound_statement "{\n    local_a8[0] = 0xf;\n  }" { (expression_statement "local_a8[0] = 0xf;" (assignment_expression "local_a8[0] = 0xf" (subscript_expression "local_a8[0]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }" if (parenthesized_expression "(local_a8[0] < uVar1)" ( (binary_expression "local_a8[0] < uVar1" (subscript_expression "local_a8[0]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }" { (if_statement "if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }" if (parenthesized_expression "((undefined8 *****)local_98[0] == local_98 + 2)" ( (binary_expression "(undefined8 *****)local_98[0] == local_98 + 2" (cast_expression "(undefined8 *****)local_98[0]" ( (type_descriptor "undefined8 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "local_98[0]" identifier [ number_literal ])) == (binary_expression "local_98 + 2" identifier + number_literal)) )) (compound_statement "{\n      local_98[2] = (undefined8 ****)0xf;\n    }" { (expression_statement "local_98[2] = (undefined8 ****)0xf;" (assignment_expression "local_98[2] = (undefined8 ****)0xf" (subscript_expression "local_98[2]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)0xf" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) })) (if_statement "if (uVar1 <= local_98[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }" if (parenthesized_expression "(uVar1 <= local_98[2])" ( (binary_expression "uVar1 <= local_98[2]" identifier <= (subscript_expression "local_98[2]" identifier [ number_literal ])) )) (compound_statement "{\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }" { comment (expression_statement "plVar4 = (long *)FUN_002aa2b0(local_98,0,0);" (assignment_expression "plVar4 = (long *)FUN_002aa2b0(local_98,0,0)" identifier = (cast_expression "(long *)FUN_002aa2b0(local_98,0,0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002aa2b0(local_98,0,0)" identifier (argument_list "(local_98,0,0)" ( identifier , number_literal , number_literal ))))) ;) (goto_statement "goto LAB_00164a18;" goto statement_identifier ;) })) })) comment (expression_statement "plVar4 = (long *)FUN_002aac00(&local_b8);" (assignment_expression "plVar4 = (long *)FUN_002aac00(&local_b8)" identifier = (cast_expression "(long *)FUN_002aac00(&local_b8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002aac00(&local_b8)" identifier (argument_list "(&local_b8)" ( (pointer_expression "&local_b8" & identifier) ))))) ;) (labeled_statement "LAB_00164a18:\n  *param_1 = (long)(param_1 + 2);" statement_identifier : (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;)) (if_statement "if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }" if (parenthesized_expression "((long *)*plVar4 == plVar4 + 2)" ( (binary_expression "(long *)*plVar4 == plVar4 + 2" (cast_expression "(long *)*plVar4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar4" * identifier)) == (binary_expression "plVar4 + 2" identifier + number_literal)) )) (compound_statement "{\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }" { (expression_statement "lVar3 = plVar4[3];" (assignment_expression "lVar3 = plVar4[3]" identifier = (subscript_expression "plVar4[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = plVar4[2];" (assignment_expression "param_1[2] = plVar4[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "plVar4[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = lVar3;" (assignment_expression "param_1[3] = lVar3" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }" else (compound_statement "{\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }" { (expression_statement "*param_1 = *plVar4;" (assignment_expression "*param_1 = *plVar4" (pointer_expression "*param_1" * identifier) = (pointer_expression "*plVar4" * identifier)) ;) (expression_statement "param_1[2] = plVar4[2];" (assignment_expression "param_1[2] = plVar4[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "plVar4[2]" identifier [ number_literal ])) ;) }))) (expression_statement "param_1[1] = plVar4[1];" (assignment_expression "param_1[1] = plVar4[1]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "plVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*plVar4 = (long)(plVar4 + 2);" (assignment_expression "*plVar4 = (long)(plVar4 + 2)" (pointer_expression "*plVar4" * identifier) = (cast_expression "(long)(plVar4 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar4 + 2)" ( (binary_expression "plVar4 + 2" identifier + number_literal) )))) ;) (expression_statement "plVar4[1] = 0;" (assignment_expression "plVar4[1] = 0" (subscript_expression "plVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(plVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar4 + 2)" * (cast_expression "(undefined1 *)(plVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar4 + 2)" ( (binary_expression "plVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }" if (parenthesized_expression "(local_b8 != local_a8)" ( (binary_expression "local_b8 != local_a8" identifier != identifier) )) (compound_statement "{\n    FUN_002a2980();\n  }" { (expression_statement "FUN_002a2980();" (call_expression "FUN_002a2980()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }" if (parenthesized_expression "((undefined8 *****)local_98[0] != local_98 + 2)" ( (binary_expression "(undefined8 *****)local_98[0] != local_98 + 2" (cast_expression "(undefined8 *****)local_98[0]" ( (type_descriptor "undefined8 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "local_98[0]" identifier [ number_literal ])) != (binary_expression "local_98 + 2" identifier + number_literal)) )) (compound_statement "{\n    FUN_002a2980();\n  }" { (expression_statement "FUN_002a2980();" (call_expression "FUN_002a2980()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* DWARF original prototype: string do_code_fill(Target_x86_64<64> * this, section_size_type length)\n    */\n\nstring * __thiscall\nanon_unknown.dwarf_241c3b::Target_x86_64<64>::do_code_fill\n          (string *__return_storage_ptr__,Target_x86_64<64> *this,section_size_type length)\n\n{\n  char *pcVar1;\n  long lVar2;\n  ulong uVar3;\n  long *plVar4;\n  char nop1 [1];\n  char nop2 [2];\n  char nop3 [3];\n  char nop4 [4];\n  char nop5 [5];\n  char nop6 [6];\n  char nop7 [7];\n  char nop8 [8];\n  char nop9 [9];\n  char nop10 [10];\n  char nop11 [11];\n  char nop12 [12];\n  char nop13 [13];\n  char nop14 [14];\n  char nop15 [15];\n  undefined1 uStack_a9;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  local_a8;\n  char *nops [16];\n  \n  if (length < 0x10) {\n    nop2[0] = 'f';\n    nop2[1] = -0x70;\n    nop9[0] = 'f';\n    nop9[1] = '\x0f';\n    nop9[2] = '\x1f';\n    nop9[3] = -0x7c;\n    nop9[4] = '\0';\n    nop9[5] = '\0';\n    nop9[6] = '\0';\n    nop9[7] = '\0';\n    nop10[0] = 'f';\n    nop10[1] = '.';\n    nop10[2] = '\x0f';\n    nop10[3] = '\x1f';\n    nop10[4] = -0x7c;\n    nop10[5] = '\0';\n    nop10[6] = '\0';\n    nop10[7] = '\0';\n    nop11[0] = 'f';\n    nop11[1] = 'f';\n    nop11[2] = '.';\n    nop11[3] = '\x0f';\n    nop11[4] = '\x1f';\n    nop11[5] = -0x7c;\n    nop11[6] = '\0';\n    nop11[7] = '\0';\n    nop12[0] = 'f';\n    nop12[1] = 'f';\n    nop12[2] = 'f';\n    nop12[3] = '.';\n    nop12[4] = '\x0f';\n    nop12[5] = '\x1f';\n    nop12[6] = -0x7c;\n    nop12[7] = '\0';\n    nop13[0] = 'f';\n    nop13[1] = 'f';\n    nop13[2] = 'f';\n    nop13[3] = 'f';\n    nop13[4] = '.';\n    nop13[5] = '\x0f';\n    nop13[6] = '\x1f';\n    nop13[7] = -0x7c;\n    nop14[0] = 'f';\n    nop14[1] = 'f';\n    nop14[2] = 'f';\n    nop14[3] = 'f';\n    nop14[4] = 'f';\n    nop14[5] = '.';\n    nop14[6] = '\x0f';\n    nop14[7] = '\x1f';\n    nop15[0] = 'f';\n    nop15[1] = 'f';\n    nop15[2] = 'f';\n    nop15[3] = 'f';\n    nop15[4] = 'f';\n    nop15[5] = 'f';\n    nop15[6] = '.';\n    nop15[7] = '\x0f';\n    nop3[0] = '\x0f';\n    nop3[1] = '\x1f';\n    builtin_strncpy(nop6,"f\x0f\x1fD",5);\n    nop6[5] = '\0';\n    nop7[4] = '\0';\n    nop7[5] = '\0';\n    nop10[8] = '\0';\n    nop10[9] = '\0';\n    nop11[8] = '\0';\n    nop11[9] = '\0';\n    nop14[0xc] = '\0';\n    nop14[0xd] = '\0';\n    nop15[0xc] = '\0';\n    nop15[0xd] = '\0';\n    nop1[0] = -0x70;\n    nop3[2] = '\0';\n    builtin_strncpy(nop4,"\x0f\x1f@",4);\n    builtin_strncpy(nop5,"\x0f\x1fD",4);\n    nop5[4] = '\0';\n    nop7[0] = '\x0f';\n    nop7[1] = '\x1f';\n    nop7[2] = -0x80;\n    nop7[3] = '\0';\n    nop7[6] = '\0';\n    nop8[0] = '\x0f';\n    nop8[1] = '\x1f';\n    nop8[2] = -0x7c;\n    nop8[3] = '\0';\n    nop8[4] = '\0';\n    nop8[5] = '\0';\n    nop8[6] = '\0';\n    nop8[7] = '\0';\n    nop9[8] = '\0';\n    nop11[10] = '\0';\n    nop12[8] = '\0';\n    nop12[9] = '\0';\n    nop12[10] = '\0';\n    nop12[0xb] = '\0';\n    nop13[8] = '\0';\n    nop13[9] = '\0';\n    nop13[10] = '\0';\n    nop13[0xb] = '\0';\n    nop13[0xc] = '\0';\n    nop14[8] = -0x7c;\n    nop14[9] = '\0';\n    nop14[10] = '\0';\n    nop14[0xb] = '\0';\n    nop15[8] = '\x1f';\n    nop15[9] = -0x7c;\n    nop15[10] = '\0';\n    nop15[0xb] = '\0';\n    nop15[0xe] = '\0';\n    nops[0] = (char *)0x0;\n    nops[1] = nop1;\n    nops[2] = nop2;\n    nops[3] = nop3;\n    nops[4] = nop4;\n    nops[5] = nop5;\n    nops[6] = nop6;\n    nops[7] = nop7;\n    nops[8] = nop8;\n    nops[9] = nop9;\n    nops[10] = nop10;\n    nops[0xb] = nop11;\n    nops[0xc] = nop12;\n    nops[0xd] = nop13;\n    nops[0xe] = nop14;\n    nops[0xf] = nop15;\n    pcVar1 = nops[length];\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(__return_storage_ptr__,pcVar1,pcVar1 + length);\n    return __return_storage_ptr__;\n  }\n  nop14._1_4_ = (int)length + -5;\n  nop14[0] = -0x17;\n  nops[0] = (char *)(nops + 2);\n  std::string::_M_construct((string *)nops,length - 5,-0x70);\n  nop15._0_8_ = &local_a8;\n                    /* try { // try from 001649b4 to 001649b8 has its CatchHandler @ 00164cfa */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)nop15,nop14,\n             nop14 + 5);\n  uVar3 = CONCAT17(uStack_a9,CONCAT16(nop15[0xe],CONCAT24(nop15._12_2_,nop15._8_4_)));\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)nop15._0_8_ == &local_a8) {\n    local_a8._M_allocated_capacity = (size_type)(char *)0xf;\n  }\n  if (local_a8._M_allocated_capacity < nops[1] + uVar3) {\n    if ((char **)nops[0] == nops + 2) {\n      nops[2] = (char *)0xf;\n    }\n    if (nops[1] + uVar3 <= nops[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)std::string::_M_replace((string *)nops,0,0,(char *)nop15._0_8_,uVar3);\n      goto LAB_00164a18;\n    }\n  }\n                    /* try { // try from 00164a13 to 00164a17 has its CatchHandler @ 00164cf2 */\n  plVar4 = (long *)std::string::_M_append((string *)nop15,nops[0],(ulong)nops[1]);\nLAB_00164a18:\n  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n  if ((long *)*plVar4 == plVar4 + 2) {\n    lVar2 = plVar4[3];\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];\n    *(long *)((long)&__return_storage_ptr__->field_2 + 8) = lVar2;\n  }\n  else {\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)*plVar4;\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];\n  }\n  __return_storage_ptr__->_M_string_length = plVar4[1];\n  *plVar4 = (long)(plVar4 + 2);\n  plVar4[1] = 0;\n  *(undefined1 *)(plVar4 + 2) = 0;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)nop15._0_8_ != &local_a8) {\n    operator_delete((void *)nop15._0_8_);\n  }\n  if ((char **)nops[0] != nops + 2) {\n    operator_delete(nops[0]);\n  }\n  return __return_storage_ptr__;\n}\n\n" comment (ERROR "string * __thiscall\nanon_unknown.dwarf_241c3b::Target_x86_64<64>::do_code_fill\n          (string *__return_storage_ptr__,Target_x86_64<64> *this,section_size_type length)" (binary_expression "string * __thiscall\nanon_unknown.dwarf_241c3b::Target_x86_64<64>::do_code_fill\n          (string *__return_storage_ptr__,Target_x86_64<64> *this,section_size_type length)" (binary_expression "string * __thiscall\nanon_unknown.dwarf_241c3b::Target_x86_64<64" (binary_expression "string * __thiscall\nanon_unknown.dwarf_241c3b" identifier * (ERROR "__thiscall" identifier) (field_expression "anon_unknown.dwarf_241c3b" identifier . field_identifier)) (ERROR "::Target_x86_64" : : identifier) < number_literal) > (ERROR "::" : :) (call_expression "do_code_fill\n          (string *__return_storage_ptr__,Target_x86_64<64> *this,section_size_type length)" identifier (argument_list "(string *__return_storage_ptr__,Target_x86_64<64> *this,section_size_type length)" ( (binary_expression "string *__return_storage_ptr__" identifier * identifier) , (binary_expression "Target_x86_64<64> *this" (binary_expression "Target_x86_64<64" identifier < number_literal) > (pointer_expression "*this" * identifier)) , identifier (ERROR "length" identifier) ))))) (compound_statement "{\n  char *pcVar1;\n  long lVar2;\n  ulong uVar3;\n  long *plVar4;\n  char nop1 [1];\n  char nop2 [2];\n  char nop3 [3];\n  char nop4 [4];\n  char nop5 [5];\n  char nop6 [6];\n  char nop7 [7];\n  char nop8 [8];\n  char nop9 [9];\n  char nop10 [10];\n  char nop11 [11];\n  char nop12 [12];\n  char nop13 [13];\n  char nop14 [14];\n  char nop15 [15];\n  undefined1 uStack_a9;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  local_a8;\n  char *nops [16];\n  \n  if (length < 0x10) {\n    nop2[0] = 'f';\n    nop2[1] = -0x70;\n    nop9[0] = 'f';\n    nop9[1] = '\x0f';\n    nop9[2] = '\x1f';\n    nop9[3] = -0x7c;\n    nop9[4] = '\0';\n    nop9[5] = '\0';\n    nop9[6] = '\0';\n    nop9[7] = '\0';\n    nop10[0] = 'f';\n    nop10[1] = '.';\n    nop10[2] = '\x0f';\n    nop10[3] = '\x1f';\n    nop10[4] = -0x7c;\n    nop10[5] = '\0';\n    nop10[6] = '\0';\n    nop10[7] = '\0';\n    nop11[0] = 'f';\n    nop11[1] = 'f';\n    nop11[2] = '.';\n    nop11[3] = '\x0f';\n    nop11[4] = '\x1f';\n    nop11[5] = -0x7c;\n    nop11[6] = '\0';\n    nop11[7] = '\0';\n    nop12[0] = 'f';\n    nop12[1] = 'f';\n    nop12[2] = 'f';\n    nop12[3] = '.';\n    nop12[4] = '\x0f';\n    nop12[5] = '\x1f';\n    nop12[6] = -0x7c;\n    nop12[7] = '\0';\n    nop13[0] = 'f';\n    nop13[1] = 'f';\n    nop13[2] = 'f';\n    nop13[3] = 'f';\n    nop13[4] = '.';\n    nop13[5] = '\x0f';\n    nop13[6] = '\x1f';\n    nop13[7] = -0x7c;\n    nop14[0] = 'f';\n    nop14[1] = 'f';\n    nop14[2] = 'f';\n    nop14[3] = 'f';\n    nop14[4] = 'f';\n    nop14[5] = '.';\n    nop14[6] = '\x0f';\n    nop14[7] = '\x1f';\n    nop15[0] = 'f';\n    nop15[1] = 'f';\n    nop15[2] = 'f';\n    nop15[3] = 'f';\n    nop15[4] = 'f';\n    nop15[5] = 'f';\n    nop15[6] = '.';\n    nop15[7] = '\x0f';\n    nop3[0] = '\x0f';\n    nop3[1] = '\x1f';\n    builtin_strncpy(nop6,"f\x0f\x1fD",5);\n    nop6[5] = '\0';\n    nop7[4] = '\0';\n    nop7[5] = '\0';\n    nop10[8] = '\0';\n    nop10[9] = '\0';\n    nop11[8] = '\0';\n    nop11[9] = '\0';\n    nop14[0xc] = '\0';\n    nop14[0xd] = '\0';\n    nop15[0xc] = '\0';\n    nop15[0xd] = '\0';\n    nop1[0] = -0x70;\n    nop3[2] = '\0';\n    builtin_strncpy(nop4,"\x0f\x1f@",4);\n    builtin_strncpy(nop5,"\x0f\x1fD",4);\n    nop5[4] = '\0';\n    nop7[0] = '\x0f';\n    nop7[1] = '\x1f';\n    nop7[2] = -0x80;\n    nop7[3] = '\0';\n    nop7[6] = '\0';\n    nop8[0] = '\x0f';\n    nop8[1] = '\x1f';\n    nop8[2] = -0x7c;\n    nop8[3] = '\0';\n    nop8[4] = '\0';\n    nop8[5] = '\0';\n    nop8[6] = '\0';\n    nop8[7] = '\0';\n    nop9[8] = '\0';\n    nop11[10] = '\0';\n    nop12[8] = '\0';\n    nop12[9] = '\0';\n    nop12[10] = '\0';\n    nop12[0xb] = '\0';\n    nop13[8] = '\0';\n    nop13[9] = '\0';\n    nop13[10] = '\0';\n    nop13[0xb] = '\0';\n    nop13[0xc] = '\0';\n    nop14[8] = -0x7c;\n    nop14[9] = '\0';\n    nop14[10] = '\0';\n    nop14[0xb] = '\0';\n    nop15[8] = '\x1f';\n    nop15[9] = -0x7c;\n    nop15[10] = '\0';\n    nop15[0xb] = '\0';\n    nop15[0xe] = '\0';\n    nops[0] = (char *)0x0;\n    nops[1] = nop1;\n    nops[2] = nop2;\n    nops[3] = nop3;\n    nops[4] = nop4;\n    nops[5] = nop5;\n    nops[6] = nop6;\n    nops[7] = nop7;\n    nops[8] = nop8;\n    nops[9] = nop9;\n    nops[10] = nop10;\n    nops[0xb] = nop11;\n    nops[0xc] = nop12;\n    nops[0xd] = nop13;\n    nops[0xe] = nop14;\n    nops[0xf] = nop15;\n    pcVar1 = nops[length];\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(__return_storage_ptr__,pcVar1,pcVar1 + length);\n    return __return_storage_ptr__;\n  }\n  nop14._1_4_ = (int)length + -5;\n  nop14[0] = -0x17;\n  nops[0] = (char *)(nops + 2);\n  std::string::_M_construct((string *)nops,length - 5,-0x70);\n  nop15._0_8_ = &local_a8;\n                    /* try { // try from 001649b4 to 001649b8 has its CatchHandler @ 00164cfa */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)nop15,nop14,\n             nop14 + 5);\n  uVar3 = CONCAT17(uStack_a9,CONCAT16(nop15[0xe],CONCAT24(nop15._12_2_,nop15._8_4_)));\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)nop15._0_8_ == &local_a8) {\n    local_a8._M_allocated_capacity = (size_type)(char *)0xf;\n  }\n  if (local_a8._M_allocated_capacity < nops[1] + uVar3) {\n    if ((char **)nops[0] == nops + 2) {\n      nops[2] = (char *)0xf;\n    }\n    if (nops[1] + uVar3 <= nops[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)std::string::_M_replace((string *)nops,0,0,(char *)nop15._0_8_,uVar3);\n      goto LAB_00164a18;\n    }\n  }\n                    /* try { // try from 00164a13 to 00164a17 has its CatchHandler @ 00164cf2 */\n  plVar4 = (long *)std::string::_M_append((string *)nop15,nops[0],(ulong)nops[1]);\nLAB_00164a18:\n  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n  if ((long *)*plVar4 == plVar4 + 2) {\n    lVar2 = plVar4[3];\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];\n    *(long *)((long)&__return_storage_ptr__->field_2 + 8) = lVar2;\n  }\n  else {\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)*plVar4;\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];\n  }\n  __return_storage_ptr__->_M_string_length = plVar4[1];\n  *plVar4 = (long)(plVar4 + 2);\n  plVar4[1] = 0;\n  *(undefined1 *)(plVar4 + 2) = 0;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)nop15._0_8_ != &local_a8) {\n    operator_delete((void *)nop15._0_8_);\n  }\n  if ((char **)nops[0] != nops + 2) {\n    operator_delete(nops[0]);\n  }\n  return __return_storage_ptr__;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "char nop1 [1];" primitive_type (array_declarator "nop1 [1]" identifier [ number_literal ]) ;) (declaration "char nop2 [2];" primitive_type (array_declarator "nop2 [2]" identifier [ number_literal ]) ;) (declaration "char nop3 [3];" primitive_type (array_declarator "nop3 [3]" identifier [ number_literal ]) ;) (declaration "char nop4 [4];" primitive_type (array_declarator "nop4 [4]" identifier [ number_literal ]) ;) (declaration "char nop5 [5];" primitive_type (array_declarator "nop5 [5]" identifier [ number_literal ]) ;) (declaration "char nop6 [6];" primitive_type (array_declarator "nop6 [6]" identifier [ number_literal ]) ;) (declaration "char nop7 [7];" primitive_type (array_declarator "nop7 [7]" identifier [ number_literal ]) ;) (declaration "char nop8 [8];" primitive_type (array_declarator "nop8 [8]" identifier [ number_literal ]) ;) (declaration "char nop9 [9];" primitive_type (array_declarator "nop9 [9]" identifier [ number_literal ]) ;) (declaration "char nop10 [10];" primitive_type (array_declarator "nop10 [10]" identifier [ number_literal ]) ;) (declaration "char nop11 [11];" primitive_type (array_declarator "nop11 [11]" identifier [ number_literal ]) ;) (declaration "char nop12 [12];" primitive_type (array_declarator "nop12 [12]" identifier [ number_literal ]) ;) (declaration "char nop13 [13];" primitive_type (array_declarator "nop13 [13]" identifier [ number_literal ]) ;) (declaration "char nop14 [14];" primitive_type (array_declarator "nop14 [14]" identifier [ number_literal ]) ;) (declaration "char nop15 [15];" primitive_type (array_declarator "nop15 [15]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_a9;" type_identifier identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  local_a8;" (binary_expression "allocator<char>_>_9\n  local_a8" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "_9" identifier) identifier) ;) (declaration "char *nops [16];" primitive_type (pointer_declarator "*nops [16]" * (array_declarator "nops [16]" identifier [ number_literal ])) ;) (if_statement "if (length < 0x10) {\n    nop2[0] = 'f';\n    nop2[1] = -0x70;\n    nop9[0] = 'f';\n    nop9[1] = '\x0f';\n    nop9[2] = '\x1f';\n    nop9[3] = -0x7c;\n    nop9[4] = '\0';\n    nop9[5] = '\0';\n    nop9[6] = '\0';\n    nop9[7] = '\0';\n    nop10[0] = 'f';\n    nop10[1] = '.';\n    nop10[2] = '\x0f';\n    nop10[3] = '\x1f';\n    nop10[4] = -0x7c;\n    nop10[5] = '\0';\n    nop10[6] = '\0';\n    nop10[7] = '\0';\n    nop11[0] = 'f';\n    nop11[1] = 'f';\n    nop11[2] = '.';\n    nop11[3] = '\x0f';\n    nop11[4] = '\x1f';\n    nop11[5] = -0x7c;\n    nop11[6] = '\0';\n    nop11[7] = '\0';\n    nop12[0] = 'f';\n    nop12[1] = 'f';\n    nop12[2] = 'f';\n    nop12[3] = '.';\n    nop12[4] = '\x0f';\n    nop12[5] = '\x1f';\n    nop12[6] = -0x7c;\n    nop12[7] = '\0';\n    nop13[0] = 'f';\n    nop13[1] = 'f';\n    nop13[2] = 'f';\n    nop13[3] = 'f';\n    nop13[4] = '.';\n    nop13[5] = '\x0f';\n    nop13[6] = '\x1f';\n    nop13[7] = -0x7c;\n    nop14[0] = 'f';\n    nop14[1] = 'f';\n    nop14[2] = 'f';\n    nop14[3] = 'f';\n    nop14[4] = 'f';\n    nop14[5] = '.';\n    nop14[6] = '\x0f';\n    nop14[7] = '\x1f';\n    nop15[0] = 'f';\n    nop15[1] = 'f';\n    nop15[2] = 'f';\n    nop15[3] = 'f';\n    nop15[4] = 'f';\n    nop15[5] = 'f';\n    nop15[6] = '.';\n    nop15[7] = '\x0f';\n    nop3[0] = '\x0f';\n    nop3[1] = '\x1f';\n    builtin_strncpy(nop6,"f\x0f\x1fD",5);\n    nop6[5] = '\0';\n    nop7[4] = '\0';\n    nop7[5] = '\0';\n    nop10[8] = '\0';\n    nop10[9] = '\0';\n    nop11[8] = '\0';\n    nop11[9] = '\0';\n    nop14[0xc] = '\0';\n    nop14[0xd] = '\0';\n    nop15[0xc] = '\0';\n    nop15[0xd] = '\0';\n    nop1[0] = -0x70;\n    nop3[2] = '\0';\n    builtin_strncpy(nop4,"\x0f\x1f@",4);\n    builtin_strncpy(nop5,"\x0f\x1fD",4);\n    nop5[4] = '\0';\n    nop7[0] = '\x0f';\n    nop7[1] = '\x1f';\n    nop7[2] = -0x80;\n    nop7[3] = '\0';\n    nop7[6] = '\0';\n    nop8[0] = '\x0f';\n    nop8[1] = '\x1f';\n    nop8[2] = -0x7c;\n    nop8[3] = '\0';\n    nop8[4] = '\0';\n    nop8[5] = '\0';\n    nop8[6] = '\0';\n    nop8[7] = '\0';\n    nop9[8] = '\0';\n    nop11[10] = '\0';\n    nop12[8] = '\0';\n    nop12[9] = '\0';\n    nop12[10] = '\0';\n    nop12[0xb] = '\0';\n    nop13[8] = '\0';\n    nop13[9] = '\0';\n    nop13[10] = '\0';\n    nop13[0xb] = '\0';\n    nop13[0xc] = '\0';\n    nop14[8] = -0x7c;\n    nop14[9] = '\0';\n    nop14[10] = '\0';\n    nop14[0xb] = '\0';\n    nop15[8] = '\x1f';\n    nop15[9] = -0x7c;\n    nop15[10] = '\0';\n    nop15[0xb] = '\0';\n    nop15[0xe] = '\0';\n    nops[0] = (char *)0x0;\n    nops[1] = nop1;\n    nops[2] = nop2;\n    nops[3] = nop3;\n    nops[4] = nop4;\n    nops[5] = nop5;\n    nops[6] = nop6;\n    nops[7] = nop7;\n    nops[8] = nop8;\n    nops[9] = nop9;\n    nops[10] = nop10;\n    nops[0xb] = nop11;\n    nops[0xc] = nop12;\n    nops[0xd] = nop13;\n    nops[0xe] = nop14;\n    nops[0xf] = nop15;\n    pcVar1 = nops[length];\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(__return_storage_ptr__,pcVar1,pcVar1 + length);\n    return __return_storage_ptr__;\n  }" if (parenthesized_expression "(length < 0x10)" ( (binary_expression "length < 0x10" identifier < number_literal) )) (compound_statement "{\n    nop2[0] = 'f';\n    nop2[1] = -0x70;\n    nop9[0] = 'f';\n    nop9[1] = '\x0f';\n    nop9[2] = '\x1f';\n    nop9[3] = -0x7c;\n    nop9[4] = '\0';\n    nop9[5] = '\0';\n    nop9[6] = '\0';\n    nop9[7] = '\0';\n    nop10[0] = 'f';\n    nop10[1] = '.';\n    nop10[2] = '\x0f';\n    nop10[3] = '\x1f';\n    nop10[4] = -0x7c;\n    nop10[5] = '\0';\n    nop10[6] = '\0';\n    nop10[7] = '\0';\n    nop11[0] = 'f';\n    nop11[1] = 'f';\n    nop11[2] = '.';\n    nop11[3] = '\x0f';\n    nop11[4] = '\x1f';\n    nop11[5] = -0x7c;\n    nop11[6] = '\0';\n    nop11[7] = '\0';\n    nop12[0] = 'f';\n    nop12[1] = 'f';\n    nop12[2] = 'f';\n    nop12[3] = '.';\n    nop12[4] = '\x0f';\n    nop12[5] = '\x1f';\n    nop12[6] = -0x7c;\n    nop12[7] = '\0';\n    nop13[0] = 'f';\n    nop13[1] = 'f';\n    nop13[2] = 'f';\n    nop13[3] = 'f';\n    nop13[4] = '.';\n    nop13[5] = '\x0f';\n    nop13[6] = '\x1f';\n    nop13[7] = -0x7c;\n    nop14[0] = 'f';\n    nop14[1] = 'f';\n    nop14[2] = 'f';\n    nop14[3] = 'f';\n    nop14[4] = 'f';\n    nop14[5] = '.';\n    nop14[6] = '\x0f';\n    nop14[7] = '\x1f';\n    nop15[0] = 'f';\n    nop15[1] = 'f';\n    nop15[2] = 'f';\n    nop15[3] = 'f';\n    nop15[4] = 'f';\n    nop15[5] = 'f';\n    nop15[6] = '.';\n    nop15[7] = '\x0f';\n    nop3[0] = '\x0f';\n    nop3[1] = '\x1f';\n    builtin_strncpy(nop6,"f\x0f\x1fD",5);\n    nop6[5] = '\0';\n    nop7[4] = '\0';\n    nop7[5] = '\0';\n    nop10[8] = '\0';\n    nop10[9] = '\0';\n    nop11[8] = '\0';\n    nop11[9] = '\0';\n    nop14[0xc] = '\0';\n    nop14[0xd] = '\0';\n    nop15[0xc] = '\0';\n    nop15[0xd] = '\0';\n    nop1[0] = -0x70;\n    nop3[2] = '\0';\n    builtin_strncpy(nop4,"\x0f\x1f@",4);\n    builtin_strncpy(nop5,"\x0f\x1fD",4);\n    nop5[4] = '\0';\n    nop7[0] = '\x0f';\n    nop7[1] = '\x1f';\n    nop7[2] = -0x80;\n    nop7[3] = '\0';\n    nop7[6] = '\0';\n    nop8[0] = '\x0f';\n    nop8[1] = '\x1f';\n    nop8[2] = -0x7c;\n    nop8[3] = '\0';\n    nop8[4] = '\0';\n    nop8[5] = '\0';\n    nop8[6] = '\0';\n    nop8[7] = '\0';\n    nop9[8] = '\0';\n    nop11[10] = '\0';\n    nop12[8] = '\0';\n    nop12[9] = '\0';\n    nop12[10] = '\0';\n    nop12[0xb] = '\0';\n    nop13[8] = '\0';\n    nop13[9] = '\0';\n    nop13[10] = '\0';\n    nop13[0xb] = '\0';\n    nop13[0xc] = '\0';\n    nop14[8] = -0x7c;\n    nop14[9] = '\0';\n    nop14[10] = '\0';\n    nop14[0xb] = '\0';\n    nop15[8] = '\x1f';\n    nop15[9] = -0x7c;\n    nop15[10] = '\0';\n    nop15[0xb] = '\0';\n    nop15[0xe] = '\0';\n    nops[0] = (char *)0x0;\n    nops[1] = nop1;\n    nops[2] = nop2;\n    nops[3] = nop3;\n    nops[4] = nop4;\n    nops[5] = nop5;\n    nops[6] = nop6;\n    nops[7] = nop7;\n    nops[8] = nop8;\n    nops[9] = nop9;\n    nops[10] = nop10;\n    nops[0xb] = nop11;\n    nops[0xc] = nop12;\n    nops[0xd] = nop13;\n    nops[0xe] = nop14;\n    nops[0xf] = nop15;\n    pcVar1 = nops[length];\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(__return_storage_ptr__,pcVar1,pcVar1 + length);\n    return __return_storage_ptr__;\n  }" { (expression_statement "nop2[0] = 'f';" (assignment_expression "nop2[0] = 'f'" (subscript_expression "nop2[0]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop2[1] = -0x70;" (assignment_expression "nop2[1] = -0x70" (subscript_expression "nop2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop9[0] = 'f';" (assignment_expression "nop9[0] = 'f'" (subscript_expression "nop9[0]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop9[1] = '\x0f';" (assignment_expression "nop9[1] = '\x0f'" (subscript_expression "nop9[1]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "nop9[2] = '\x1f';" (assignment_expression "nop9[2] = '\x1f'" (subscript_expression "nop9[2]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "nop9[3] = -0x7c;" (assignment_expression "nop9[3] = -0x7c" (subscript_expression "nop9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop9[4] = '\0';" (assignment_expression "nop9[4] = '\0'" (subscript_expression "nop9[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop9[5] = '\0';" (assignment_expression "nop9[5] = '\0'" (subscript_expression "nop9[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop9[6] = '\0';" (assignment_expression "nop9[6] = '\0'" (subscript_expression "nop9[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop9[7] = '\0';" (assignment_expression "nop9[7] = '\0'" (subscript_expression "nop9[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop10[0] = 'f';" (assignment_expression "nop10[0] = 'f'" (subscript_expression "nop10[0]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop10[1] = '.';" (assignment_expression "nop10[1] = '.'" (subscript_expression "nop10[1]" identifier [ number_literal ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "nop10[2] = '\x0f';" (assignment_expression "nop10[2] = '\x0f'" (subscript_expression "nop10[2]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "nop10[3] = '\x1f';" (assignment_expression "nop10[3] = '\x1f'" (subscript_expression "nop10[3]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "nop10[4] = -0x7c;" (assignment_expression "nop10[4] = -0x7c" (subscript_expression "nop10[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop10[5] = '\0';" (assignment_expression "nop10[5] = '\0'" (subscript_expression "nop10[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop10[6] = '\0';" (assignment_expression "nop10[6] = '\0'" (subscript_expression "nop10[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop10[7] = '\0';" (assignment_expression "nop10[7] = '\0'" (subscript_expression "nop10[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop11[0] = 'f';" (assignment_expression "nop11[0] = 'f'" (subscript_expression "nop11[0]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop11[1] = 'f';" (assignment_expression "nop11[1] = 'f'" (subscript_expression "nop11[1]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop11[2] = '.';" (assignment_expression "nop11[2] = '.'" (subscript_expression "nop11[2]" identifier [ number_literal ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "nop11[3] = '\x0f';" (assignment_expression "nop11[3] = '\x0f'" (subscript_expression "nop11[3]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "nop11[4] = '\x1f';" (assignment_expression "nop11[4] = '\x1f'" (subscript_expression "nop11[4]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "nop11[5] = -0x7c;" (assignment_expression "nop11[5] = -0x7c" (subscript_expression "nop11[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop11[6] = '\0';" (assignment_expression "nop11[6] = '\0'" (subscript_expression "nop11[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop11[7] = '\0';" (assignment_expression "nop11[7] = '\0'" (subscript_expression "nop11[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop12[0] = 'f';" (assignment_expression "nop12[0] = 'f'" (subscript_expression "nop12[0]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop12[1] = 'f';" (assignment_expression "nop12[1] = 'f'" (subscript_expression "nop12[1]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop12[2] = 'f';" (assignment_expression "nop12[2] = 'f'" (subscript_expression "nop12[2]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop12[3] = '.';" (assignment_expression "nop12[3] = '.'" (subscript_expression "nop12[3]" identifier [ number_literal ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "nop12[4] = '\x0f';" (assignment_expression "nop12[4] = '\x0f'" (subscript_expression "nop12[4]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "nop12[5] = '\x1f';" (assignment_expression "nop12[5] = '\x1f'" (subscript_expression "nop12[5]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "nop12[6] = -0x7c;" (assignment_expression "nop12[6] = -0x7c" (subscript_expression "nop12[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop12[7] = '\0';" (assignment_expression "nop12[7] = '\0'" (subscript_expression "nop12[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop13[0] = 'f';" (assignment_expression "nop13[0] = 'f'" (subscript_expression "nop13[0]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop13[1] = 'f';" (assignment_expression "nop13[1] = 'f'" (subscript_expression "nop13[1]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop13[2] = 'f';" (assignment_expression "nop13[2] = 'f'" (subscript_expression "nop13[2]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop13[3] = 'f';" (assignment_expression "nop13[3] = 'f'" (subscript_expression "nop13[3]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop13[4] = '.';" (assignment_expression "nop13[4] = '.'" (subscript_expression "nop13[4]" identifier [ number_literal ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "nop13[5] = '\x0f';" (assignment_expression "nop13[5] = '\x0f'" (subscript_expression "nop13[5]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "nop13[6] = '\x1f';" (assignment_expression "nop13[6] = '\x1f'" (subscript_expression "nop13[6]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "nop13[7] = -0x7c;" (assignment_expression "nop13[7] = -0x7c" (subscript_expression "nop13[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop14[0] = 'f';" (assignment_expression "nop14[0] = 'f'" (subscript_expression "nop14[0]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop14[1] = 'f';" (assignment_expression "nop14[1] = 'f'" (subscript_expression "nop14[1]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop14[2] = 'f';" (assignment_expression "nop14[2] = 'f'" (subscript_expression "nop14[2]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop14[3] = 'f';" (assignment_expression "nop14[3] = 'f'" (subscript_expression "nop14[3]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop14[4] = 'f';" (assignment_expression "nop14[4] = 'f'" (subscript_expression "nop14[4]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop14[5] = '.';" (assignment_expression "nop14[5] = '.'" (subscript_expression "nop14[5]" identifier [ number_literal ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "nop14[6] = '\x0f';" (assignment_expression "nop14[6] = '\x0f'" (subscript_expression "nop14[6]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "nop14[7] = '\x1f';" (assignment_expression "nop14[7] = '\x1f'" (subscript_expression "nop14[7]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "nop15[0] = 'f';" (assignment_expression "nop15[0] = 'f'" (subscript_expression "nop15[0]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop15[1] = 'f';" (assignment_expression "nop15[1] = 'f'" (subscript_expression "nop15[1]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop15[2] = 'f';" (assignment_expression "nop15[2] = 'f'" (subscript_expression "nop15[2]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop15[3] = 'f';" (assignment_expression "nop15[3] = 'f'" (subscript_expression "nop15[3]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop15[4] = 'f';" (assignment_expression "nop15[4] = 'f'" (subscript_expression "nop15[4]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop15[5] = 'f';" (assignment_expression "nop15[5] = 'f'" (subscript_expression "nop15[5]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "nop15[6] = '.';" (assignment_expression "nop15[6] = '.'" (subscript_expression "nop15[6]" identifier [ number_literal ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "nop15[7] = '\x0f';" (assignment_expression "nop15[7] = '\x0f'" (subscript_expression "nop15[7]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "nop3[0] = '\x0f';" (assignment_expression "nop3[0] = '\x0f'" (subscript_expression "nop3[0]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "nop3[1] = '\x1f';" (assignment_expression "nop3[1] = '\x1f'" (subscript_expression "nop3[1]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "builtin_strncpy(nop6,"f\x0f\x1fD",5);" (call_expression "builtin_strncpy(nop6,"f\x0f\x1fD",5)" identifier (argument_list "(nop6,"f\x0f\x1fD",5)" ( identifier , (string_literal ""f\x0f\x1fD"" " string_content escape_sequence escape_sequence ") , number_literal ))) ;) (expression_statement "nop6[5] = '\0';" (assignment_expression "nop6[5] = '\0'" (subscript_expression "nop6[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop7[4] = '\0';" (assignment_expression "nop7[4] = '\0'" (subscript_expression "nop7[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop7[5] = '\0';" (assignment_expression "nop7[5] = '\0'" (subscript_expression "nop7[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop10[8] = '\0';" (assignment_expression "nop10[8] = '\0'" (subscript_expression "nop10[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop10[9] = '\0';" (assignment_expression "nop10[9] = '\0'" (subscript_expression "nop10[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop11[8] = '\0';" (assignment_expression "nop11[8] = '\0'" (subscript_expression "nop11[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop11[9] = '\0';" (assignment_expression "nop11[9] = '\0'" (subscript_expression "nop11[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop14[0xc] = '\0';" (assignment_expression "nop14[0xc] = '\0'" (subscript_expression "nop14[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop14[0xd] = '\0';" (assignment_expression "nop14[0xd] = '\0'" (subscript_expression "nop14[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop15[0xc] = '\0';" (assignment_expression "nop15[0xc] = '\0'" (subscript_expression "nop15[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop15[0xd] = '\0';" (assignment_expression "nop15[0xd] = '\0'" (subscript_expression "nop15[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop1[0] = -0x70;" (assignment_expression "nop1[0] = -0x70" (subscript_expression "nop1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop3[2] = '\0';" (assignment_expression "nop3[2] = '\0'" (subscript_expression "nop3[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "builtin_strncpy(nop4,"\x0f\x1f@",4);" (call_expression "builtin_strncpy(nop4,"\x0f\x1f@",4)" identifier (argument_list "(nop4,"\x0f\x1f@",4)" ( identifier , (string_literal ""\x0f\x1f@"" " escape_sequence escape_sequence string_content ") , number_literal ))) ;) (expression_statement "builtin_strncpy(nop5,"\x0f\x1fD",4);" (call_expression "builtin_strncpy(nop5,"\x0f\x1fD",4)" identifier (argument_list "(nop5,"\x0f\x1fD",4)" ( identifier , (string_literal ""\x0f\x1fD"" " escape_sequence escape_sequence ") , number_literal ))) ;) (expression_statement "nop5[4] = '\0';" (assignment_expression "nop5[4] = '\0'" (subscript_expression "nop5[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop7[0] = '\x0f';" (assignment_expression "nop7[0] = '\x0f'" (subscript_expression "nop7[0]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "nop7[1] = '\x1f';" (assignment_expression "nop7[1] = '\x1f'" (subscript_expression "nop7[1]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "nop7[2] = -0x80;" (assignment_expression "nop7[2] = -0x80" (subscript_expression "nop7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop7[3] = '\0';" (assignment_expression "nop7[3] = '\0'" (subscript_expression "nop7[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop7[6] = '\0';" (assignment_expression "nop7[6] = '\0'" (subscript_expression "nop7[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop8[0] = '\x0f';" (assignment_expression "nop8[0] = '\x0f'" (subscript_expression "nop8[0]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "nop8[1] = '\x1f';" (assignment_expression "nop8[1] = '\x1f'" (subscript_expression "nop8[1]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "nop8[2] = -0x7c;" (assignment_expression "nop8[2] = -0x7c" (subscript_expression "nop8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop8[3] = '\0';" (assignment_expression "nop8[3] = '\0'" (subscript_expression "nop8[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop8[4] = '\0';" (assignment_expression "nop8[4] = '\0'" (subscript_expression "nop8[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop8[5] = '\0';" (assignment_expression "nop8[5] = '\0'" (subscript_expression "nop8[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop8[6] = '\0';" (assignment_expression "nop8[6] = '\0'" (subscript_expression "nop8[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop8[7] = '\0';" (assignment_expression "nop8[7] = '\0'" (subscript_expression "nop8[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop9[8] = '\0';" (assignment_expression "nop9[8] = '\0'" (subscript_expression "nop9[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop11[10] = '\0';" (assignment_expression "nop11[10] = '\0'" (subscript_expression "nop11[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop12[8] = '\0';" (assignment_expression "nop12[8] = '\0'" (subscript_expression "nop12[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop12[9] = '\0';" (assignment_expression "nop12[9] = '\0'" (subscript_expression "nop12[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop12[10] = '\0';" (assignment_expression "nop12[10] = '\0'" (subscript_expression "nop12[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop12[0xb] = '\0';" (assignment_expression "nop12[0xb] = '\0'" (subscript_expression "nop12[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop13[8] = '\0';" (assignment_expression "nop13[8] = '\0'" (subscript_expression "nop13[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop13[9] = '\0';" (assignment_expression "nop13[9] = '\0'" (subscript_expression "nop13[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop13[10] = '\0';" (assignment_expression "nop13[10] = '\0'" (subscript_expression "nop13[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop13[0xb] = '\0';" (assignment_expression "nop13[0xb] = '\0'" (subscript_expression "nop13[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop13[0xc] = '\0';" (assignment_expression "nop13[0xc] = '\0'" (subscript_expression "nop13[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop14[8] = -0x7c;" (assignment_expression "nop14[8] = -0x7c" (subscript_expression "nop14[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop14[9] = '\0';" (assignment_expression "nop14[9] = '\0'" (subscript_expression "nop14[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop14[10] = '\0';" (assignment_expression "nop14[10] = '\0'" (subscript_expression "nop14[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop14[0xb] = '\0';" (assignment_expression "nop14[0xb] = '\0'" (subscript_expression "nop14[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop15[8] = '\x1f';" (assignment_expression "nop15[8] = '\x1f'" (subscript_expression "nop15[8]" identifier [ number_literal ]) = (char_literal "'\x1f'" ' escape_sequence ')) ;) (expression_statement "nop15[9] = -0x7c;" (assignment_expression "nop15[9] = -0x7c" (subscript_expression "nop15[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nop15[10] = '\0';" (assignment_expression "nop15[10] = '\0'" (subscript_expression "nop15[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop15[0xb] = '\0';" (assignment_expression "nop15[0xb] = '\0'" (subscript_expression "nop15[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nop15[0xe] = '\0';" (assignment_expression "nop15[0xe] = '\0'" (subscript_expression "nop15[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "nops[0] = (char *)0x0;" (assignment_expression "nops[0] = (char *)0x0" (subscript_expression "nops[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "nops[1] = nop1;" (assignment_expression "nops[1] = nop1" (subscript_expression "nops[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[2] = nop2;" (assignment_expression "nops[2] = nop2" (subscript_expression "nops[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[3] = nop3;" (assignment_expression "nops[3] = nop3" (subscript_expression "nops[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[4] = nop4;" (assignment_expression "nops[4] = nop4" (subscript_expression "nops[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[5] = nop5;" (assignment_expression "nops[5] = nop5" (subscript_expression "nops[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[6] = nop6;" (assignment_expression "nops[6] = nop6" (subscript_expression "nops[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[7] = nop7;" (assignment_expression "nops[7] = nop7" (subscript_expression "nops[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[8] = nop8;" (assignment_expression "nops[8] = nop8" (subscript_expression "nops[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[9] = nop9;" (assignment_expression "nops[9] = nop9" (subscript_expression "nops[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[10] = nop10;" (assignment_expression "nops[10] = nop10" (subscript_expression "nops[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[0xb] = nop11;" (assignment_expression "nops[0xb] = nop11" (subscript_expression "nops[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[0xc] = nop12;" (assignment_expression "nops[0xc] = nop12" (subscript_expression "nops[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[0xd] = nop13;" (assignment_expression "nops[0xd] = nop13" (subscript_expression "nops[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[0xe] = nop14;" (assignment_expression "nops[0xe] = nop14" (subscript_expression "nops[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "nops[0xf] = nop15;" (assignment_expression "nops[0xf] = nop15" (subscript_expression "nops[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar1 = nops[length];" (assignment_expression "pcVar1 = nops[length]" identifier = (subscript_expression "nops[length]" identifier [ identifier ])) ;) (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pointer)&__return_storage_ptr__->field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(__return_storage_ptr__,pcVar1,pcVar1 + length);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(__return_storage_ptr__,pcVar1,pcVar1 + length);" (binary_expression "_M_construct<char_const*>(__return_storage_ptr__,pcVar1,pcVar1 + length)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(__return_storage_ptr__,pcVar1,pcVar1 + length)" ( (comma_expression "__return_storage_ptr__,pcVar1,pcVar1 + length" identifier , (comma_expression "pcVar1,pcVar1 + length" identifier , (binary_expression "pcVar1 + length" identifier + identifier))) ))) ;)) (return_statement "return __return_storage_ptr__;" return identifier ;) })) (expression_statement "nop14._1_4_ = (int)length + -5;" (assignment_expression "nop14._1_4_ = (int)length + -5" (field_expression "nop14._1_4_" identifier . field_identifier) = (binary_expression "(int)length + -5" (cast_expression "(int)length" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "nop14[0] = -0x17;" (assignment_expression "nop14[0] = -0x17" (subscript_expression "nop14[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "nops[0] = (char *)(nops + 2);" (assignment_expression "nops[0] = (char *)(nops + 2)" (subscript_expression "nops[0]" identifier [ number_literal ]) = (cast_expression "(char *)(nops + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nops + 2)" ( (binary_expression "nops + 2" identifier + number_literal) )))) ;) (labeled_statement "std::string::_M_construct((string *)nops,length - 5,-0x70);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_construct((string *)nops,length - 5,-0x70);" statement_identifier : (ERROR ":" :) (expression_statement "_M_construct((string *)nops,length - 5,-0x70);" (call_expression "_M_construct((string *)nops,length - 5,-0x70)" identifier (argument_list "((string *)nops,length - 5,-0x70)" ( (cast_expression "(string *)nops" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "length - 5" identifier - number_literal) , number_literal ))) ;))) (expression_statement "nop15._0_8_ = &local_a8;" (assignment_expression "nop15._0_8_ = &local_a8" (field_expression "nop15._0_8_" identifier . field_identifier) = (pointer_expression "&local_a8" & identifier)) ;) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)nop15,nop14,\n             nop14 + 5);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)nop15,nop14,\n             nop14 + 5);" (binary_expression "_M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)nop15,nop14,\n             nop14 + 5)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)nop15,nop14,\n             nop14 + 5)" ( (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)nop15,nop14,\n             nop14 + 5)" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (comma_expression "allocator<char>_> *)nop15,nop14,\n             nop14 + 5" (binary_expression "allocator<char>_> *)nop15" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)nop15" * (ERROR ")" )) identifier)) , (comma_expression "nop14,\n             nop14 + 5" identifier , (binary_expression "nop14 + 5" identifier + number_literal))) )) ))) ;)) (expression_statement "uVar3 = CONCAT17(uStack_a9,CONCAT16(nop15[0xe],CONCAT24(nop15._12_2_,nop15._8_4_)));" (assignment_expression "uVar3 = CONCAT17(uStack_a9,CONCAT16(nop15[0xe],CONCAT24(nop15._12_2_,nop15._8_4_)))" identifier = (call_expression "CONCAT17(uStack_a9,CONCAT16(nop15[0xe],CONCAT24(nop15._12_2_,nop15._8_4_)))" identifier (argument_list "(uStack_a9,CONCAT16(nop15[0xe],CONCAT24(nop15._12_2_,nop15._8_4_)))" ( identifier , (call_expression "CONCAT16(nop15[0xe],CONCAT24(nop15._12_2_,nop15._8_4_))" identifier (argument_list "(nop15[0xe],CONCAT24(nop15._12_2_,nop15._8_4_))" ( (subscript_expression "nop15[0xe]" identifier [ number_literal ]) , (call_expression "CONCAT24(nop15._12_2_,nop15._8_4_)" identifier (argument_list "(nop15._12_2_,nop15._8_4_)" ( (field_expression "nop15._12_2_" identifier . field_identifier) , (field_expression "nop15._8_4_" identifier . field_identifier) ))) ))) )))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)nop15._0_8_ == &local_a8) {\n    local_a8._M_allocated_capacity = (size_type)(char *)0xf;\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)nop15._0_8_ == &local_a8)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)nop15._0_8_ == &local_a8)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)nop15._0_8_ == &local_a8" (binary_expression "allocator<char>_>_9\n       *)nop15._0_8_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)nop15._0_8_" identifier * (ERROR ")" )) (field_expression "nop15._0_8_" identifier . field_identifier))) == (pointer_expression "&local_a8" & identifier)) )) )) (compound_statement "{\n    local_a8._M_allocated_capacity = (size_type)(char *)0xf;\n  }" { (expression_statement "local_a8._M_allocated_capacity = (size_type)(char *)0xf;" (assignment_expression "local_a8._M_allocated_capacity = (size_type)(char *)0xf" (field_expression "local_a8._M_allocated_capacity" identifier . field_identifier) = (cast_expression "(size_type)(char *)0xf" ( (type_descriptor "size_type" type_identifier) ) (cast_expression "(char *)0xf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) (if_statement "if (local_a8._M_allocated_capacity < nops[1] + uVar3) {\n    if ((char **)nops[0] == nops + 2) {\n      nops[2] = (char *)0xf;\n    }\n    if (nops[1] + uVar3 <= nops[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)std::string::_M_replace((string *)nops,0,0,(char *)nop15._0_8_,uVar3);\n      goto LAB_00164a18;\n    }\n  }" if (parenthesized_expression "(local_a8._M_allocated_capacity < nops[1] + uVar3)" ( (binary_expression "local_a8._M_allocated_capacity < nops[1] + uVar3" (field_expression "local_a8._M_allocated_capacity" identifier . field_identifier) < (binary_expression "nops[1] + uVar3" (subscript_expression "nops[1]" identifier [ number_literal ]) + identifier)) )) (compound_statement "{\n    if ((char **)nops[0] == nops + 2) {\n      nops[2] = (char *)0xf;\n    }\n    if (nops[1] + uVar3 <= nops[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)std::string::_M_replace((string *)nops,0,0,(char *)nop15._0_8_,uVar3);\n      goto LAB_00164a18;\n    }\n  }" { (if_statement "if ((char **)nops[0] == nops + 2) {\n      nops[2] = (char *)0xf;\n    }" if (parenthesized_expression "((char **)nops[0] == nops + 2)" ( (binary_expression "(char **)nops[0] == nops + 2" (cast_expression "(char **)nops[0]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "nops[0]" identifier [ number_literal ])) == (binary_expression "nops + 2" identifier + number_literal)) )) (compound_statement "{\n      nops[2] = (char *)0xf;\n    }" { (expression_statement "nops[2] = (char *)0xf;" (assignment_expression "nops[2] = (char *)0xf" (subscript_expression "nops[2]" identifier [ number_literal ]) = (cast_expression "(char *)0xf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (nops[1] + uVar3 <= nops[2]) {\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)std::string::_M_replace((string *)nops,0,0,(char *)nop15._0_8_,uVar3);\n      goto LAB_00164a18;\n    }" if (parenthesized_expression "(nops[1] + uVar3 <= nops[2])" ( (binary_expression "nops[1] + uVar3 <= nops[2]" (binary_expression "nops[1] + uVar3" (subscript_expression "nops[1]" identifier [ number_literal ]) + identifier) <= (subscript_expression "nops[2]" identifier [ number_literal ])) )) (compound_statement "{\n                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */\n      plVar4 = (long *)std::string::_M_replace((string *)nops,0,0,(char *)nop15._0_8_,uVar3);\n      goto LAB_00164a18;\n    }" { comment (ERROR "plVar4 = (long *)std::" (assignment_expression "plVar4 = (long *)std" identifier = (cast_expression "(long *)std" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_replace((string *)nops,0,0,(char *)nop15._0_8_,uVar3);" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace((string *)nops,0,0,(char *)nop15._0_8_,uVar3);" (call_expression "_M_replace((string *)nops,0,0,(char *)nop15._0_8_,uVar3)" identifier (argument_list "((string *)nops,0,0,(char *)nop15._0_8_,uVar3)" ( (cast_expression "(string *)nops" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal , (cast_expression "(char *)nop15._0_8_" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "nop15._0_8_" identifier . field_identifier)) , identifier ))) ;)) (goto_statement "goto LAB_00164a18;" goto statement_identifier ;) })) })) comment (ERROR "plVar4 = (long *)std::" (assignment_expression "plVar4 = (long *)std" identifier = (cast_expression "(long *)std" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_append((string *)nop15,nops[0],(ulong)nops[1]);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append((string *)nop15,nops[0],(ulong)nops[1]);" (call_expression "_M_append((string *)nop15,nops[0],(ulong)nops[1])" identifier (argument_list "((string *)nop15,nops[0],(ulong)nops[1])" ( (cast_expression "(string *)nop15" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (subscript_expression "nops[0]" identifier [ number_literal ]) , (cast_expression "(ulong)nops[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "nops[1]" identifier [ number_literal ])) ))) ;)) (labeled_statement "LAB_00164a18:\n  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;" statement_identifier : (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pointer)&__return_storage_ptr__->field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) ;)) (if_statement "if ((long *)*plVar4 == plVar4 + 2) {\n    lVar2 = plVar4[3];\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];\n    *(long *)((long)&__return_storage_ptr__->field_2 + 8) = lVar2;\n  }\n  else {\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)*plVar4;\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];\n  }" if (parenthesized_expression "((long *)*plVar4 == plVar4 + 2)" ( (binary_expression "(long *)*plVar4 == plVar4 + 2" (cast_expression "(long *)*plVar4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar4" * identifier)) == (binary_expression "plVar4 + 2" identifier + number_literal)) )) (compound_statement "{\n    lVar2 = plVar4[3];\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];\n    *(long *)((long)&__return_storage_ptr__->field_2 + 8) = lVar2;\n  }" { (expression_statement "lVar2 = plVar4[3];" (assignment_expression "lVar2 = plVar4[3]" identifier = (subscript_expression "plVar4[3]" identifier [ number_literal ])) ;) (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2]" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "plVar4[2]" identifier [ number_literal ])) ;) (expression_statement "*(long *)((long)&__return_storage_ptr__->field_2 + 8) = lVar2;" (assignment_expression "*(long *)((long)&__return_storage_ptr__->field_2 + 8) = lVar2" (pointer_expression "*(long *)((long)&__return_storage_ptr__->field_2 + 8)" * (cast_expression "(long *)((long)&__return_storage_ptr__->field_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&__return_storage_ptr__->field_2 + 8)" ( (binary_expression "(long)&__return_storage_ptr__->field_2 + 8" (cast_expression "(long)&__return_storage_ptr__->field_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)*plVar4;\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];\n  }" else (compound_statement "{\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)*plVar4;\n    (__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];\n  }" { (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)*plVar4;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)*plVar4" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pointer)*plVar4" (parenthesized_expression "(pointer)" ( identifier )) * identifier)) ;) (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2];" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity = plVar4[2]" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "plVar4[2]" identifier [ number_literal ])) ;) }))) (expression_statement "__return_storage_ptr__->_M_string_length = plVar4[1];" (assignment_expression "__return_storage_ptr__->_M_string_length = plVar4[1]" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = (subscript_expression "plVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*plVar4 = (long)(plVar4 + 2);" (assignment_expression "*plVar4 = (long)(plVar4 + 2)" (pointer_expression "*plVar4" * identifier) = (cast_expression "(long)(plVar4 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar4 + 2)" ( (binary_expression "plVar4 + 2" identifier + number_literal) )))) ;) (expression_statement "plVar4[1] = 0;" (assignment_expression "plVar4[1] = 0" (subscript_expression "plVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(plVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar4 + 2)" * (cast_expression "(undefined1 *)(plVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar4 + 2)" ( (binary_expression "plVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)nop15._0_8_ != &local_a8) {\n    operator_delete((void *)nop15._0_8_);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)nop15._0_8_ != &local_a8)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)nop15._0_8_ != &local_a8)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)nop15._0_8_ != &local_a8" (binary_expression "allocator<char>_>_9\n       *)nop15._0_8_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)nop15._0_8_" identifier * (ERROR ")" )) (field_expression "nop15._0_8_" identifier . field_identifier))) != (pointer_expression "&local_a8" & identifier)) )) )) (compound_statement "{\n    operator_delete((void *)nop15._0_8_);\n  }" { (expression_statement "operator_delete((void *)nop15._0_8_);" (call_expression "operator_delete((void *)nop15._0_8_)" identifier (argument_list "((void *)nop15._0_8_)" ( (cast_expression "(void *)nop15._0_8_" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "nop15._0_8_" identifier . field_identifier)) ))) ;) })) (if_statement "if ((char **)nops[0] != nops + 2) {\n    operator_delete(nops[0]);\n  }" if (parenthesized_expression "((char **)nops[0] != nops + 2)" ( (binary_expression "(char **)nops[0] != nops + 2" (cast_expression "(char **)nops[0]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "nops[0]" identifier [ number_literal ])) != (binary_expression "nops + 2" identifier + number_literal)) )) (compound_statement "{\n    operator_delete(nops[0]);\n  }" { (expression_statement "operator_delete(nops[0]);" (call_expression "operator_delete(nops[0])" identifier (argument_list "(nops[0])" ( (subscript_expression "nops[0]" identifier [ number_literal ]) ))) ;) })) (return_statement "return __return_storage_ptr__;" return identifier ;) }))
(translation_unit "long * FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)\n\n{\n  ulong uVar1;\n  undefined8 ****ppppuVar2;\n  long lVar3;\n  long *plVar4;\n  undefined1 local_121;\n  undefined2 local_120;\n  undefined2 local_11e;\n  undefined1 local_11c;\n  undefined4 local_11b;\n  undefined4 local_117;\n  undefined1 local_113;\n  undefined4 local_112;\n  undefined2 local_10e;\n  undefined4 local_10c;\n  undefined2 local_108;\n  undefined1 local_106;\n  undefined8 local_105;\n  undefined8 local_fd;\n  undefined1 local_f5;\n  undefined8 local_f4;\n  undefined2 local_ec;\n  undefined8 local_ea;\n  undefined2 local_e2;\n  undefined1 local_e0;\n  undefined8 local_df;\n  undefined4 local_d7;\n  undefined8 local_d3;\n  undefined4 local_cb;\n  undefined1 local_c7;\n  undefined8 local_c6;\n  undefined4 local_be;\n  undefined2 local_ba;\n  ulong *local_b8;\n  undefined4 local_b0;\n  undefined2 uStack_ac;\n  undefined1 uStack_aa;\n  undefined1 uStack_a9;\n  ulong local_a8 [2];\n  undefined8 ****local_98 [15];\n  ulong **local_20;\n  \n  if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }\n  local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);\n  local_98[0] = local_98 + 2;\n  FUN_002a9350(local_98,param_3 - 5,0xffffff90);\n  local_b8 = local_a8;\n                    \n  FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);\n  uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];\n  if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }\n  if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }\n                    \n  plVar4 = (long *)FUN_002aac00(&local_b8);\nLAB_00164a18:\n  *param_1 = (long)(param_1 + 2);\n  if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }\n  param_1[1] = plVar4[1];\n  *plVar4 = (long)(plVar4 + 2);\n  plVar4[1] = 0;\n  *(undefined1 *)(plVar4 + 2) = 0;\n  if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }\n  if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }\n  return param_1;\n}\n\n" (function_definition "long * FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)\n\n{\n  ulong uVar1;\n  undefined8 ****ppppuVar2;\n  long lVar3;\n  long *plVar4;\n  undefined1 local_121;\n  undefined2 local_120;\n  undefined2 local_11e;\n  undefined1 local_11c;\n  undefined4 local_11b;\n  undefined4 local_117;\n  undefined1 local_113;\n  undefined4 local_112;\n  undefined2 local_10e;\n  undefined4 local_10c;\n  undefined2 local_108;\n  undefined1 local_106;\n  undefined8 local_105;\n  undefined8 local_fd;\n  undefined1 local_f5;\n  undefined8 local_f4;\n  undefined2 local_ec;\n  undefined8 local_ea;\n  undefined2 local_e2;\n  undefined1 local_e0;\n  undefined8 local_df;\n  undefined4 local_d7;\n  undefined8 local_d3;\n  undefined4 local_cb;\n  undefined1 local_c7;\n  undefined8 local_c6;\n  undefined4 local_be;\n  undefined2 local_ba;\n  ulong *local_b8;\n  undefined4 local_b0;\n  undefined2 uStack_ac;\n  undefined1 uStack_aa;\n  undefined1 uStack_a9;\n  ulong local_a8 [2];\n  undefined8 ****local_98 [15];\n  ulong **local_20;\n  \n  if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }\n  local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);\n  local_98[0] = local_98 + 2;\n  FUN_002a9350(local_98,param_3 - 5,0xffffff90);\n  local_b8 = local_a8;\n                    \n  FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);\n  uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];\n  if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }\n  if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }\n                    \n  plVar4 = (long *)FUN_002aac00(&local_b8);\nLAB_00164a18:\n  *param_1 = (long)(param_1 + 2);\n  if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }\n  param_1[1] = plVar4[1];\n  *plVar4 = (long)(plVar4 + 2);\n  plVar4[1] = 0;\n  *(undefined1 *)(plVar4 + 2) = 0;\n  if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }\n  if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }\n  return param_1;\n}" (sized_type_specifier "long" long) (pointer_declarator "* FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)" * (function_declarator "FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)" identifier (parameter_list "(long *param_1,undefined8 param_2,ulong param_3)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "ulong param_3" type_identifier identifier) )))) (compound_statement "{\n  ulong uVar1;\n  undefined8 ****ppppuVar2;\n  long lVar3;\n  long *plVar4;\n  undefined1 local_121;\n  undefined2 local_120;\n  undefined2 local_11e;\n  undefined1 local_11c;\n  undefined4 local_11b;\n  undefined4 local_117;\n  undefined1 local_113;\n  undefined4 local_112;\n  undefined2 local_10e;\n  undefined4 local_10c;\n  undefined2 local_108;\n  undefined1 local_106;\n  undefined8 local_105;\n  undefined8 local_fd;\n  undefined1 local_f5;\n  undefined8 local_f4;\n  undefined2 local_ec;\n  undefined8 local_ea;\n  undefined2 local_e2;\n  undefined1 local_e0;\n  undefined8 local_df;\n  undefined4 local_d7;\n  undefined8 local_d3;\n  undefined4 local_cb;\n  undefined1 local_c7;\n  undefined8 local_c6;\n  undefined4 local_be;\n  undefined2 local_ba;\n  ulong *local_b8;\n  undefined4 local_b0;\n  undefined2 uStack_ac;\n  undefined1 uStack_aa;\n  undefined1 uStack_a9;\n  ulong local_a8 [2];\n  undefined8 ****local_98 [15];\n  ulong **local_20;\n  \n  if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }\n  local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);\n  local_98[0] = local_98 + 2;\n  FUN_002a9350(local_98,param_3 - 5,0xffffff90);\n  local_b8 = local_a8;\n                    \n  FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);\n  uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];\n  if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }\n  if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }\n                    \n  plVar4 = (long *)FUN_002aac00(&local_b8);\nLAB_00164a18:\n  *param_1 = (long)(param_1 + 2);\n  if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }\n  param_1[1] = plVar4[1];\n  *plVar4 = (long)(plVar4 + 2);\n  plVar4[1] = 0;\n  *(undefined1 *)(plVar4 + 2) = 0;\n  if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }\n  if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }\n  return param_1;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "undefined8 ****ppppuVar2;" type_identifier (pointer_declarator "****ppppuVar2" * (pointer_declarator "***ppppuVar2" * (pointer_declarator "**ppppuVar2" * (pointer_declarator "*ppppuVar2" * identifier)))) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "undefined1 local_121;" type_identifier identifier ;) (declaration "undefined2 local_120;" type_identifier identifier ;) (declaration "undefined2 local_11e;" type_identifier identifier ;) (declaration "undefined1 local_11c;" type_identifier identifier ;) (declaration "undefined4 local_11b;" type_identifier identifier ;) (declaration "undefined4 local_117;" type_identifier identifier ;) (declaration "undefined1 local_113;" type_identifier identifier ;) (declaration "undefined4 local_112;" type_identifier identifier ;) (declaration "undefined2 local_10e;" type_identifier identifier ;) (declaration "undefined4 local_10c;" type_identifier identifier ;) (declaration "undefined2 local_108;" type_identifier identifier ;) (declaration "undefined1 local_106;" type_identifier identifier ;) (declaration "undefined8 local_105;" type_identifier identifier ;) (declaration "undefined8 local_fd;" type_identifier identifier ;) (declaration "undefined1 local_f5;" type_identifier identifier ;) (declaration "undefined8 local_f4;" type_identifier identifier ;) (declaration "undefined2 local_ec;" type_identifier identifier ;) (declaration "undefined8 local_ea;" type_identifier identifier ;) (declaration "undefined2 local_e2;" type_identifier identifier ;) (declaration "undefined1 local_e0;" type_identifier identifier ;) (declaration "undefined8 local_df;" type_identifier identifier ;) (declaration "undefined4 local_d7;" type_identifier identifier ;) (declaration "undefined8 local_d3;" type_identifier identifier ;) (declaration "undefined4 local_cb;" type_identifier identifier ;) (declaration "undefined1 local_c7;" type_identifier identifier ;) (declaration "undefined8 local_c6;" type_identifier identifier ;) (declaration "undefined4 local_be;" type_identifier identifier ;) (declaration "undefined2 local_ba;" type_identifier identifier ;) (declaration "ulong *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "undefined4 local_b0;" type_identifier identifier ;) (declaration "undefined2 uStack_ac;" type_identifier identifier ;) (declaration "undefined1 uStack_aa;" type_identifier identifier ;) (declaration "undefined1 uStack_a9;" type_identifier identifier ;) (declaration "ulong local_a8 [2];" type_identifier (array_declarator "local_a8 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 ****local_98 [15];" type_identifier (pointer_declarator "****local_98 [15]" * (pointer_declarator "***local_98 [15]" * (pointer_declarator "**local_98 [15]" * (pointer_declarator "*local_98 [15]" * (array_declarator "local_98 [15]" identifier [ number_literal ]))))) ;) (declaration "ulong **local_20;" type_identifier (pointer_declarator "**local_20" * (pointer_declarator "*local_20" * identifier)) ;) (if_statement "if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }" if (parenthesized_expression "(param_3 < 0x10)" ( (binary_expression "param_3 < 0x10" identifier < number_literal) )) (compound_statement "{\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }" { (expression_statement "local_120 = 0x9066;" (assignment_expression "local_120 = 0x9066" identifier = number_literal) ;) (expression_statement "local_fd = 0x841f0f66;" (assignment_expression "local_fd = 0x841f0f66" identifier = number_literal) ;) (expression_statement "local_f4 = 0x841f0f2e66;" (assignment_expression "local_f4 = 0x841f0f2e66" identifier = number_literal) ;) (expression_statement "local_ea = 0x841f0f2e6666;" (assignment_expression "local_ea = 0x841f0f2e6666" identifier = number_literal) ;) (expression_statement "local_df = 0x841f0f2e666666;" (assignment_expression "local_df = 0x841f0f2e666666" identifier = number_literal) ;) (expression_statement "local_d3 = 0x841f0f2e66666666;" (assignment_expression "local_d3 = 0x841f0f2e66666666" identifier = number_literal) ;) (expression_statement "local_c6 = 0x1f0f2e6666666666;" (assignment_expression "local_c6 = 0x1f0f2e6666666666" identifier = number_literal) ;) (expression_statement "local_b8 = (ulong *)0xf2e666666666666;" (assignment_expression "local_b8 = (ulong *)0xf2e666666666666" identifier = (cast_expression "(ulong *)0xf2e666666666666" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_11e = 0x1f0f;" (assignment_expression "local_11e = 0x1f0f" identifier = number_literal) ;) (expression_statement "local_10e = 0;" (assignment_expression "local_10e = 0" identifier = number_literal) ;) (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" identifier = number_literal) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_e2 = 0;" (assignment_expression "local_e2 = 0" identifier = number_literal) ;) (expression_statement "local_ba = 0;" (assignment_expression "local_ba = 0" identifier = number_literal) ;) (expression_statement "uStack_ac = 0;" (assignment_expression "uStack_ac = 0" identifier = number_literal) ;) (expression_statement "local_121 = 0x90;" (assignment_expression "local_121 = 0x90" identifier = number_literal) ;) (expression_statement "local_11c = 0;" (assignment_expression "local_11c = 0" identifier = number_literal) ;) (expression_statement "local_11b = 0x401f0f;" (assignment_expression "local_11b = 0x401f0f" identifier = number_literal) ;) (expression_statement "local_117 = 0x441f0f;" (assignment_expression "local_117 = 0x441f0f" identifier = number_literal) ;) (expression_statement "local_113 = 0;" (assignment_expression "local_113 = 0" identifier = number_literal) ;) (expression_statement "local_112 = 0x441f0f66;" (assignment_expression "local_112 = 0x441f0f66" identifier = number_literal) ;) (expression_statement "local_10c = 0x801f0f;" (assignment_expression "local_10c = 0x801f0f" identifier = number_literal) ;) (expression_statement "local_106 = 0;" (assignment_expression "local_106 = 0" identifier = number_literal) ;) (expression_statement "local_105 = 0x841f0f;" (assignment_expression "local_105 = 0x841f0f" identifier = number_literal) ;) (expression_statement "local_f5 = 0;" (assignment_expression "local_f5 = 0" identifier = number_literal) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "local_d7 = 0;" (assignment_expression "local_d7 = 0" identifier = number_literal) ;) (expression_statement "local_cb = 0;" (assignment_expression "local_cb = 0" identifier = number_literal) ;) (expression_statement "local_c7 = 0;" (assignment_expression "local_c7 = 0" identifier = number_literal) ;) (expression_statement "local_be = 0x84;" (assignment_expression "local_be = 0x84" identifier = number_literal) ;) (expression_statement "local_b0 = 0x841f;" (assignment_expression "local_b0 = 0x841f" identifier = number_literal) ;) (expression_statement "uStack_aa = 0;" (assignment_expression "uStack_aa = 0" identifier = number_literal) ;) (expression_statement "local_98[0] = (undefined8 ****)0x0;" (assignment_expression "local_98[0] = (undefined8 ****)0x0" (subscript_expression "local_98[0]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)0x0" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_98[1] = (undefined8 ****)&local_121;" (assignment_expression "local_98[1] = (undefined8 ****)&local_121" (subscript_expression "local_98[1]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_121" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_121" & identifier))) ;) (expression_statement "local_98[2] = (undefined8 ****)&local_120;" (assignment_expression "local_98[2] = (undefined8 ****)&local_120" (subscript_expression "local_98[2]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_120" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_120" & identifier))) ;) (expression_statement "local_98[3] = (undefined8 ****)&local_11e;" (assignment_expression "local_98[3] = (undefined8 ****)&local_11e" (subscript_expression "local_98[3]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_11e" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_11e" & identifier))) ;) (expression_statement "local_98[4] = (undefined8 ****)&local_11b;" (assignment_expression "local_98[4] = (undefined8 ****)&local_11b" (subscript_expression "local_98[4]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_11b" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_11b" & identifier))) ;) (expression_statement "local_98[5] = (undefined8 ****)&local_117;" (assignment_expression "local_98[5] = (undefined8 ****)&local_117" (subscript_expression "local_98[5]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_117" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_117" & identifier))) ;) (expression_statement "local_98[6] = (undefined8 ****)&local_112;" (assignment_expression "local_98[6] = (undefined8 ****)&local_112" (subscript_expression "local_98[6]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_112" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_112" & identifier))) ;) (expression_statement "local_98[7] = (undefined8 ****)&local_10c;" (assignment_expression "local_98[7] = (undefined8 ****)&local_10c" (subscript_expression "local_98[7]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_10c" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_10c" & identifier))) ;) (expression_statement "local_98[8] = (undefined8 ****)&local_105;" (assignment_expression "local_98[8] = (undefined8 ****)&local_105" (subscript_expression "local_98[8]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_105" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_105" & identifier))) ;) (expression_statement "local_98[9] = (undefined8 ****)&local_fd;" (assignment_expression "local_98[9] = (undefined8 ****)&local_fd" (subscript_expression "local_98[9]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_fd" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_fd" & identifier))) ;) (expression_statement "local_98[10] = (undefined8 ****)&local_f4;" (assignment_expression "local_98[10] = (undefined8 ****)&local_f4" (subscript_expression "local_98[10]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_f4" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_f4" & identifier))) ;) (expression_statement "local_98[0xb] = (undefined8 ****)&local_ea;" (assignment_expression "local_98[0xb] = (undefined8 ****)&local_ea" (subscript_expression "local_98[0xb]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_ea" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_ea" & identifier))) ;) (expression_statement "local_98[0xc] = (undefined8 ****)&local_df;" (assignment_expression "local_98[0xc] = (undefined8 ****)&local_df" (subscript_expression "local_98[0xc]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_df" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_df" & identifier))) ;) (expression_statement "local_98[0xd] = (undefined8 ****)&local_d3;" (assignment_expression "local_98[0xd] = (undefined8 ****)&local_d3" (subscript_expression "local_98[0xd]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_d3" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_d3" & identifier))) ;) (expression_statement "local_98[0xe] = (undefined8 ****)&local_c6;" (assignment_expression "local_98[0xe] = (undefined8 ****)&local_c6" (subscript_expression "local_98[0xe]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)&local_c6" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_c6" & identifier))) ;) (expression_statement "local_20 = &local_b8;" (assignment_expression "local_20 = &local_b8" identifier = (pointer_expression "&local_b8" & identifier)) ;) (expression_statement "ppppuVar2 = local_98[param_3];" (assignment_expression "ppppuVar2 = local_98[param_3]" identifier = (subscript_expression "local_98[param_3]" identifier [ identifier ])) ;) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);" (call_expression "FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2)" identifier (argument_list "(param_1,ppppuVar2,param_3 + (long)ppppuVar2)" ( identifier , identifier , (binary_expression "param_3 + (long)ppppuVar2" identifier + (cast_expression "(long)ppppuVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);" (assignment_expression "local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9)" (field_expression "local_c6._0_5_" identifier . field_identifier) = (call_expression "CONCAT41((int)param_3 + -5,0xe9)" identifier (argument_list "((int)param_3 + -5,0xe9)" ( (binary_expression "(int)param_3 + -5" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "local_98[0] = local_98 + 2;" (assignment_expression "local_98[0] = local_98 + 2" (subscript_expression "local_98[0]" identifier [ number_literal ]) = (binary_expression "local_98 + 2" identifier + number_literal)) ;) (expression_statement "FUN_002a9350(local_98,param_3 - 5,0xffffff90);" (call_expression "FUN_002a9350(local_98,param_3 - 5,0xffffff90)" identifier (argument_list "(local_98,param_3 - 5,0xffffff90)" ( identifier , (binary_expression "param_3 - 5" identifier - number_literal) , number_literal ))) ;) (expression_statement "local_b8 = local_a8;" (assignment_expression "local_b8 = local_a8" identifier = identifier) ;) (expression_statement "FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);" (call_expression "FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5)" identifier (argument_list "(&local_b8,&local_c6,(long)&local_c6 + 5)" ( (pointer_expression "&local_b8" & identifier) , (pointer_expression "&local_c6" & identifier) , (binary_expression "(long)&local_c6 + 5" (cast_expression "(long)&local_c6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_c6" & identifier)) + number_literal) ))) ;) (expression_statement "uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];" (assignment_expression "uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1]" identifier = (binary_expression "CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1]" (call_expression "CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0)))" identifier (argument_list "(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0)))" ( identifier , (call_expression "CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))" identifier (argument_list "(uStack_aa,CONCAT24(uStack_ac,local_b0))" ( identifier , (call_expression "CONCAT24(uStack_ac,local_b0)" identifier (argument_list "(uStack_ac,local_b0)" ( identifier , identifier ))) ))) ))) + (cast_expression "(long)local_98[1]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "local_98[1]" identifier [ number_literal ])))) ;) (if_statement "if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }" if (parenthesized_expression "(local_b8 == local_a8)" ( (binary_expression "local_b8 == local_a8" identifier == identifier) )) (compound_statement "{\n    local_a8[0] = 0xf;\n  }" { (expression_statement "local_a8[0] = 0xf;" (assignment_expression "local_a8[0] = 0xf" (subscript_expression "local_a8[0]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }" if (parenthesized_expression "(local_a8[0] < uVar1)" ( (binary_expression "local_a8[0] < uVar1" (subscript_expression "local_a8[0]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }" { (if_statement "if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }" if (parenthesized_expression "((undefined8 *****)local_98[0] == local_98 + 2)" ( (binary_expression "(undefined8 *****)local_98[0] == local_98 + 2" (cast_expression "(undefined8 *****)local_98[0]" ( (type_descriptor "undefined8 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "local_98[0]" identifier [ number_literal ])) == (binary_expression "local_98 + 2" identifier + number_literal)) )) (compound_statement "{\n      local_98[2] = (undefined8 ****)0xf;\n    }" { (expression_statement "local_98[2] = (undefined8 ****)0xf;" (assignment_expression "local_98[2] = (undefined8 ****)0xf" (subscript_expression "local_98[2]" identifier [ number_literal ]) = (cast_expression "(undefined8 ****)0xf" ( (type_descriptor "undefined8 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) })) (if_statement "if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }" if (parenthesized_expression "(uVar1 <= local_98[2])" ( (binary_expression "uVar1 <= local_98[2]" identifier <= (subscript_expression "local_98[2]" identifier [ number_literal ])) )) (compound_statement "{\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }" { (expression_statement "plVar4 = (long *)FUN_002aa2b0(local_98,0,0);" (assignment_expression "plVar4 = (long *)FUN_002aa2b0(local_98,0,0)" identifier = (cast_expression "(long *)FUN_002aa2b0(local_98,0,0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002aa2b0(local_98,0,0)" identifier (argument_list "(local_98,0,0)" ( identifier , number_literal , number_literal ))))) ;) (goto_statement "goto LAB_00164a18;" goto statement_identifier ;) })) })) (expression_statement "plVar4 = (long *)FUN_002aac00(&local_b8);" (assignment_expression "plVar4 = (long *)FUN_002aac00(&local_b8)" identifier = (cast_expression "(long *)FUN_002aac00(&local_b8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002aac00(&local_b8)" identifier (argument_list "(&local_b8)" ( (pointer_expression "&local_b8" & identifier) ))))) ;) (labeled_statement "LAB_00164a18:\n  *param_1 = (long)(param_1 + 2);" statement_identifier : (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;)) (if_statement "if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }" if (parenthesized_expression "((long *)*plVar4 == plVar4 + 2)" ( (binary_expression "(long *)*plVar4 == plVar4 + 2" (cast_expression "(long *)*plVar4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar4" * identifier)) == (binary_expression "plVar4 + 2" identifier + number_literal)) )) (compound_statement "{\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }" { (expression_statement "lVar3 = plVar4[3];" (assignment_expression "lVar3 = plVar4[3]" identifier = (subscript_expression "plVar4[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = plVar4[2];" (assignment_expression "param_1[2] = plVar4[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "plVar4[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = lVar3;" (assignment_expression "param_1[3] = lVar3" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }" else (compound_statement "{\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }" { (expression_statement "*param_1 = *plVar4;" (assignment_expression "*param_1 = *plVar4" (pointer_expression "*param_1" * identifier) = (pointer_expression "*plVar4" * identifier)) ;) (expression_statement "param_1[2] = plVar4[2];" (assignment_expression "param_1[2] = plVar4[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "plVar4[2]" identifier [ number_literal ])) ;) }))) (expression_statement "param_1[1] = plVar4[1];" (assignment_expression "param_1[1] = plVar4[1]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "plVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*plVar4 = (long)(plVar4 + 2);" (assignment_expression "*plVar4 = (long)(plVar4 + 2)" (pointer_expression "*plVar4" * identifier) = (cast_expression "(long)(plVar4 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar4 + 2)" ( (binary_expression "plVar4 + 2" identifier + number_literal) )))) ;) (expression_statement "plVar4[1] = 0;" (assignment_expression "plVar4[1] = 0" (subscript_expression "plVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(plVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar4 + 2)" * (cast_expression "(undefined1 *)(plVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar4 + 2)" ( (binary_expression "plVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }" if (parenthesized_expression "(local_b8 != local_a8)" ( (binary_expression "local_b8 != local_a8" identifier != identifier) )) (compound_statement "{\n    FUN_002a2980();\n  }" { (expression_statement "FUN_002a2980();" (call_expression "FUN_002a2980()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }" if (parenthesized_expression "((undefined8 *****)local_98[0] != local_98 + 2)" ( (binary_expression "(undefined8 *****)local_98[0] != local_98 + 2" (cast_expression "(undefined8 *****)local_98[0]" ( (type_descriptor "undefined8 *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "local_98[0]" identifier [ number_literal ])) != (binary_expression "local_98 + 2" identifier + number_literal)) )) (compound_statement "{\n    FUN_002a2980();\n  }" { (expression_statement "FUN_002a2980();" (call_expression "FUN_002a2980()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( IDENT , IDENT ))) ))) ))) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ])) == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "long * FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)\n\n{\n  ulong uVar1;\n  undefined8 ****ppppuVar2;\n  long lVar3;\n  long *plVar4;\n  undefined1 local_121;\n  undefined2 local_120;\n  undefined2 local_11e;\n  undefined1 local_11c;\n  undefined4 local_11b;\n  undefined4 local_117;\n  undefined1 local_113;\n  undefined4 local_112;\n  undefined2 local_10e;\n  undefined4 local_10c;\n  undefined2 local_108;\n  undefined1 local_106;\n  undefined8 local_105;\n  undefined8 local_fd;\n  undefined1 local_f5;\n  undefined8 local_f4;\n  undefined2 local_ec;\n  undefined8 local_ea;\n  undefined2 local_e2;\n  undefined1 local_e0;\n  undefined8 local_df;\n  undefined4 local_d7;\n  undefined8 local_d3;\n  undefined4 local_cb;\n  undefined1 local_c7;\n  undefined8 local_c6;\n  undefined4 local_be;\n  undefined2 local_ba;\n  ulong *local_b8;\n  undefined4 local_b0;\n  undefined2 uStack_ac;\n  undefined1 uStack_aa;\n  undefined1 uStack_a9;\n  ulong local_a8 [2];\n  undefined8 ****local_98 [15];\n  ulong **local_20;\n  \n  if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }\n  local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);\n  local_98[0] = local_98 + 2;\n  FUN_002a9350(local_98,param_3 - 5,0xffffff90);\n  local_b8 = local_a8;\n                    \n  FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);\n  uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];\n  if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }\n  if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }\n                    \n  plVar4 = (long *)FUN_002aac00(&local_b8);\nLAB_00164a18:\n  *param_1 = (long)(param_1 + 2);\n  if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }\n  param_1[1] = plVar4[1];\n  *plVar4 = (long)(plVar4 + 2);\n  plVar4[1] = 0;\n  *(undefined1 *)(plVar4 + 2) = 0;\n  if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }\n  if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }\n  return param_1;\n}" (sized_type_specifier "long" (long "long")) (pointer_declarator "* FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)" (* "*") (function_declarator "FUN_00164950(long *param_1,undefined8 param_2,ulong param_3)" (identifier "FUN_00164950") (parameter_list "(long *param_1,undefined8 param_2,ulong param_3)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "ulong param_3" (type_identifier "ulong") (identifier "param_3")) () ")")))) (compound_statement "{\n  ulong uVar1;\n  undefined8 ****ppppuVar2;\n  long lVar3;\n  long *plVar4;\n  undefined1 local_121;\n  undefined2 local_120;\n  undefined2 local_11e;\n  undefined1 local_11c;\n  undefined4 local_11b;\n  undefined4 local_117;\n  undefined1 local_113;\n  undefined4 local_112;\n  undefined2 local_10e;\n  undefined4 local_10c;\n  undefined2 local_108;\n  undefined1 local_106;\n  undefined8 local_105;\n  undefined8 local_fd;\n  undefined1 local_f5;\n  undefined8 local_f4;\n  undefined2 local_ec;\n  undefined8 local_ea;\n  undefined2 local_e2;\n  undefined1 local_e0;\n  undefined8 local_df;\n  undefined4 local_d7;\n  undefined8 local_d3;\n  undefined4 local_cb;\n  undefined1 local_c7;\n  undefined8 local_c6;\n  undefined4 local_be;\n  undefined2 local_ba;\n  ulong *local_b8;\n  undefined4 local_b0;\n  undefined2 uStack_ac;\n  undefined1 uStack_aa;\n  undefined1 uStack_a9;\n  ulong local_a8 [2];\n  undefined8 ****local_98 [15];\n  ulong **local_20;\n  \n  if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }\n  local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);\n  local_98[0] = local_98 + 2;\n  FUN_002a9350(local_98,param_3 - 5,0xffffff90);\n  local_b8 = local_a8;\n                    \n  FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);\n  uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];\n  if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }\n  if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }\n                    \n  plVar4 = (long *)FUN_002aac00(&local_b8);\nLAB_00164a18:\n  *param_1 = (long)(param_1 + 2);\n  if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }\n  param_1[1] = plVar4[1];\n  *plVar4 = (long)(plVar4 + 2);\n  plVar4[1] = 0;\n  *(undefined1 *)(plVar4 + 2) = 0;\n  if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }\n  if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }\n  return param_1;\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "undefined8 ****ppppuVar2;" (type_identifier "undefined8") (pointer_declarator "****ppppuVar2" (* "*") (pointer_declarator "***ppppuVar2" (* "*") (pointer_declarator "**ppppuVar2" (* "*") (pointer_declarator "*ppppuVar2" (* "*") (identifier "ppppuVar2"))))) (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "long *plVar4;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar4" (* "*") (identifier "plVar4")) (; ";")) (declaration "undefined1 local_121;" (type_identifier "undefined1") (identifier "local_121") (; ";")) (declaration "undefined2 local_120;" (type_identifier "undefined2") (identifier "local_120") (; ";")) (declaration "undefined2 local_11e;" (type_identifier "undefined2") (identifier "local_11e") (; ";")) (declaration "undefined1 local_11c;" (type_identifier "undefined1") (identifier "local_11c") (; ";")) (declaration "undefined4 local_11b;" (type_identifier "undefined4") (identifier "local_11b") (; ";")) (declaration "undefined4 local_117;" (type_identifier "undefined4") (identifier "local_117") (; ";")) (declaration "undefined1 local_113;" (type_identifier "undefined1") (identifier "local_113") (; ";")) (declaration "undefined4 local_112;" (type_identifier "undefined4") (identifier "local_112") (; ";")) (declaration "undefined2 local_10e;" (type_identifier "undefined2") (identifier "local_10e") (; ";")) (declaration "undefined4 local_10c;" (type_identifier "undefined4") (identifier "local_10c") (; ";")) (declaration "undefined2 local_108;" (type_identifier "undefined2") (identifier "local_108") (; ";")) (declaration "undefined1 local_106;" (type_identifier "undefined1") (identifier "local_106") (; ";")) (declaration "undefined8 local_105;" (type_identifier "undefined8") (identifier "local_105") (; ";")) (declaration "undefined8 local_fd;" (type_identifier "undefined8") (identifier "local_fd") (; ";")) (declaration "undefined1 local_f5;" (type_identifier "undefined1") (identifier "local_f5") (; ";")) (declaration "undefined8 local_f4;" (type_identifier "undefined8") (identifier "local_f4") (; ";")) (declaration "undefined2 local_ec;" (type_identifier "undefined2") (identifier "local_ec") (; ";")) (declaration "undefined8 local_ea;" (type_identifier "undefined8") (identifier "local_ea") (; ";")) (declaration "undefined2 local_e2;" (type_identifier "undefined2") (identifier "local_e2") (; ";")) (declaration "undefined1 local_e0;" (type_identifier "undefined1") (identifier "local_e0") (; ";")) (declaration "undefined8 local_df;" (type_identifier "undefined8") (identifier "local_df") (; ";")) (declaration "undefined4 local_d7;" (type_identifier "undefined4") (identifier "local_d7") (; ";")) (declaration "undefined8 local_d3;" (type_identifier "undefined8") (identifier "local_d3") (; ";")) (declaration "undefined4 local_cb;" (type_identifier "undefined4") (identifier "local_cb") (; ";")) (declaration "undefined1 local_c7;" (type_identifier "undefined1") (identifier "local_c7") (; ";")) (declaration "undefined8 local_c6;" (type_identifier "undefined8") (identifier "local_c6") (; ";")) (declaration "undefined4 local_be;" (type_identifier "undefined4") (identifier "local_be") (; ";")) (declaration "undefined2 local_ba;" (type_identifier "undefined2") (identifier "local_ba") (; ";")) (declaration "ulong *local_b8;" (type_identifier "ulong") (pointer_declarator "*local_b8" (* "*") (identifier "local_b8")) (; ";")) (declaration "undefined4 local_b0;" (type_identifier "undefined4") (identifier "local_b0") (; ";")) (declaration "undefined2 uStack_ac;" (type_identifier "undefined2") (identifier "uStack_ac") (; ";")) (declaration "undefined1 uStack_aa;" (type_identifier "undefined1") (identifier "uStack_aa") (; ";")) (declaration "undefined1 uStack_a9;" (type_identifier "undefined1") (identifier "uStack_a9") (; ";")) (declaration "ulong local_a8 [2];" (type_identifier "ulong") (array_declarator "local_a8 [2]" (identifier "local_a8") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined8 ****local_98 [15];" (type_identifier "undefined8") (pointer_declarator "****local_98 [15]" (* "*") (pointer_declarator "***local_98 [15]" (* "*") (pointer_declarator "**local_98 [15]" (* "*") (pointer_declarator "*local_98 [15]" (* "*") (array_declarator "local_98 [15]" (identifier "local_98") ([ "[") (number_literal "15") (] "]")))))) (; ";")) (declaration "ulong **local_20;" (type_identifier "ulong") (pointer_declarator "**local_20" (* "*") (pointer_declarator "*local_20" (* "*") (identifier "local_20"))) (; ";")) (if_statement "if (param_3 < 0x10) {\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }" (if "if") (parenthesized_expression "(param_3 < 0x10)" (( "(") (binary_expression "param_3 < 0x10" (identifier "param_3") (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n    local_120 = 0x9066;\n    local_fd = 0x841f0f66;\n    local_f4 = 0x841f0f2e66;\n    local_ea = 0x841f0f2e6666;\n    local_df = 0x841f0f2e666666;\n    local_d3 = 0x841f0f2e66666666;\n    local_c6 = 0x1f0f2e6666666666;\n    local_b8 = (ulong *)0xf2e666666666666;\n    local_11e = 0x1f0f;\n    local_10e = 0;\n    local_108 = 0;\n    local_ec = 0;\n    local_e2 = 0;\n    local_ba = 0;\n    uStack_ac = 0;\n    local_121 = 0x90;\n    local_11c = 0;\n    local_11b = 0x401f0f;\n    local_117 = 0x441f0f;\n    local_113 = 0;\n    local_112 = 0x441f0f66;\n    local_10c = 0x801f0f;\n    local_106 = 0;\n    local_105 = 0x841f0f;\n    local_f5 = 0;\n    local_e0 = 0;\n    local_d7 = 0;\n    local_cb = 0;\n    local_c7 = 0;\n    local_be = 0x84;\n    local_b0 = 0x841f;\n    uStack_aa = 0;\n    local_98[0] = (undefined8 ****)0x0;\n    local_98[1] = (undefined8 ****)&local_121;\n    local_98[2] = (undefined8 ****)&local_120;\n    local_98[3] = (undefined8 ****)&local_11e;\n    local_98[4] = (undefined8 ****)&local_11b;\n    local_98[5] = (undefined8 ****)&local_117;\n    local_98[6] = (undefined8 ****)&local_112;\n    local_98[7] = (undefined8 ****)&local_10c;\n    local_98[8] = (undefined8 ****)&local_105;\n    local_98[9] = (undefined8 ****)&local_fd;\n    local_98[10] = (undefined8 ****)&local_f4;\n    local_98[0xb] = (undefined8 ****)&local_ea;\n    local_98[0xc] = (undefined8 ****)&local_df;\n    local_98[0xd] = (undefined8 ****)&local_d3;\n    local_98[0xe] = (undefined8 ****)&local_c6;\n    local_20 = &local_b8;\n    ppppuVar2 = local_98[param_3];\n    *param_1 = (long)(param_1 + 2);\n    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);\n    return param_1;\n  }" ({ "{") (expression_statement "local_120 = 0x9066;" (assignment_expression "local_120 = 0x9066" (identifier "local_120") (= "=") (number_literal "0x9066")) (; ";")) (expression_statement "local_fd = 0x841f0f66;" (assignment_expression "local_fd = 0x841f0f66" (identifier "local_fd") (= "=") (number_literal "0x841f0f66")) (; ";")) (expression_statement "local_f4 = 0x841f0f2e66;" (assignment_expression "local_f4 = 0x841f0f2e66" (identifier "local_f4") (= "=") (number_literal "0x841f0f2e66")) (; ";")) (expression_statement "local_ea = 0x841f0f2e6666;" (assignment_expression "local_ea = 0x841f0f2e6666" (identifier "local_ea") (= "=") (number_literal "0x841f0f2e6666")) (; ";")) (expression_statement "local_df = 0x841f0f2e666666;" (assignment_expression "local_df = 0x841f0f2e666666" (identifier "local_df") (= "=") (number_literal "0x841f0f2e666666")) (; ";")) (expression_statement "local_d3 = 0x841f0f2e66666666;" (assignment_expression "local_d3 = 0x841f0f2e66666666" (identifier "local_d3") (= "=") (number_literal "0x841f0f2e66666666")) (; ";")) (expression_statement "local_c6 = 0x1f0f2e6666666666;" (assignment_expression "local_c6 = 0x1f0f2e6666666666" (identifier "local_c6") (= "=") (number_literal "0x1f0f2e6666666666")) (; ";")) (expression_statement "local_b8 = (ulong *)0xf2e666666666666;" (assignment_expression "local_b8 = (ulong *)0xf2e666666666666" (identifier "local_b8") (= "=") (cast_expression "(ulong *)0xf2e666666666666" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xf2e666666666666"))) (; ";")) (expression_statement "local_11e = 0x1f0f;" (assignment_expression "local_11e = 0x1f0f" (identifier "local_11e") (= "=") (number_literal "0x1f0f")) (; ";")) (expression_statement "local_10e = 0;" (assignment_expression "local_10e = 0" (identifier "local_10e") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" (identifier "local_108") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_e2 = 0;" (assignment_expression "local_e2 = 0" (identifier "local_e2") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ba = 0;" (assignment_expression "local_ba = 0" (identifier "local_ba") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_ac = 0;" (assignment_expression "uStack_ac = 0" (identifier "uStack_ac") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_121 = 0x90;" (assignment_expression "local_121 = 0x90" (identifier "local_121") (= "=") (number_literal "0x90")) (; ";")) (expression_statement "local_11c = 0;" (assignment_expression "local_11c = 0" (identifier "local_11c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_11b = 0x401f0f;" (assignment_expression "local_11b = 0x401f0f" (identifier "local_11b") (= "=") (number_literal "0x401f0f")) (; ";")) (expression_statement "local_117 = 0x441f0f;" (assignment_expression "local_117 = 0x441f0f" (identifier "local_117") (= "=") (number_literal "0x441f0f")) (; ";")) (expression_statement "local_113 = 0;" (assignment_expression "local_113 = 0" (identifier "local_113") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_112 = 0x441f0f66;" (assignment_expression "local_112 = 0x441f0f66" (identifier "local_112") (= "=") (number_literal "0x441f0f66")) (; ";")) (expression_statement "local_10c = 0x801f0f;" (assignment_expression "local_10c = 0x801f0f" (identifier "local_10c") (= "=") (number_literal "0x801f0f")) (; ";")) (expression_statement "local_106 = 0;" (assignment_expression "local_106 = 0" (identifier "local_106") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_105 = 0x841f0f;" (assignment_expression "local_105 = 0x841f0f" (identifier "local_105") (= "=") (number_literal "0x841f0f")) (; ";")) (expression_statement "local_f5 = 0;" (assignment_expression "local_f5 = 0" (identifier "local_f5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" (identifier "local_e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d7 = 0;" (assignment_expression "local_d7 = 0" (identifier "local_d7") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_cb = 0;" (assignment_expression "local_cb = 0" (identifier "local_cb") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c7 = 0;" (assignment_expression "local_c7 = 0" (identifier "local_c7") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_be = 0x84;" (assignment_expression "local_be = 0x84" (identifier "local_be") (= "=") (number_literal "0x84")) (; ";")) (expression_statement "local_b0 = 0x841f;" (assignment_expression "local_b0 = 0x841f" (identifier "local_b0") (= "=") (number_literal "0x841f")) (; ";")) (expression_statement "uStack_aa = 0;" (assignment_expression "uStack_aa = 0" (identifier "uStack_aa") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_98[0] = (undefined8 ****)0x0;" (assignment_expression "local_98[0] = (undefined8 ****)0x0" (subscript_expression "local_98[0]" (identifier "local_98") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(undefined8 ****)0x0" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_98[1] = (undefined8 ****)&local_121;" (assignment_expression "local_98[1] = (undefined8 ****)&local_121" (subscript_expression "local_98[1]" (identifier "local_98") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_121" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_121" (& "&") (identifier "local_121")))) (; ";")) (expression_statement "local_98[2] = (undefined8 ****)&local_120;" (assignment_expression "local_98[2] = (undefined8 ****)&local_120" (subscript_expression "local_98[2]" (identifier "local_98") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_120" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_120" (& "&") (identifier "local_120")))) (; ";")) (expression_statement "local_98[3] = (undefined8 ****)&local_11e;" (assignment_expression "local_98[3] = (undefined8 ****)&local_11e" (subscript_expression "local_98[3]" (identifier "local_98") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_11e" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_11e" (& "&") (identifier "local_11e")))) (; ";")) (expression_statement "local_98[4] = (undefined8 ****)&local_11b;" (assignment_expression "local_98[4] = (undefined8 ****)&local_11b" (subscript_expression "local_98[4]" (identifier "local_98") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_11b" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_11b" (& "&") (identifier "local_11b")))) (; ";")) (expression_statement "local_98[5] = (undefined8 ****)&local_117;" (assignment_expression "local_98[5] = (undefined8 ****)&local_117" (subscript_expression "local_98[5]" (identifier "local_98") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_117" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_117" (& "&") (identifier "local_117")))) (; ";")) (expression_statement "local_98[6] = (undefined8 ****)&local_112;" (assignment_expression "local_98[6] = (undefined8 ****)&local_112" (subscript_expression "local_98[6]" (identifier "local_98") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_112" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_112" (& "&") (identifier "local_112")))) (; ";")) (expression_statement "local_98[7] = (undefined8 ****)&local_10c;" (assignment_expression "local_98[7] = (undefined8 ****)&local_10c" (subscript_expression "local_98[7]" (identifier "local_98") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_10c" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_10c" (& "&") (identifier "local_10c")))) (; ";")) (expression_statement "local_98[8] = (undefined8 ****)&local_105;" (assignment_expression "local_98[8] = (undefined8 ****)&local_105" (subscript_expression "local_98[8]" (identifier "local_98") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_105" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_105" (& "&") (identifier "local_105")))) (; ";")) (expression_statement "local_98[9] = (undefined8 ****)&local_fd;" (assignment_expression "local_98[9] = (undefined8 ****)&local_fd" (subscript_expression "local_98[9]" (identifier "local_98") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_fd" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_fd" (& "&") (identifier "local_fd")))) (; ";")) (expression_statement "local_98[10] = (undefined8 ****)&local_f4;" (assignment_expression "local_98[10] = (undefined8 ****)&local_f4" (subscript_expression "local_98[10]" (identifier "local_98") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_f4" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_f4" (& "&") (identifier "local_f4")))) (; ";")) (expression_statement "local_98[0xb] = (undefined8 ****)&local_ea;" (assignment_expression "local_98[0xb] = (undefined8 ****)&local_ea" (subscript_expression "local_98[0xb]" (identifier "local_98") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_ea" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_ea" (& "&") (identifier "local_ea")))) (; ";")) (expression_statement "local_98[0xc] = (undefined8 ****)&local_df;" (assignment_expression "local_98[0xc] = (undefined8 ****)&local_df" (subscript_expression "local_98[0xc]" (identifier "local_98") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_df" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_df" (& "&") (identifier "local_df")))) (; ";")) (expression_statement "local_98[0xd] = (undefined8 ****)&local_d3;" (assignment_expression "local_98[0xd] = (undefined8 ****)&local_d3" (subscript_expression "local_98[0xd]" (identifier "local_98") ([ "[") (number_literal "0xd") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_d3" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_d3" (& "&") (identifier "local_d3")))) (; ";")) (expression_statement "local_98[0xe] = (undefined8 ****)&local_c6;" (assignment_expression "local_98[0xe] = (undefined8 ****)&local_c6" (subscript_expression "local_98[0xe]" (identifier "local_98") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(undefined8 ****)&local_c6" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_c6" (& "&") (identifier "local_c6")))) (; ";")) (expression_statement "local_20 = &local_b8;" (assignment_expression "local_20 = &local_b8" (identifier "local_20") (= "=") (pointer_expression "&local_b8" (& "&") (identifier "local_b8"))) (; ";")) (expression_statement "ppppuVar2 = local_98[param_3];" (assignment_expression "ppppuVar2 = local_98[param_3]" (identifier "ppppuVar2") (= "=") (subscript_expression "local_98[param_3]" (identifier "local_98") ([ "[") (identifier "param_3") (] "]"))) (; ";")) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)(param_1 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);" (call_expression "FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2)" (identifier "FUN_001769d0") (argument_list "(param_1,ppppuVar2,param_3 + (long)ppppuVar2)" (( "(") (identifier "param_1") (, ",") (identifier "ppppuVar2") (, ",") (binary_expression "param_3 + (long)ppppuVar2" (identifier "param_3") (+ "+") (cast_expression "(long)ppppuVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "ppppuVar2"))) () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);" (assignment_expression "local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9)" (field_expression "local_c6._0_5_" (identifier "local_c6") (. ".") (field_identifier "_0_5_")) (= "=") (call_expression "CONCAT41((int)param_3 + -5,0xe9)" (identifier "CONCAT41") (argument_list "((int)param_3 + -5,0xe9)" (( "(") (binary_expression "(int)param_3 + -5" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "-5")) (, ",") (number_literal "0xe9") () ")")))) (; ";")) (expression_statement "local_98[0] = local_98 + 2;" (assignment_expression "local_98[0] = local_98 + 2" (subscript_expression "local_98[0]" (identifier "local_98") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_98 + 2" (identifier "local_98") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "FUN_002a9350(local_98,param_3 - 5,0xffffff90);" (call_expression "FUN_002a9350(local_98,param_3 - 5,0xffffff90)" (identifier "FUN_002a9350") (argument_list "(local_98,param_3 - 5,0xffffff90)" (( "(") (identifier "local_98") (, ",") (binary_expression "param_3 - 5" (identifier "param_3") (- "-") (number_literal "5")) (, ",") (number_literal "0xffffff90") () ")"))) (; ";")) (expression_statement "local_b8 = local_a8;" (assignment_expression "local_b8 = local_a8" (identifier "local_b8") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);" (call_expression "FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5)" (identifier "FUN_001769d0") (argument_list "(&local_b8,&local_c6,(long)&local_c6 + 5)" (( "(") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) (, ",") (pointer_expression "&local_c6" (& "&") (identifier "local_c6")) (, ",") (binary_expression "(long)&local_c6 + 5" (cast_expression "(long)&local_c6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_c6" (& "&") (identifier "local_c6"))) (+ "+") (number_literal "5")) () ")"))) (; ";")) (expression_statement "uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];" (assignment_expression "uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1]" (identifier "uVar1") (= "=") (binary_expression "CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1]" (call_expression "CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0)))" (identifier "CONCAT17") (argument_list "(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0)))" (( "(") (identifier "uStack_a9") (, ",") (call_expression "CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))" (identifier "CONCAT16") (argument_list "(uStack_aa,CONCAT24(uStack_ac,local_b0))" (( "(") (identifier "uStack_aa") (, ",") (call_expression "CONCAT24(uStack_ac,local_b0)" (identifier "CONCAT24") (argument_list "(uStack_ac,local_b0)" (( "(") (identifier "uStack_ac") (, ",") (identifier "local_b0") () ")"))) () ")"))) () ")"))) (+ "+") (cast_expression "(long)local_98[1]" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (subscript_expression "local_98[1]" (identifier "local_98") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (if_statement "if (local_b8 == local_a8) {\n    local_a8[0] = 0xf;\n  }" (if "if") (parenthesized_expression "(local_b8 == local_a8)" (( "(") (binary_expression "local_b8 == local_a8" (identifier "local_b8") (== "==") (identifier "local_a8")) () ")")) (compound_statement "{\n    local_a8[0] = 0xf;\n  }" ({ "{") (expression_statement "local_a8[0] = 0xf;" (assignment_expression "local_a8[0] = 0xf" (subscript_expression "local_a8[0]" (identifier "local_a8") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0xf")) (; ";")) (} "}"))) (if_statement "if (local_a8[0] < uVar1) {\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }" (if "if") (parenthesized_expression "(local_a8[0] < uVar1)" (( "(") (binary_expression "local_a8[0] < uVar1" (subscript_expression "local_a8[0]" (identifier "local_a8") ([ "[") (number_literal "0") (] "]")) (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n    if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }\n    if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }\n  }" ({ "{") (if_statement "if ((undefined8 *****)local_98[0] == local_98 + 2) {\n      local_98[2] = (undefined8 ****)0xf;\n    }" (if "if") (parenthesized_expression "((undefined8 *****)local_98[0] == local_98 + 2)" (( "(") (binary_expression "(undefined8 *****)local_98[0] == local_98 + 2" (cast_expression "(undefined8 *****)local_98[0]" (( "(") (type_descriptor "undefined8 *****" (type_identifier "undefined8") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "local_98[0]" (identifier "local_98") ([ "[") (number_literal "0") (] "]"))) (== "==") (binary_expression "local_98 + 2" (identifier "local_98") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n      local_98[2] = (undefined8 ****)0xf;\n    }" ({ "{") (expression_statement "local_98[2] = (undefined8 ****)0xf;" (assignment_expression "local_98[2] = (undefined8 ****)0xf" (subscript_expression "local_98[2]" (identifier "local_98") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(undefined8 ****)0xf" (( "(") (type_descriptor "undefined8 ****" (type_identifier "undefined8") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xf"))) (; ";")) (} "}"))) (if_statement "if (uVar1 <= local_98[2]) {\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }" (if "if") (parenthesized_expression "(uVar1 <= local_98[2])" (( "(") (binary_expression "uVar1 <= local_98[2]" (identifier "uVar1") (<= "<=") (subscript_expression "local_98[2]" (identifier "local_98") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n                    \n      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);\n      goto LAB_00164a18;\n    }" ({ "{") (expression_statement "plVar4 = (long *)FUN_002aa2b0(local_98,0,0);" (assignment_expression "plVar4 = (long *)FUN_002aa2b0(local_98,0,0)" (identifier "plVar4") (= "=") (cast_expression "(long *)FUN_002aa2b0(local_98,0,0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002aa2b0(local_98,0,0)" (identifier "FUN_002aa2b0") (argument_list "(local_98,0,0)" (( "(") (identifier "local_98") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (goto_statement "goto LAB_00164a18;" (goto "goto") (statement_identifier "LAB_00164a18") (; ";")) (} "}"))) (} "}"))) (expression_statement "plVar4 = (long *)FUN_002aac00(&local_b8);" (assignment_expression "plVar4 = (long *)FUN_002aac00(&local_b8)" (identifier "plVar4") (= "=") (cast_expression "(long *)FUN_002aac00(&local_b8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002aac00(&local_b8)" (identifier "FUN_002aac00") (argument_list "(&local_b8)" (( "(") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) () ")"))))) (; ";")) (labeled_statement "LAB_00164a18:\n  *param_1 = (long)(param_1 + 2);" (statement_identifier "LAB_00164a18") (: ":") (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)(param_1 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";"))) (if_statement "if ((long *)*plVar4 == plVar4 + 2) {\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }\n  else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }" (if "if") (parenthesized_expression "((long *)*plVar4 == plVar4 + 2)" (( "(") (binary_expression "(long *)*plVar4 == plVar4 + 2" (cast_expression "(long *)*plVar4" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar4" (* "*") (identifier "plVar4"))) (== "==") (binary_expression "plVar4 + 2" (identifier "plVar4") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n    lVar3 = plVar4[3];\n    param_1[2] = plVar4[2];\n    param_1[3] = lVar3;\n  }" ({ "{") (expression_statement "lVar3 = plVar4[3];" (assignment_expression "lVar3 = plVar4[3]" (identifier "lVar3") (= "=") (subscript_expression "plVar4[3]" (identifier "plVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "param_1[2] = plVar4[2];" (assignment_expression "param_1[2] = plVar4[2]" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "plVar4[2]" (identifier "plVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[3] = lVar3;" (assignment_expression "param_1[3] = lVar3" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "lVar3")) (; ";")) (} "}")) (else_clause "else {\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }" (else "else") (compound_statement "{\n    *param_1 = *plVar4;\n    param_1[2] = plVar4[2];\n  }" ({ "{") (expression_statement "*param_1 = *plVar4;" (assignment_expression "*param_1 = *plVar4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "*plVar4" (* "*") (identifier "plVar4"))) (; ";")) (expression_statement "param_1[2] = plVar4[2];" (assignment_expression "param_1[2] = plVar4[2]" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "plVar4[2]" (identifier "plVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "param_1[1] = plVar4[1];" (assignment_expression "param_1[1] = plVar4[1]" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "plVar4[1]" (identifier "plVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*plVar4 = (long)(plVar4 + 2);" (assignment_expression "*plVar4 = (long)(plVar4 + 2)" (pointer_expression "*plVar4" (* "*") (identifier "plVar4")) (= "=") (cast_expression "(long)(plVar4 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(plVar4 + 2)" (( "(") (binary_expression "plVar4 + 2" (identifier "plVar4") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "plVar4[1] = 0;" (assignment_expression "plVar4[1] = 0" (subscript_expression "plVar4[1]" (identifier "plVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(plVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar4 + 2)" (* "*") (cast_expression "(undefined1 *)(plVar4 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar4 + 2)" (( "(") (binary_expression "plVar4 + 2" (identifier "plVar4") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_b8 != local_a8) {\n    FUN_002a2980();\n  }" (if "if") (parenthesized_expression "(local_b8 != local_a8)" (( "(") (binary_expression "local_b8 != local_a8" (identifier "local_b8") (!= "!=") (identifier "local_a8")) () ")")) (compound_statement "{\n    FUN_002a2980();\n  }" ({ "{") (expression_statement "FUN_002a2980();" (call_expression "FUN_002a2980()" (identifier "FUN_002a2980") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((undefined8 *****)local_98[0] != local_98 + 2) {\n    FUN_002a2980();\n  }" (if "if") (parenthesized_expression "((undefined8 *****)local_98[0] != local_98 + 2)" (( "(") (binary_expression "(undefined8 *****)local_98[0] != local_98 + 2" (cast_expression "(undefined8 *****)local_98[0]" (( "(") (type_descriptor "undefined8 *****" (type_identifier "undefined8") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "local_98[0]" (identifier "local_98") ([ "[") (number_literal "0") (] "]"))) (!= "!=") (binary_expression "local_98 + 2" (identifier "local_98") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n    FUN_002a2980();\n  }" ({ "{") (expression_statement "FUN_002a2980();" (call_expression "FUN_002a2980()" (identifier "FUN_002a2980") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* DWARF original prototype: string do_code_fill(Target_x86_64<64> * this, section_size_type length)
    */

type_3 * __thiscall
anon_unknown.dwarf_241c3b::Target_x86_64<64>::do_code_fill
          (type_3 *__return_storage_ptr__,Target_x86_64<64> *this,section_size_type var_5)

{
  char *var_9;
  long lVar2;
  type_1 var_16;
  long *var_19;
  char nop1 [1];
  char nop2 [2];
  char nop3 [3];
  char nop4 [4];
  char nop5 [5];
  char nop6 [6];
  char nop7 [7];
  char nop8 [8];
  char nop9 [9];
  char nop10 [10];
  char nop11 [11];
  char nop12 [12];
  char nop13 [13];
  char var_11 [14];
  char nop15 [15];
  type_2 uStack_a9;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_15
  var_4;
  char *var_10 [16];
  
  if (var_5 < 0x10) {
    nop2[0] = 'f';
    nop2[1] = -0x70;
    nop9[0] = 'f';
    nop9[1] = '\x0f';
    nop9[2] = '\x1f';
    nop9[3] = -0x7c;
    nop9[4] = '\0';
    nop9[5] = '\0';
    nop9[6] = '\0';
    nop9[7] = '\0';
    nop10[0] = 'f';
    nop10[1] = '.';
    nop10[2] = '\x0f';
    nop10[3] = '\x1f';
    nop10[4] = -0x7c;
    nop10[5] = '\0';
    nop10[6] = '\0';
    nop10[7] = '\0';
    nop11[0] = 'f';
    nop11[1] = 'f';
    nop11[2] = '.';
    nop11[3] = '\x0f';
    nop11[4] = '\x1f';
    nop11[5] = -0x7c;
    nop11[6] = '\0';
    nop11[7] = '\0';
    nop12[0] = 'f';
    nop12[1] = 'f';
    nop12[2] = 'f';
    nop12[3] = '.';
    nop12[4] = '\x0f';
    nop12[5] = '\x1f';
    nop12[6] = -0x7c;
    nop12[7] = '\0';
    nop13[0] = 'f';
    nop13[1] = 'f';
    nop13[2] = 'f';
    nop13[3] = 'f';
    nop13[4] = '.';
    nop13[5] = '\x0f';
    nop13[6] = '\x1f';
    nop13[7] = -0x7c;
    var_11[0] = 'f';
    var_11[1] = 'f';
    var_11[2] = 'f';
    var_11[3] = 'f';
    var_11[4] = 'f';
    var_11[5] = '.';
    var_11[6] = '\x0f';
    var_11[7] = '\x1f';
    nop15[0] = 'f';
    nop15[1] = 'f';
    nop15[2] = 'f';
    nop15[3] = 'f';
    nop15[4] = 'f';
    nop15[5] = 'f';
    nop15[6] = '.';
    nop15[7] = '\x0f';
    nop3[0] = '\x0f';
    nop3[1] = '\x1f';
    var_6(nop6,"f\x0f\x1fD",5);
    nop6[5] = '\0';
    nop7[4] = '\0';
    nop7[5] = '\0';
    nop10[8] = '\0';
    nop10[9] = '\0';
    nop11[8] = '\0';
    nop11[9] = '\0';
    var_11[0xc] = '\0';
    var_11[0xd] = '\0';
    nop15[0xc] = '\0';
    nop15[0xd] = '\0';
    nop1[0] = -0x70;
    nop3[2] = '\0';
    var_6(nop4,"\x0f\x1f@",4);
    var_6(nop5,"\x0f\x1fD",4);
    nop5[4] = '\0';
    nop7[0] = '\x0f';
    nop7[1] = '\x1f';
    nop7[2] = -0x80;
    nop7[3] = '\0';
    nop7[6] = '\0';
    nop8[0] = '\x0f';
    nop8[1] = '\x1f';
    nop8[2] = -0x7c;
    nop8[3] = '\0';
    nop8[4] = '\0';
    nop8[5] = '\0';
    nop8[6] = '\0';
    nop8[7] = '\0';
    nop9[8] = '\0';
    nop11[10] = '\0';
    nop12[8] = '\0';
    nop12[9] = '\0';
    nop12[10] = '\0';
    nop12[0xb] = '\0';
    nop13[8] = '\0';
    nop13[9] = '\0';
    nop13[10] = '\0';
    nop13[0xb] = '\0';
    nop13[0xc] = '\0';
    var_11[8] = -0x7c;
    var_11[9] = '\0';
    var_11[10] = '\0';
    var_11[0xb] = '\0';
    nop15[8] = '\x1f';
    nop15[9] = -0x7c;
    nop15[10] = '\0';
    nop15[0xb] = '\0';
    nop15[0xe] = '\0';
    var_10[0] = (char *)0x0;
    var_10[1] = nop1;
    var_10[2] = nop2;
    var_10[3] = nop3;
    var_10[4] = nop4;
    var_10[5] = nop5;
    var_10[6] = nop6;
    var_10[7] = nop7;
    var_10[8] = nop8;
    var_10[9] = nop9;
    var_10[10] = nop10;
    var_10[0xb] = nop11;
    var_10[0xc] = nop12;
    var_10[0xd] = nop13;
    var_10[0xe] = var_11;
    var_10[0xf] = nop15;
    var_9 = var_10[var_5];
    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;
    std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
    var_7<var_8*>(__return_storage_ptr__,var_9,var_9 + var_5);
    return __return_storage_ptr__;
  }
  var_11._1_4_ = (int)var_5 + -5;
  var_11[0] = -0x17;
  var_10[0] = (char *)(var_10 + 2);
  std::string::var_7((type_3 *)var_10,var_5 - 5,-0x70);
  nop15._0_8_ = &var_4;
                    /* try { // try from 001649b4 to 001649b8 has its CatchHandler @ 00164cfa */
  std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
  var_7<var_8*>
            ((basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> *)nop15,var_11,
             var_11 + 5);
  var_16 = var_12(uStack_a9,var_13(nop15[0xe],var_14(nop15._12_2_,nop15._8_4_)));
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_15
       *)nop15._0_8_ == &var_4) {
    var_4._M_allocated_capacity = (type_4)(char *)0xf;
  }
  if (var_4._M_allocated_capacity < var_10[1] + var_16) {
    if ((char **)var_10[0] == var_10 + 2) {
      var_10[2] = (char *)0xf;
    }
    if (var_10[1] + var_16 <= var_10[2]) {
                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */
      var_19 = (long *)std::string::var_17((type_3 *)var_10,0,0,(char *)nop15._0_8_,var_16);
      goto LAB_00164a18;
    }
  }
                    /* try { // try from 00164a13 to 00164a17 has its CatchHandler @ 00164cf2 */
  var_19 = (long *)std::string::var_18((type_3 *)nop15,var_10[0],(type_1)var_10[1]);
LAB_00164a18:
  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;
  if ((long *)*var_19 == var_19 + 2) {
    lVar2 = var_19[3];
    (__return_storage_ptr__->field_2)._M_allocated_capacity = var_19[2];
    *(long *)((long)&__return_storage_ptr__->field_2 + 8) = lVar2;
  }
  else {
    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)*var_19;
    (__return_storage_ptr__->field_2)._M_allocated_capacity = var_19[2];
  }
  __return_storage_ptr__->_M_string_length = var_19[1];
  *var_19 = (long)(var_19 + 2);
  var_19[1] = 0;
  *(type_2 *)(var_19 + 2) = 0;
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_15
       *)nop15._0_8_ != &var_4) {
    var_20((void *)nop15._0_8_);
  }
  if ((char **)var_10[0] != var_10 + 2) {
    var_20(var_10[0]);
  }
  return __return_storage_ptr__;
}


(translation_unit (function_definition type: (sized_type_specifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator 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)) (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)) (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)) (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)) (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: (pointer_declarator 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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (identifier))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (call_expression function: (identifier) arguments: (argument_list (identifier) (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))))

long * MASKED(long *param_1,undefined8 param_2,ulong param_3)

{
  ulong uVar1;
  undefined8 ****ppppuVar2;
  long lVar3;
  long *plVar4;
  undefined1 local_121;
  undefined2 local_120;
  undefined2 local_11e;
  undefined1 local_11c;
  undefined4 local_11b;
  undefined4 local_117;
  undefined1 local_113;
  undefined4 local_112;
  undefined2 local_10e;
  undefined4 local_10c;
  undefined2 local_108;
  undefined1 local_106;
  undefined8 local_105;
  undefined8 local_fd;
  undefined1 local_f5;
  undefined8 local_f4;
  undefined2 local_ec;
  undefined8 local_ea;
  undefined2 local_e2;
  undefined1 local_e0;
  undefined8 local_df;
  undefined4 local_d7;
  undefined8 local_d3;
  undefined4 local_cb;
  undefined1 local_c7;
  undefined8 local_c6;
  undefined4 local_be;
  undefined2 local_ba;
  ulong *local_b8;
  undefined4 local_b0;
  undefined2 uStack_ac;
  undefined1 uStack_aa;
  undefined1 uStack_a9;
  ulong local_a8 [2];
  undefined8 ****local_98 [15];
  ulong **local_20;
  
  if (param_3 < 0x10) {
    local_120 = 0x9066;
    local_fd = 0x841f0f66;
    local_f4 = 0x841f0f2e66;
    local_ea = 0x841f0f2e6666;
    local_df = 0x841f0f2e666666;
    local_d3 = 0x841f0f2e66666666;
    local_c6 = 0x1f0f2e6666666666;
    local_b8 = (ulong *)0xf2e666666666666;
    local_11e = 0x1f0f;
    local_10e = 0;
    local_108 = 0;
    local_ec = 0;
    local_e2 = 0;
    local_ba = 0;
    uStack_ac = 0;
    local_121 = 0x90;
    local_11c = 0;
    local_11b = 0x401f0f;
    local_117 = 0x441f0f;
    local_113 = 0;
    local_112 = 0x441f0f66;
    local_10c = 0x801f0f;
    local_106 = 0;
    local_105 = 0x841f0f;
    local_f5 = 0;
    local_e0 = 0;
    local_d7 = 0;
    local_cb = 0;
    local_c7 = 0;
    local_be = 0x84;
    local_b0 = 0x841f;
    uStack_aa = 0;
    local_98[0] = (undefined8 ****)0x0;
    local_98[1] = (undefined8 ****)&local_121;
    local_98[2] = (undefined8 ****)&local_120;
    local_98[3] = (undefined8 ****)&local_11e;
    local_98[4] = (undefined8 ****)&local_11b;
    local_98[5] = (undefined8 ****)&local_117;
    local_98[6] = (undefined8 ****)&local_112;
    local_98[7] = (undefined8 ****)&local_10c;
    local_98[8] = (undefined8 ****)&local_105;
    local_98[9] = (undefined8 ****)&local_fd;
    local_98[10] = (undefined8 ****)&local_f4;
    local_98[0xb] = (undefined8 ****)&local_ea;
    local_98[0xc] = (undefined8 ****)&local_df;
    local_98[0xd] = (undefined8 ****)&local_d3;
    local_98[0xe] = (undefined8 ****)&local_c6;
    local_20 = &local_b8;
    ppppuVar2 = local_98[param_3];
    *param_1 = (long)(param_1 + 2);
    FUN_001769d0(param_1,ppppuVar2,param_3 + (long)ppppuVar2);
    return param_1;
  }
  local_c6._0_5_ = CONCAT41((int)param_3 + -5,0xe9);
  local_98[0] = local_98 + 2;
  FUN_002a9350(local_98,param_3 - 5,0xffffff90);
  local_b8 = local_a8;
                    /* try { // try from 001649b4 to 001649b8 has its CatchHandler @ 00164cfa */
  FUN_001769d0(&local_b8,&local_c6,(long)&local_c6 + 5);
  uVar1 = CONCAT17(uStack_a9,CONCAT16(uStack_aa,CONCAT24(uStack_ac,local_b0))) + (long)local_98[1];
  if (local_b8 == local_a8) {
    local_a8[0] = 0xf;
  }
  if (local_a8[0] < uVar1) {
    if ((undefined8 *****)local_98[0] == local_98 + 2) {
      local_98[2] = (undefined8 ****)0xf;
    }
    if (uVar1 <= local_98[2]) {
                    /* try { // try from 00164cd7 to 00164cdb has its CatchHandler @ 00164cf2 */
      plVar4 = (long *)FUN_002aa2b0(local_98,0,0);
      goto LAB_00164a18;
    }
  }
                    /* try { // try from 00164a13 to 00164a17 has its CatchHandler @ 00164cf2 */
  plVar4 = (long *)FUN_002aac00(&local_b8);
LAB_00164a18:
  *param_1 = (long)(param_1 + 2);
  if ((long *)*plVar4 == plVar4 + 2) {
    lVar3 = plVar4[3];
    param_1[2] = plVar4[2];
    param_1[3] = lVar3;
  }
  else {
    *param_1 = *plVar4;
    param_1[2] = plVar4[2];
  }
  param_1[1] = plVar4[1];
  *plVar4 = (long)(plVar4 + 2);
  plVar4[1] = 0;
  *(undefined1 *)(plVar4 + 2) = 0;
  if (local_b8 != local_a8) {
    FUN_002a2980();
  }
  if ((undefined8 *****)local_98[0] != local_98 + 2) {
    FUN_002a2980();
  }
  return param_1;
}

