
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: Target * do_instantiate_target(Target_selector_powerpc<64,_false> *
   this) */

Target * __thiscall
anon_unknown.dwarf_2af53c::Target_selector_powerpc<64,_false>::do_instantiate_target
          (Target_selector_powerpc<64,_false> *this)

{
  int iVar1;
  Target *pTVar2;
  uint uVar3;
  int unaff_EDI;
  
  __x86_get_pc_thunk_di();
  pTVar2 = (Target *)operator_new(0xcc);
  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);
  pTVar2->pti_ = (Target_info *)((int)&fde_003c60a4 + unaff_EDI + 3);
  pTVar2->processor_specific_flags_ = 0;
  pTVar2->are_processor_specific_flags_set_ = false;
  pTVar2->osabi_ = ELFOSABI_NONE;
  pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bfd6f);
  if (iVar1 != 0x40) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */
    gold::do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48b,&UNK_002a77c7 + unaff_EDI);
  }
  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {
    pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;
    pTVar2[1].pti_ = (Target_info *)0x0;
    pTVar2[1].processor_specific_flags_ = 0;
    *(undefined4 *)&pTVar2[1].are_processor_specific_flags_set_ = 0;
    pTVar2[1].osabi_ = ELFOSABI_NONE;
    pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;
    pTVar2[2].pti_ = (Target_info *)0x0;
    pTVar2[2].processor_specific_flags_ = 0;
    *(undefined4 *)&pTVar2[2].are_processor_specific_flags_set_ = 0;
    pTVar2[2].osabi_ = ELFOSABI_NONE;
    pTVar2[3]._vptr_Target = (_func_int_varargs **)0x13;
    pTVar2[3].pti_ = (Target_info *)0x0;
    pTVar2[3].processor_specific_flags_ = 0;
    *(undefined4 *)&pTVar2[3].are_processor_specific_flags_set_ = 0xffffffff;
    pTVar2[3].osabi_ = ELFOSABI_NONE;
    pTVar2[4]._vptr_Target = (_func_int_varargs **)0x0;
    pTVar2[4].pti_ = (Target_info *)0x0;
    pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bed27);
    uVar3 = 0;
    do {
      *(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3) = 0;
      uVar3 = uVar3 + 4;
    } while (uVar3 < 0x1c);
    *(undefined4 *)&pTVar2[4].are_processor_specific_flags_set_ = 1;
    pTVar2[4].osabi_ = ELFOSABI_NONE;
    pTVar2[5]._vptr_Target = (_func_int_varargs **)0x0;
    pTVar2[5].pti_ = (Target_info *)0x3f800000;
    pTVar2[5].processor_specific_flags_ = 0;
    *(undefined4 *)&pTVar2[5].are_processor_specific_flags_set_ = 0;
    pTVar2[5].osabi_ = ELFOSABI_NONE;
    pTVar2[6]._vptr_Target = (_func_int_varargs **)0x0;
    pTVar2[6].pti_ = (Target_info *)0x0;
    pTVar2[4].processor_specific_flags_ = (Elf_Word)&pTVar2[5].are_processor_specific_flags_set_;
    uVar3 = 0;
    do {
      *(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3) = 0;
      uVar3 = uVar3 + 4;
    } while (uVar3 < 0x1c);
    *(undefined4 *)&pTVar2[6].are_processor_specific_flags_set_ = 1;
    pTVar2[6].processor_specific_flags_ = (Elf_Word)&pTVar2[7].are_processor_specific_flags_set_;
    *(undefined2 *)&pTVar2[8]._vptr_Target = 0;
    pTVar2[6].osabi_ = ELFOSABI_NONE;
    pTVar2[7]._vptr_Target = (_func_int_varargs **)0x0;
    pTVar2[7].pti_ = (Target_info *)0x3f800000;
    pTVar2[7].processor_specific_flags_ = 0;
    *(undefined4 *)&pTVar2[7].are_processor_specific_flags_set_ = 0;
    pTVar2[7].osabi_ = ELFOSABI_NONE;
    pTVar2[8].pti_ = (Target_info *)0x0;
    pTVar2[8].processor_specific_flags_ = 0;
    *(undefined4 *)&pTVar2[8].are_processor_specific_flags_set_ = 0;
    pTVar2[8].osabi_ = ELFOSABI_NONE;
    pTVar2[9]._vptr_Target = (_func_int_varargs **)0x0;
    pTVar2[9].pti_ = (Target_info *)0x0;
    pTVar2[9].processor_specific_flags_ = 0;
    *(undefined4 *)&pTVar2[9].are_processor_specific_flags_set_ = 0;
    pTVar2[9].osabi_ = ELFOSABI_NONE;
    pTVar2[10]._vptr_Target = (_func_int_varargs **)0x0;
    return pTVar2;
  }
                    /* WARNING: Subroutine does not return */
  gold::do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48c,&UNK_002a77c7 + unaff_EDI);
}



int * FUN_0004e250(void)

{
  int iVar1;
  int *piVar2;
  uint uVar3;
  int unaff_EDI;
  
  FUN_000b484e();
  piVar2 = (int *)FUN_00246670(0xcc);
  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);
  piVar2[1] = unaff_EDI + 0x3c60a7;
  piVar2[2] = 0;
  *(undefined1 *)(piVar2 + 3) = 0;
  piVar2[4] = 0;
  *piVar2 = unaff_EDI + 0x3bfd6f;
  if (iVar1 != 0x40) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */
    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);
  }
  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {
    piVar2[5] = 0;
    piVar2[6] = 0;
    piVar2[7] = 0;
    piVar2[8] = 0;
    piVar2[9] = 0;
    piVar2[10] = 0;
    piVar2[0xb] = 0;
    piVar2[0xc] = 0;
    piVar2[0xd] = 0;
    piVar2[0xe] = 0;
    piVar2[0xf] = 0x13;
    piVar2[0x10] = 0;
    piVar2[0x11] = 0;
    piVar2[0x12] = -1;
    piVar2[0x13] = 0;
    piVar2[0x14] = 0;
    piVar2[0x15] = 0;
    *piVar2 = unaff_EDI + 0x3bed27;
    uVar3 = 0;
    do {
      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;
      uVar3 = uVar3 + 4;
    } while (uVar3 < 0x1c);
    piVar2[0x17] = 1;
    piVar2[0x18] = 0;
    piVar2[0x19] = 0;
    piVar2[0x1a] = 0x3f800000;
    piVar2[0x1b] = 0;
    piVar2[0x1c] = 0;
    piVar2[0x1d] = 0;
    piVar2[0x1e] = 0;
    piVar2[0x1f] = 0;
    piVar2[0x16] = (int)(piVar2 + 0x1c);
    uVar3 = 0;
    do {
      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;
      uVar3 = uVar3 + 4;
    } while (uVar3 < 0x1c);
    piVar2[0x21] = 1;
    piVar2[0x20] = (int)(piVar2 + 0x26);
    *(undefined2 *)(piVar2 + 0x28) = 0;
    piVar2[0x22] = 0;
    piVar2[0x23] = 0;
    piVar2[0x24] = 0x3f800000;
    piVar2[0x25] = 0;
    piVar2[0x26] = 0;
    piVar2[0x27] = 0;
    piVar2[0x29] = 0;
    piVar2[0x2a] = 0;
    piVar2[0x2b] = 0;
    piVar2[0x2c] = 0;
    piVar2[0x2d] = 0;
    piVar2[0x2e] = 0;
    piVar2[0x2f] = 0;
    piVar2[0x30] = 0;
    piVar2[0x31] = 0;
    piVar2[0x32] = 0;
    return piVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
CALL 0x000b484e
ADD EDI,0x3c5da7
PUSH ESI
PUSH EBX
SUB ESP,0x28
PUSH 0xcc
MOV EBX,EDI
CALL 0x00246670
ADD ESP,0x10
CMP dword ptr [EDI + 0x300],0x40
MOV ESI,EAX
LEA EAX,[EDI + 0x300]
MOV dword ptr [ESI + 0x4],EAX
LEA EAX,[EDI + 0xffff9fc8]
MOV dword ptr [ESI + 0x8],0x0
MOV byte ptr [ESI + 0xc],0x0
MOV dword ptr [ESI + 0x10],0x0
MOV dword ptr [ESI],EAX
JNZ 0x0004e462
CMP byte ptr [EDI + 0x304],0x0
JNZ 0x0004e47b
MOV dword ptr [ESI + 0x14],0x0
LEA EAX,[EDI + 0xffff8f80]
XOR EDX,EDX
MOV dword ptr [ESI + 0x18],0x0
MOV dword ptr [ESI + 0x1c],0x0
MOV dword ptr [ESI + 0x20],0x0
MOV dword ptr [ESI + 0x24],0x0
MOV dword ptr [ESI + 0x28],0x0
MOV dword ptr [ESI + 0x2c],0x0
MOV dword ptr [ESI + 0x30],0x0
MOV dword ptr [ESI + 0x34],0x0
MOV dword ptr [ESI + 0x38],0x0
MOV dword ptr [ESI + 0x3c],0x13
MOV dword ptr [ESI + 0x40],0x0
MOV dword ptr [ESI + 0x44],0x0
MOV dword ptr [ESI + 0x48],0xffffffff
MOV dword ptr [ESI + 0x4c],0x0
MOV dword ptr [ESI + 0x50],0x0
MOV dword ptr [ESI + 0x54],0x0
MOV dword ptr [ESI],EAX
XOR EAX,EAX
MOV dword ptr [ESI + EAX*0x1 + 0x58],EDX
ADD EAX,0x4
CMP EAX,0x1c
JC 0x0004e335
MOV dword ptr [ESI + 0x5c],0x1
LEA EAX,[ESI + 0x70]
XOR EDX,EDX
MOV dword ptr [ESI + 0x60],0x0
MOV dword ptr [ESI + 0x64],0x0
MOV dword ptr [ESI + 0x68],0x3f800000
MOV dword ptr [ESI + 0x6c],0x0
MOV dword ptr [ESI + 0x70],0x0
MOV dword ptr [ESI + 0x74],0x0
MOV dword ptr [ESI + 0x78],0x0
MOV dword ptr [ESI + 0x7c],0x0
MOV dword ptr [ESI + 0x58],EAX
XOR EAX,EAX
MOV dword ptr [ESI + EAX*0x1 + 0x80],EDX
ADD EAX,0x4
CMP EAX,0x1c
JC 0x0004e38a
MOV dword ptr [ESI + 0x84],0x1
LEA EAX,[ESI + 0x98]
MOV dword ptr [ESI + 0x80],EAX
XOR EAX,EAX
MOV word ptr [ESI + 0xa0],AX
MOV EAX,ESI
MOV dword ptr [ESI + 0x88],0x0
MOV dword ptr [ESI + 0x8c],0x0
MOV dword ptr [ESI + 0x90],0x3f800000
MOV dword ptr [ESI + 0x94],0x0
MOV dword ptr [ESI + 0x98],0x0
MOV dword ptr [ESI + 0x9c],0x0
MOV dword ptr [ESI + 0xa4],0x0
MOV dword ptr [ESI + 0xa8],0x0
MOV dword ptr [ESI + 0xac],0x0
MOV dword ptr [ESI + 0xb0],0x0
MOV dword ptr [ESI + 0xb4],0x0
MOV dword ptr [ESI + 0xb8],0x0
MOV dword ptr [ESI + 0xbc],0x0
MOV dword ptr [ESI + 0xc0],0x0
MOV dword ptr [ESI + 0xc4],0x0
MOV dword ptr [ESI + 0xc8],0x0
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
PUSH EAX
LEA EAX,[EDI + 0xffee1a20]
PUSH EAX
LEA EAX,[EDI + 0xffee2e34]
PUSH 0x48b
PUSH EAX
CALL 0x000da200
LEA EAX,[EDI + 0xffee1a20]
PUSH EBX
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffee2e34]
PUSH 0x48c
PUSH EAX
CALL 0x000da200
(translation_unit "int * FUN_0004e250(void)\n\n{\n  int iVar1;\n  int *piVar2;\n  uint uVar3;\n  int unaff_EDI;\n  \n  FUN_000b484e();\n  piVar2 = (int *)FUN_00246670(0xcc);\n  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  piVar2[1] = unaff_EDI + 0x3c60a7;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  piVar2[4] = 0;\n  *piVar2 = unaff_EDI + 0x3bfd6f;\n  if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */\n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }\n  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);\n}\n\n" (function_definition "int * FUN_0004e250(void)\n\n{\n  int iVar1;\n  int *piVar2;\n  uint uVar3;\n  int unaff_EDI;\n  \n  FUN_000b484e();\n  piVar2 = (int *)FUN_00246670(0xcc);\n  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  piVar2[1] = unaff_EDI + 0x3c60a7;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  piVar2[4] = 0;\n  *piVar2 = unaff_EDI + 0x3bfd6f;\n  if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */\n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }\n  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);\n}" primitive_type (pointer_declarator "* FUN_0004e250(void)" * (function_declarator "FUN_0004e250(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  uint uVar3;\n  int unaff_EDI;\n  \n  FUN_000b484e();\n  piVar2 = (int *)FUN_00246670(0xcc);\n  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  piVar2[1] = unaff_EDI + 0x3c60a7;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  piVar2[4] = 0;\n  *piVar2 = unaff_EDI + 0x3bfd6f;\n  if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */\n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }\n  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "FUN_000b484e();" (call_expression "FUN_000b484e()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar2 = (int *)FUN_00246670(0xcc);" (assignment_expression "piVar2 = (int *)FUN_00246670(0xcc)" identifier = (cast_expression "(int *)FUN_00246670(0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0xcc)" identifier (argument_list "(0xcc)" ( number_literal ))))) ;) (expression_statement "iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);" (assignment_expression "iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" identifier = (pointer_expression "*(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" * (cast_expression "(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_003c60a4 + unaff_EDI + 3)" ( (binary_expression "(int)&fde_003c60a4 + unaff_EDI + 3" (binary_expression "(int)&fde_003c60a4 + unaff_EDI" (cast_expression "(int)&fde_003c60a4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_003c60a4" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "piVar2[1] = unaff_EDI + 0x3c60a7;" (assignment_expression "piVar2[1] = unaff_EDI + 0x3c60a7" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = (binary_expression "unaff_EDI + 0x3c60a7" identifier + number_literal)) ;) (expression_statement "piVar2[2] = 0;" (assignment_expression "piVar2[2] = 0" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar2 + 3) = 0;" (assignment_expression "*(undefined1 *)(piVar2 + 3) = 0" (pointer_expression "*(undefined1 *)(piVar2 + 3)" * (cast_expression "(undefined1 *)(piVar2 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 3)" ( (binary_expression "piVar2 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar2[4] = 0;" (assignment_expression "piVar2[4] = 0" (subscript_expression "piVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar2 = unaff_EDI + 0x3bfd6f;" (assignment_expression "*piVar2 = unaff_EDI + 0x3bfd6f" (pointer_expression "*piVar2" * identifier) = (binary_expression "unaff_EDI + 0x3bfd6f" identifier + number_literal)) ;) (if_statement "if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */\n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }" if (parenthesized_expression "(iVar1 != 0x40)" ( (binary_expression "iVar1 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */\n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }" { comment comment (expression_statement "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);" (call_expression "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f)" identifier (argument_list "(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f)" ( (binary_expression "unaff_EDI + 0x2a8bdb" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2a77c7" identifier + number_literal) , (binary_expression "unaff_EDI + 0x3bfd6f" identifier + number_literal) ))) ;) })) (if_statement "if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }" if (parenthesized_expression "(*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0')" ( (binary_expression "*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0'" (pointer_expression "*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3)" * (cast_expression "(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DWORD_003c60a8 + unaff_EDI + 3)" ( (binary_expression "(int)&DWORD_003c60a8 + unaff_EDI + 3" (binary_expression "(int)&DWORD_003c60a8 + unaff_EDI" (cast_expression "(int)&DWORD_003c60a8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DWORD_003c60a8" & identifier)) + identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }" { (expression_statement "piVar2[5] = 0;" (assignment_expression "piVar2[5] = 0" (subscript_expression "piVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[6] = 0;" (assignment_expression "piVar2[6] = 0" (subscript_expression "piVar2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[7] = 0;" (assignment_expression "piVar2[7] = 0" (subscript_expression "piVar2[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[8] = 0;" (assignment_expression "piVar2[8] = 0" (subscript_expression "piVar2[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[9] = 0;" (assignment_expression "piVar2[9] = 0" (subscript_expression "piVar2[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[10] = 0;" (assignment_expression "piVar2[10] = 0" (subscript_expression "piVar2[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0xb] = 0;" (assignment_expression "piVar2[0xb] = 0" (subscript_expression "piVar2[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0xc] = 0;" (assignment_expression "piVar2[0xc] = 0" (subscript_expression "piVar2[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0xd] = 0;" (assignment_expression "piVar2[0xd] = 0" (subscript_expression "piVar2[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0xe] = 0;" (assignment_expression "piVar2[0xe] = 0" (subscript_expression "piVar2[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0xf] = 0x13;" (assignment_expression "piVar2[0xf] = 0x13" (subscript_expression "piVar2[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x10] = 0;" (assignment_expression "piVar2[0x10] = 0" (subscript_expression "piVar2[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x11] = 0;" (assignment_expression "piVar2[0x11] = 0" (subscript_expression "piVar2[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x12] = -1;" (assignment_expression "piVar2[0x12] = -1" (subscript_expression "piVar2[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x13] = 0;" (assignment_expression "piVar2[0x13] = 0" (subscript_expression "piVar2[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x14] = 0;" (assignment_expression "piVar2[0x14] = 0" (subscript_expression "piVar2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x15] = 0;" (assignment_expression "piVar2[0x15] = 0" (subscript_expression "piVar2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar2 = unaff_EDI + 0x3bed27;" (assignment_expression "*piVar2 = unaff_EDI + 0x3bed27" (pointer_expression "*piVar2" * identifier) = (binary_expression "unaff_EDI + 0x3bed27" identifier + number_literal)) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);" do (compound_statement "{\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    }" { (expression_statement "*(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;" (assignment_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0" (pointer_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x58)" * (cast_expression "(undefined4 *)((int)piVar2 + uVar3 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + uVar3 + 0x58)" ( (binary_expression "(int)piVar2 + uVar3 + 0x58" (binary_expression "(int)piVar2 + uVar3" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = uVar3 + 4;" (assignment_expression "uVar3 = uVar3 + 4" identifier = (binary_expression "uVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 < 0x1c)" ( (binary_expression "uVar3 < 0x1c" identifier < number_literal) )) ;) (expression_statement "piVar2[0x17] = 1;" (assignment_expression "piVar2[0x17] = 1" (subscript_expression "piVar2[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x18] = 0;" (assignment_expression "piVar2[0x18] = 0" (subscript_expression "piVar2[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x19] = 0;" (assignment_expression "piVar2[0x19] = 0" (subscript_expression "piVar2[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1a] = 0x3f800000;" (assignment_expression "piVar2[0x1a] = 0x3f800000" (subscript_expression "piVar2[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1b] = 0;" (assignment_expression "piVar2[0x1b] = 0" (subscript_expression "piVar2[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1c] = 0;" (assignment_expression "piVar2[0x1c] = 0" (subscript_expression "piVar2[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1d] = 0;" (assignment_expression "piVar2[0x1d] = 0" (subscript_expression "piVar2[0x1d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1e] = 0;" (assignment_expression "piVar2[0x1e] = 0" (subscript_expression "piVar2[0x1e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1f] = 0;" (assignment_expression "piVar2[0x1f] = 0" (subscript_expression "piVar2[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x16] = (int)(piVar2 + 0x1c);" (assignment_expression "piVar2[0x16] = (int)(piVar2 + 0x1c)" (subscript_expression "piVar2[0x16]" identifier [ number_literal ]) = (cast_expression "(int)(piVar2 + 0x1c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar2 + 0x1c)" ( (binary_expression "piVar2 + 0x1c" identifier + number_literal) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);" do (compound_statement "{\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    }" { (expression_statement "*(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;" (assignment_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0" (pointer_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x80)" * (cast_expression "(undefined4 *)((int)piVar2 + uVar3 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + uVar3 + 0x80)" ( (binary_expression "(int)piVar2 + uVar3 + 0x80" (binary_expression "(int)piVar2 + uVar3" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = uVar3 + 4;" (assignment_expression "uVar3 = uVar3 + 4" identifier = (binary_expression "uVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 < 0x1c)" ( (binary_expression "uVar3 < 0x1c" identifier < number_literal) )) ;) (expression_statement "piVar2[0x21] = 1;" (assignment_expression "piVar2[0x21] = 1" (subscript_expression "piVar2[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x20] = (int)(piVar2 + 0x26);" (assignment_expression "piVar2[0x20] = (int)(piVar2 + 0x26)" (subscript_expression "piVar2[0x20]" identifier [ number_literal ]) = (cast_expression "(int)(piVar2 + 0x26)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar2 + 0x26)" ( (binary_expression "piVar2 + 0x26" identifier + number_literal) )))) ;) (expression_statement "*(undefined2 *)(piVar2 + 0x28) = 0;" (assignment_expression "*(undefined2 *)(piVar2 + 0x28) = 0" (pointer_expression "*(undefined2 *)(piVar2 + 0x28)" * (cast_expression "(undefined2 *)(piVar2 + 0x28)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 0x28)" ( (binary_expression "piVar2 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar2[0x22] = 0;" (assignment_expression "piVar2[0x22] = 0" (subscript_expression "piVar2[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x23] = 0;" (assignment_expression "piVar2[0x23] = 0" (subscript_expression "piVar2[0x23]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x24] = 0x3f800000;" (assignment_expression "piVar2[0x24] = 0x3f800000" (subscript_expression "piVar2[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x25] = 0;" (assignment_expression "piVar2[0x25] = 0" (subscript_expression "piVar2[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x26] = 0;" (assignment_expression "piVar2[0x26] = 0" (subscript_expression "piVar2[0x26]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x27] = 0;" (assignment_expression "piVar2[0x27] = 0" (subscript_expression "piVar2[0x27]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x29] = 0;" (assignment_expression "piVar2[0x29] = 0" (subscript_expression "piVar2[0x29]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2a] = 0;" (assignment_expression "piVar2[0x2a] = 0" (subscript_expression "piVar2[0x2a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2b] = 0;" (assignment_expression "piVar2[0x2b] = 0" (subscript_expression "piVar2[0x2b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2c] = 0;" (assignment_expression "piVar2[0x2c] = 0" (subscript_expression "piVar2[0x2c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2d] = 0;" (assignment_expression "piVar2[0x2d] = 0" (subscript_expression "piVar2[0x2d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2e] = 0;" (assignment_expression "piVar2[0x2e] = 0" (subscript_expression "piVar2[0x2e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2f] = 0;" (assignment_expression "piVar2[0x2f] = 0" (subscript_expression "piVar2[0x2f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x30] = 0;" (assignment_expression "piVar2[0x30] = 0" (subscript_expression "piVar2[0x30]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x31] = 0;" (assignment_expression "piVar2[0x31] = 0" (subscript_expression "piVar2[0x31]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x32] = 0;" (assignment_expression "piVar2[0x32] = 0" (subscript_expression "piVar2[0x32]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return piVar2;" return identifier ;) })) comment (expression_statement "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);" (call_expression "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7)" identifier (argument_list "(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7)" ( (binary_expression "unaff_EDI + 0x2a8bdb" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2a77c7" identifier + number_literal) , (binary_expression "unaff_EDI + 0x3c5da7" identifier + number_literal) ))) ;) })))
(translation_unit "/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: Target * do_instantiate_target(Target_selector_powerpc<64,_false> *\n   this) */\n\nTarget * __thiscall\nanon_unknown.dwarf_2af53c::Target_selector_powerpc<64,_false>::do_instantiate_target\n          (Target_selector_powerpc<64,_false> *this)\n\n{\n  int iVar1;\n  Target *pTVar2;\n  uint uVar3;\n  int unaff_EDI;\n  \n  __x86_get_pc_thunk_di();\n  pTVar2 = (Target *)operator_new(0xcc);\n  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  pTVar2->pti_ = (Target_info *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  pTVar2->processor_specific_flags_ = 0;\n  pTVar2->are_processor_specific_flags_set_ = false;\n  pTVar2->osabi_ = ELFOSABI_NONE;\n  pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bfd6f);\n  if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */\n    gold::do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48b,&UNK_002a77c7 + unaff_EDI);\n  }\n  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[1].pti_ = (Target_info *)0x0;\n    pTVar2[1].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[1].are_processor_specific_flags_set_ = 0;\n    pTVar2[1].osabi_ = ELFOSABI_NONE;\n    pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[2].pti_ = (Target_info *)0x0;\n    pTVar2[2].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[2].are_processor_specific_flags_set_ = 0;\n    pTVar2[2].osabi_ = ELFOSABI_NONE;\n    pTVar2[3]._vptr_Target = (_func_int_varargs **)0x13;\n    pTVar2[3].pti_ = (Target_info *)0x0;\n    pTVar2[3].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[3].are_processor_specific_flags_set_ = 0xffffffff;\n    pTVar2[3].osabi_ = ELFOSABI_NONE;\n    pTVar2[4]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[4].pti_ = (Target_info *)0x0;\n    pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bed27);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    *(undefined4 *)&pTVar2[4].are_processor_specific_flags_set_ = 1;\n    pTVar2[4].osabi_ = ELFOSABI_NONE;\n    pTVar2[5]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[5].pti_ = (Target_info *)0x3f800000;\n    pTVar2[5].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[5].are_processor_specific_flags_set_ = 0;\n    pTVar2[5].osabi_ = ELFOSABI_NONE;\n    pTVar2[6]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[6].pti_ = (Target_info *)0x0;\n    pTVar2[4].processor_specific_flags_ = (Elf_Word)&pTVar2[5].are_processor_specific_flags_set_;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    *(undefined4 *)&pTVar2[6].are_processor_specific_flags_set_ = 1;\n    pTVar2[6].processor_specific_flags_ = (Elf_Word)&pTVar2[7].are_processor_specific_flags_set_;\n    *(undefined2 *)&pTVar2[8]._vptr_Target = 0;\n    pTVar2[6].osabi_ = ELFOSABI_NONE;\n    pTVar2[7]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[7].pti_ = (Target_info *)0x3f800000;\n    pTVar2[7].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[7].are_processor_specific_flags_set_ = 0;\n    pTVar2[7].osabi_ = ELFOSABI_NONE;\n    pTVar2[8].pti_ = (Target_info *)0x0;\n    pTVar2[8].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[8].are_processor_specific_flags_set_ = 0;\n    pTVar2[8].osabi_ = ELFOSABI_NONE;\n    pTVar2[9]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[9].pti_ = (Target_info *)0x0;\n    pTVar2[9].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[9].are_processor_specific_flags_set_ = 0;\n    pTVar2[9].osabi_ = ELFOSABI_NONE;\n    pTVar2[10]._vptr_Target = (_func_int_varargs **)0x0;\n    return pTVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48c,&UNK_002a77c7 + unaff_EDI);\n}\n\n" comment comment (ERROR "Target * __thiscall\nanon_unknown.dwarf_2af53c::Target_selector_powerpc<64,_false>::do_instantiate_target\n          (Target_selector_powerpc<64,_false> *this)" (binary_expression "Target * __thiscall\nanon_unknown.dwarf_2af53c::Target_selector_powerpc<64,_false>::do_instantiate_target\n          (Target_selector_powerpc<64,_false> *this)" (binary_expression "Target * __thiscall\nanon_unknown.dwarf_2af53c::Target_selector_powerpc<64" (binary_expression "Target * __thiscall\nanon_unknown.dwarf_2af53c" identifier * (ERROR "__thiscall" identifier) (field_expression "anon_unknown.dwarf_2af53c" identifier . field_identifier)) (ERROR "::Target_selector_powerpc" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) (call_expression "do_instantiate_target\n          (Target_selector_powerpc<64,_false> *this)" identifier (argument_list "(Target_selector_powerpc<64,_false> *this)" ( (binary_expression "Target_selector_powerpc<64" identifier < number_literal) , (binary_expression "_false> *this" identifier > (pointer_expression "*this" * identifier)) ))))) (compound_statement "{\n  int iVar1;\n  Target *pTVar2;\n  uint uVar3;\n  int unaff_EDI;\n  \n  __x86_get_pc_thunk_di();\n  pTVar2 = (Target *)operator_new(0xcc);\n  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  pTVar2->pti_ = (Target_info *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  pTVar2->processor_specific_flags_ = 0;\n  pTVar2->are_processor_specific_flags_set_ = false;\n  pTVar2->osabi_ = ELFOSABI_NONE;\n  pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bfd6f);\n  if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */\n    gold::do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48b,&UNK_002a77c7 + unaff_EDI);\n  }\n  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[1].pti_ = (Target_info *)0x0;\n    pTVar2[1].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[1].are_processor_specific_flags_set_ = 0;\n    pTVar2[1].osabi_ = ELFOSABI_NONE;\n    pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[2].pti_ = (Target_info *)0x0;\n    pTVar2[2].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[2].are_processor_specific_flags_set_ = 0;\n    pTVar2[2].osabi_ = ELFOSABI_NONE;\n    pTVar2[3]._vptr_Target = (_func_int_varargs **)0x13;\n    pTVar2[3].pti_ = (Target_info *)0x0;\n    pTVar2[3].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[3].are_processor_specific_flags_set_ = 0xffffffff;\n    pTVar2[3].osabi_ = ELFOSABI_NONE;\n    pTVar2[4]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[4].pti_ = (Target_info *)0x0;\n    pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bed27);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    *(undefined4 *)&pTVar2[4].are_processor_specific_flags_set_ = 1;\n    pTVar2[4].osabi_ = ELFOSABI_NONE;\n    pTVar2[5]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[5].pti_ = (Target_info *)0x3f800000;\n    pTVar2[5].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[5].are_processor_specific_flags_set_ = 0;\n    pTVar2[5].osabi_ = ELFOSABI_NONE;\n    pTVar2[6]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[6].pti_ = (Target_info *)0x0;\n    pTVar2[4].processor_specific_flags_ = (Elf_Word)&pTVar2[5].are_processor_specific_flags_set_;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    *(undefined4 *)&pTVar2[6].are_processor_specific_flags_set_ = 1;\n    pTVar2[6].processor_specific_flags_ = (Elf_Word)&pTVar2[7].are_processor_specific_flags_set_;\n    *(undefined2 *)&pTVar2[8]._vptr_Target = 0;\n    pTVar2[6].osabi_ = ELFOSABI_NONE;\n    pTVar2[7]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[7].pti_ = (Target_info *)0x3f800000;\n    pTVar2[7].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[7].are_processor_specific_flags_set_ = 0;\n    pTVar2[7].osabi_ = ELFOSABI_NONE;\n    pTVar2[8].pti_ = (Target_info *)0x0;\n    pTVar2[8].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[8].are_processor_specific_flags_set_ = 0;\n    pTVar2[8].osabi_ = ELFOSABI_NONE;\n    pTVar2[9]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[9].pti_ = (Target_info *)0x0;\n    pTVar2[9].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[9].are_processor_specific_flags_set_ = 0;\n    pTVar2[9].osabi_ = ELFOSABI_NONE;\n    pTVar2[10]._vptr_Target = (_func_int_varargs **)0x0;\n    return pTVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48c,&UNK_002a77c7 + unaff_EDI);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "Target *pTVar2;" type_identifier (pointer_declarator "*pTVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "pTVar2 = (Target *)operator_new(0xcc);" (assignment_expression "pTVar2 = (Target *)operator_new(0xcc)" identifier = (cast_expression "(Target *)operator_new(0xcc)" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0xcc)" identifier (argument_list "(0xcc)" ( number_literal ))))) ;) (expression_statement "iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);" (assignment_expression "iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" identifier = (pointer_expression "*(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" * (cast_expression "(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_003c60a4 + unaff_EDI + 3)" ( (binary_expression "(int)&fde_003c60a4 + unaff_EDI + 3" (binary_expression "(int)&fde_003c60a4 + unaff_EDI" (cast_expression "(int)&fde_003c60a4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_003c60a4" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "pTVar2->pti_ = (Target_info *)((int)&fde_003c60a4 + unaff_EDI + 3);" (assignment_expression "pTVar2->pti_ = (Target_info *)((int)&fde_003c60a4 + unaff_EDI + 3)" (field_expression "pTVar2->pti_" identifier -> field_identifier) = (cast_expression "(Target_info *)((int)&fde_003c60a4 + unaff_EDI + 3)" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_003c60a4 + unaff_EDI + 3)" ( (binary_expression "(int)&fde_003c60a4 + unaff_EDI + 3" (binary_expression "(int)&fde_003c60a4 + unaff_EDI" (cast_expression "(int)&fde_003c60a4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_003c60a4" & identifier)) + identifier) + number_literal) )))) ;) (expression_statement "pTVar2->processor_specific_flags_ = 0;" (assignment_expression "pTVar2->processor_specific_flags_ = 0" (field_expression "pTVar2->processor_specific_flags_" identifier -> field_identifier) = number_literal) ;) (expression_statement "pTVar2->are_processor_specific_flags_set_ = false;" (assignment_expression "pTVar2->are_processor_specific_flags_set_ = false" (field_expression "pTVar2->are_processor_specific_flags_set_" identifier -> field_identifier) = false) ;) (expression_statement "pTVar2->osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2->osabi_ = ELFOSABI_NONE" (field_expression "pTVar2->osabi_" identifier -> field_identifier) = identifier) ;) (expression_statement "pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bfd6f);" (assignment_expression "pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bfd6f)" (field_expression "pTVar2->_vptr_Target" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)(unaff_EDI + 0x3bfd6f)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EDI + 0x3bfd6f)" ( (binary_expression "unaff_EDI + 0x3bfd6f" identifier + number_literal) )))) ;) (if_statement "if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */\n    gold::do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48b,&UNK_002a77c7 + unaff_EDI);\n  }" if (parenthesized_expression "(iVar1 != 0x40)" ( (binary_expression "iVar1 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */\n    gold::do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48b,&UNK_002a77c7 + unaff_EDI);\n  }" { comment comment (labeled_statement "gold::do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48b,&UNK_002a77c7 + unaff_EDI);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48b,&UNK_002a77c7 + unaff_EDI);" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48b,&UNK_002a77c7 + unaff_EDI)" identifier (argument_list "((char *)(unaff_EDI + 0x2a8bdb),0x48b,&UNK_002a77c7 + unaff_EDI)" ( (cast_expression "(char *)(unaff_EDI + 0x2a8bdb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2a8bdb)" ( (binary_expression "unaff_EDI + 0x2a8bdb" identifier + number_literal) ))) , number_literal , (binary_expression "&UNK_002a77c7 + unaff_EDI" (pointer_expression "&UNK_002a77c7" & identifier) + identifier) ))) ;)) })) (if_statement "if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[1].pti_ = (Target_info *)0x0;\n    pTVar2[1].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[1].are_processor_specific_flags_set_ = 0;\n    pTVar2[1].osabi_ = ELFOSABI_NONE;\n    pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[2].pti_ = (Target_info *)0x0;\n    pTVar2[2].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[2].are_processor_specific_flags_set_ = 0;\n    pTVar2[2].osabi_ = ELFOSABI_NONE;\n    pTVar2[3]._vptr_Target = (_func_int_varargs **)0x13;\n    pTVar2[3].pti_ = (Target_info *)0x0;\n    pTVar2[3].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[3].are_processor_specific_flags_set_ = 0xffffffff;\n    pTVar2[3].osabi_ = ELFOSABI_NONE;\n    pTVar2[4]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[4].pti_ = (Target_info *)0x0;\n    pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bed27);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    *(undefined4 *)&pTVar2[4].are_processor_specific_flags_set_ = 1;\n    pTVar2[4].osabi_ = ELFOSABI_NONE;\n    pTVar2[5]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[5].pti_ = (Target_info *)0x3f800000;\n    pTVar2[5].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[5].are_processor_specific_flags_set_ = 0;\n    pTVar2[5].osabi_ = ELFOSABI_NONE;\n    pTVar2[6]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[6].pti_ = (Target_info *)0x0;\n    pTVar2[4].processor_specific_flags_ = (Elf_Word)&pTVar2[5].are_processor_specific_flags_set_;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    *(undefined4 *)&pTVar2[6].are_processor_specific_flags_set_ = 1;\n    pTVar2[6].processor_specific_flags_ = (Elf_Word)&pTVar2[7].are_processor_specific_flags_set_;\n    *(undefined2 *)&pTVar2[8]._vptr_Target = 0;\n    pTVar2[6].osabi_ = ELFOSABI_NONE;\n    pTVar2[7]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[7].pti_ = (Target_info *)0x3f800000;\n    pTVar2[7].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[7].are_processor_specific_flags_set_ = 0;\n    pTVar2[7].osabi_ = ELFOSABI_NONE;\n    pTVar2[8].pti_ = (Target_info *)0x0;\n    pTVar2[8].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[8].are_processor_specific_flags_set_ = 0;\n    pTVar2[8].osabi_ = ELFOSABI_NONE;\n    pTVar2[9]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[9].pti_ = (Target_info *)0x0;\n    pTVar2[9].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[9].are_processor_specific_flags_set_ = 0;\n    pTVar2[9].osabi_ = ELFOSABI_NONE;\n    pTVar2[10]._vptr_Target = (_func_int_varargs **)0x0;\n    return pTVar2;\n  }" if (parenthesized_expression "(*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0')" ( (binary_expression "*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0'" (pointer_expression "*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3)" * (cast_expression "(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DWORD_003c60a8 + unaff_EDI + 3)" ( (binary_expression "(int)&DWORD_003c60a8 + unaff_EDI + 3" (binary_expression "(int)&DWORD_003c60a8 + unaff_EDI" (cast_expression "(int)&DWORD_003c60a8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DWORD_003c60a8" & identifier)) + identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[1].pti_ = (Target_info *)0x0;\n    pTVar2[1].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[1].are_processor_specific_flags_set_ = 0;\n    pTVar2[1].osabi_ = ELFOSABI_NONE;\n    pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[2].pti_ = (Target_info *)0x0;\n    pTVar2[2].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[2].are_processor_specific_flags_set_ = 0;\n    pTVar2[2].osabi_ = ELFOSABI_NONE;\n    pTVar2[3]._vptr_Target = (_func_int_varargs **)0x13;\n    pTVar2[3].pti_ = (Target_info *)0x0;\n    pTVar2[3].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[3].are_processor_specific_flags_set_ = 0xffffffff;\n    pTVar2[3].osabi_ = ELFOSABI_NONE;\n    pTVar2[4]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[4].pti_ = (Target_info *)0x0;\n    pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bed27);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    *(undefined4 *)&pTVar2[4].are_processor_specific_flags_set_ = 1;\n    pTVar2[4].osabi_ = ELFOSABI_NONE;\n    pTVar2[5]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[5].pti_ = (Target_info *)0x3f800000;\n    pTVar2[5].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[5].are_processor_specific_flags_set_ = 0;\n    pTVar2[5].osabi_ = ELFOSABI_NONE;\n    pTVar2[6]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[6].pti_ = (Target_info *)0x0;\n    pTVar2[4].processor_specific_flags_ = (Elf_Word)&pTVar2[5].are_processor_specific_flags_set_;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    *(undefined4 *)&pTVar2[6].are_processor_specific_flags_set_ = 1;\n    pTVar2[6].processor_specific_flags_ = (Elf_Word)&pTVar2[7].are_processor_specific_flags_set_;\n    *(undefined2 *)&pTVar2[8]._vptr_Target = 0;\n    pTVar2[6].osabi_ = ELFOSABI_NONE;\n    pTVar2[7]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[7].pti_ = (Target_info *)0x3f800000;\n    pTVar2[7].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[7].are_processor_specific_flags_set_ = 0;\n    pTVar2[7].osabi_ = ELFOSABI_NONE;\n    pTVar2[8].pti_ = (Target_info *)0x0;\n    pTVar2[8].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[8].are_processor_specific_flags_set_ = 0;\n    pTVar2[8].osabi_ = ELFOSABI_NONE;\n    pTVar2[9]._vptr_Target = (_func_int_varargs **)0x0;\n    pTVar2[9].pti_ = (Target_info *)0x0;\n    pTVar2[9].processor_specific_flags_ = 0;\n    *(undefined4 *)&pTVar2[9].are_processor_specific_flags_set_ = 0;\n    pTVar2[9].osabi_ = ELFOSABI_NONE;\n    pTVar2[10]._vptr_Target = (_func_int_varargs **)0x0;\n    return pTVar2;\n  }" { (expression_statement "pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[1]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[1]._vptr_Target" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pTVar2[1].pti_ = (Target_info *)0x0;" (assignment_expression "pTVar2[1].pti_ = (Target_info *)0x0" (field_expression "pTVar2[1].pti_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x0" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[1].processor_specific_flags_ = 0;" (assignment_expression "pTVar2[1].processor_specific_flags_ = 0" (field_expression "pTVar2[1].processor_specific_flags_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&pTVar2[1].are_processor_specific_flags_set_ = 0;" (assignment_expression "*(undefined4 *)&pTVar2[1].are_processor_specific_flags_set_ = 0" (pointer_expression "*(undefined4 *)&pTVar2[1].are_processor_specific_flags_set_" * (cast_expression "(undefined4 *)&pTVar2[1].are_processor_specific_flags_set_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[1].are_processor_specific_flags_set_" & (field_expression "pTVar2[1].are_processor_specific_flags_set_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[1].osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2[1].osabi_ = ELFOSABI_NONE" (field_expression "pTVar2[1].osabi_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[2]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[2]._vptr_Target" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pTVar2[2].pti_ = (Target_info *)0x0;" (assignment_expression "pTVar2[2].pti_ = (Target_info *)0x0" (field_expression "pTVar2[2].pti_" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x0" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[2].processor_specific_flags_ = 0;" (assignment_expression "pTVar2[2].processor_specific_flags_ = 0" (field_expression "pTVar2[2].processor_specific_flags_" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&pTVar2[2].are_processor_specific_flags_set_ = 0;" (assignment_expression "*(undefined4 *)&pTVar2[2].are_processor_specific_flags_set_ = 0" (pointer_expression "*(undefined4 *)&pTVar2[2].are_processor_specific_flags_set_" * (cast_expression "(undefined4 *)&pTVar2[2].are_processor_specific_flags_set_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[2].are_processor_specific_flags_set_" & (field_expression "pTVar2[2].are_processor_specific_flags_set_" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[2].osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2[2].osabi_ = ELFOSABI_NONE" (field_expression "pTVar2[2].osabi_" (subscript_expression "pTVar2[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pTVar2[3]._vptr_Target = (_func_int_varargs **)0x13;" (assignment_expression "pTVar2[3]._vptr_Target = (_func_int_varargs **)0x13" (field_expression "pTVar2[3]._vptr_Target" (subscript_expression "pTVar2[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x13" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pTVar2[3].pti_ = (Target_info *)0x0;" (assignment_expression "pTVar2[3].pti_ = (Target_info *)0x0" (field_expression "pTVar2[3].pti_" (subscript_expression "pTVar2[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x0" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[3].processor_specific_flags_ = 0;" (assignment_expression "pTVar2[3].processor_specific_flags_ = 0" (field_expression "pTVar2[3].processor_specific_flags_" (subscript_expression "pTVar2[3]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&pTVar2[3].are_processor_specific_flags_set_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&pTVar2[3].are_processor_specific_flags_set_ = 0xffffffff" (pointer_expression "*(undefined4 *)&pTVar2[3].are_processor_specific_flags_set_" * (cast_expression "(undefined4 *)&pTVar2[3].are_processor_specific_flags_set_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[3].are_processor_specific_flags_set_" & (field_expression "pTVar2[3].are_processor_specific_flags_set_" (subscript_expression "pTVar2[3]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[3].osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2[3].osabi_ = ELFOSABI_NONE" (field_expression "pTVar2[3].osabi_" (subscript_expression "pTVar2[3]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pTVar2[4]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[4]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[4]._vptr_Target" (subscript_expression "pTVar2[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pTVar2[4].pti_ = (Target_info *)0x0;" (assignment_expression "pTVar2[4].pti_ = (Target_info *)0x0" (field_expression "pTVar2[4].pti_" (subscript_expression "pTVar2[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x0" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bed27);" (assignment_expression "pTVar2->_vptr_Target = (_func_int_varargs **)(unaff_EDI + 0x3bed27)" (field_expression "pTVar2->_vptr_Target" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)(unaff_EDI + 0x3bed27)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EDI + 0x3bed27)" ( (binary_expression "unaff_EDI + 0x3bed27" identifier + number_literal) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);" do (compound_statement "{\n      *(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    }" { (expression_statement "*(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3) = 0;" (assignment_expression "*(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3) = 0" (pointer_expression "*(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3)" * (cast_expression "(undefined4 *)((int)&pTVar2[4].processor_specific_flags_ + uVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar2[4].processor_specific_flags_ + uVar3)" ( (binary_expression "(int)&pTVar2[4].processor_specific_flags_ + uVar3" (cast_expression "(int)&pTVar2[4].processor_specific_flags_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar2[4].processor_specific_flags_" & (field_expression "pTVar2[4].processor_specific_flags_" (subscript_expression "pTVar2[4]" identifier [ number_literal ]) . field_identifier))) + identifier) )))) = number_literal) ;) (expression_statement "uVar3 = uVar3 + 4;" (assignment_expression "uVar3 = uVar3 + 4" identifier = (binary_expression "uVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 < 0x1c)" ( (binary_expression "uVar3 < 0x1c" identifier < number_literal) )) ;) (expression_statement "*(undefined4 *)&pTVar2[4].are_processor_specific_flags_set_ = 1;" (assignment_expression "*(undefined4 *)&pTVar2[4].are_processor_specific_flags_set_ = 1" (pointer_expression "*(undefined4 *)&pTVar2[4].are_processor_specific_flags_set_" * (cast_expression "(undefined4 *)&pTVar2[4].are_processor_specific_flags_set_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[4].are_processor_specific_flags_set_" & (field_expression "pTVar2[4].are_processor_specific_flags_set_" (subscript_expression "pTVar2[4]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[4].osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2[4].osabi_ = ELFOSABI_NONE" (field_expression "pTVar2[4].osabi_" (subscript_expression "pTVar2[4]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pTVar2[5]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[5]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[5]._vptr_Target" (subscript_expression "pTVar2[5]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pTVar2[5].pti_ = (Target_info *)0x3f800000;" (assignment_expression "pTVar2[5].pti_ = (Target_info *)0x3f800000" (field_expression "pTVar2[5].pti_" (subscript_expression "pTVar2[5]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x3f800000" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[5].processor_specific_flags_ = 0;" (assignment_expression "pTVar2[5].processor_specific_flags_ = 0" (field_expression "pTVar2[5].processor_specific_flags_" (subscript_expression "pTVar2[5]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&pTVar2[5].are_processor_specific_flags_set_ = 0;" (assignment_expression "*(undefined4 *)&pTVar2[5].are_processor_specific_flags_set_ = 0" (pointer_expression "*(undefined4 *)&pTVar2[5].are_processor_specific_flags_set_" * (cast_expression "(undefined4 *)&pTVar2[5].are_processor_specific_flags_set_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[5].are_processor_specific_flags_set_" & (field_expression "pTVar2[5].are_processor_specific_flags_set_" (subscript_expression "pTVar2[5]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[5].osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2[5].osabi_ = ELFOSABI_NONE" (field_expression "pTVar2[5].osabi_" (subscript_expression "pTVar2[5]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pTVar2[6]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[6]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[6]._vptr_Target" (subscript_expression "pTVar2[6]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pTVar2[6].pti_ = (Target_info *)0x0;" (assignment_expression "pTVar2[6].pti_ = (Target_info *)0x0" (field_expression "pTVar2[6].pti_" (subscript_expression "pTVar2[6]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x0" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[4].processor_specific_flags_ = (Elf_Word)&pTVar2[5].are_processor_specific_flags_set_;" (assignment_expression "pTVar2[4].processor_specific_flags_ = (Elf_Word)&pTVar2[5].are_processor_specific_flags_set_" (field_expression "pTVar2[4].processor_specific_flags_" (subscript_expression "pTVar2[4]" identifier [ number_literal ]) . field_identifier) = (binary_expression "(Elf_Word)&pTVar2[5].are_processor_specific_flags_set_" (parenthesized_expression "(Elf_Word)" ( identifier )) & (field_expression "pTVar2[5].are_processor_specific_flags_set_" (subscript_expression "pTVar2[5]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);" do (compound_statement "{\n      *(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3) = 0;\n      uVar3 = uVar3 + 4;\n    }" { (expression_statement "*(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3) = 0;" (assignment_expression "*(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3) = 0" (pointer_expression "*(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3)" * (cast_expression "(undefined4 *)((int)&pTVar2[6].processor_specific_flags_ + uVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar2[6].processor_specific_flags_ + uVar3)" ( (binary_expression "(int)&pTVar2[6].processor_specific_flags_ + uVar3" (cast_expression "(int)&pTVar2[6].processor_specific_flags_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar2[6].processor_specific_flags_" & (field_expression "pTVar2[6].processor_specific_flags_" (subscript_expression "pTVar2[6]" identifier [ number_literal ]) . field_identifier))) + identifier) )))) = number_literal) ;) (expression_statement "uVar3 = uVar3 + 4;" (assignment_expression "uVar3 = uVar3 + 4" identifier = (binary_expression "uVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 < 0x1c)" ( (binary_expression "uVar3 < 0x1c" identifier < number_literal) )) ;) (expression_statement "*(undefined4 *)&pTVar2[6].are_processor_specific_flags_set_ = 1;" (assignment_expression "*(undefined4 *)&pTVar2[6].are_processor_specific_flags_set_ = 1" (pointer_expression "*(undefined4 *)&pTVar2[6].are_processor_specific_flags_set_" * (cast_expression "(undefined4 *)&pTVar2[6].are_processor_specific_flags_set_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[6].are_processor_specific_flags_set_" & (field_expression "pTVar2[6].are_processor_specific_flags_set_" (subscript_expression "pTVar2[6]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[6].processor_specific_flags_ = (Elf_Word)&pTVar2[7].are_processor_specific_flags_set_;" (assignment_expression "pTVar2[6].processor_specific_flags_ = (Elf_Word)&pTVar2[7].are_processor_specific_flags_set_" (field_expression "pTVar2[6].processor_specific_flags_" (subscript_expression "pTVar2[6]" identifier [ number_literal ]) . field_identifier) = (binary_expression "(Elf_Word)&pTVar2[7].are_processor_specific_flags_set_" (parenthesized_expression "(Elf_Word)" ( identifier )) & (field_expression "pTVar2[7].are_processor_specific_flags_set_" (subscript_expression "pTVar2[7]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "*(undefined2 *)&pTVar2[8]._vptr_Target = 0;" (assignment_expression "*(undefined2 *)&pTVar2[8]._vptr_Target = 0" (pointer_expression "*(undefined2 *)&pTVar2[8]._vptr_Target" * (cast_expression "(undefined2 *)&pTVar2[8]._vptr_Target" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[8]._vptr_Target" & (field_expression "pTVar2[8]._vptr_Target" (subscript_expression "pTVar2[8]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[6].osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2[6].osabi_ = ELFOSABI_NONE" (field_expression "pTVar2[6].osabi_" (subscript_expression "pTVar2[6]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pTVar2[7]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[7]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[7]._vptr_Target" (subscript_expression "pTVar2[7]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pTVar2[7].pti_ = (Target_info *)0x3f800000;" (assignment_expression "pTVar2[7].pti_ = (Target_info *)0x3f800000" (field_expression "pTVar2[7].pti_" (subscript_expression "pTVar2[7]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x3f800000" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[7].processor_specific_flags_ = 0;" (assignment_expression "pTVar2[7].processor_specific_flags_ = 0" (field_expression "pTVar2[7].processor_specific_flags_" (subscript_expression "pTVar2[7]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&pTVar2[7].are_processor_specific_flags_set_ = 0;" (assignment_expression "*(undefined4 *)&pTVar2[7].are_processor_specific_flags_set_ = 0" (pointer_expression "*(undefined4 *)&pTVar2[7].are_processor_specific_flags_set_" * (cast_expression "(undefined4 *)&pTVar2[7].are_processor_specific_flags_set_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[7].are_processor_specific_flags_set_" & (field_expression "pTVar2[7].are_processor_specific_flags_set_" (subscript_expression "pTVar2[7]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[7].osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2[7].osabi_ = ELFOSABI_NONE" (field_expression "pTVar2[7].osabi_" (subscript_expression "pTVar2[7]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pTVar2[8].pti_ = (Target_info *)0x0;" (assignment_expression "pTVar2[8].pti_ = (Target_info *)0x0" (field_expression "pTVar2[8].pti_" (subscript_expression "pTVar2[8]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x0" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[8].processor_specific_flags_ = 0;" (assignment_expression "pTVar2[8].processor_specific_flags_ = 0" (field_expression "pTVar2[8].processor_specific_flags_" (subscript_expression "pTVar2[8]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&pTVar2[8].are_processor_specific_flags_set_ = 0;" (assignment_expression "*(undefined4 *)&pTVar2[8].are_processor_specific_flags_set_ = 0" (pointer_expression "*(undefined4 *)&pTVar2[8].are_processor_specific_flags_set_" * (cast_expression "(undefined4 *)&pTVar2[8].are_processor_specific_flags_set_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[8].are_processor_specific_flags_set_" & (field_expression "pTVar2[8].are_processor_specific_flags_set_" (subscript_expression "pTVar2[8]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[8].osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2[8].osabi_ = ELFOSABI_NONE" (field_expression "pTVar2[8].osabi_" (subscript_expression "pTVar2[8]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pTVar2[9]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[9]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[9]._vptr_Target" (subscript_expression "pTVar2[9]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pTVar2[9].pti_ = (Target_info *)0x0;" (assignment_expression "pTVar2[9].pti_ = (Target_info *)0x0" (field_expression "pTVar2[9].pti_" (subscript_expression "pTVar2[9]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Target_info *)0x0" ( (type_descriptor "Target_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pTVar2[9].processor_specific_flags_ = 0;" (assignment_expression "pTVar2[9].processor_specific_flags_ = 0" (field_expression "pTVar2[9].processor_specific_flags_" (subscript_expression "pTVar2[9]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&pTVar2[9].are_processor_specific_flags_set_ = 0;" (assignment_expression "*(undefined4 *)&pTVar2[9].are_processor_specific_flags_set_ = 0" (pointer_expression "*(undefined4 *)&pTVar2[9].are_processor_specific_flags_set_" * (cast_expression "(undefined4 *)&pTVar2[9].are_processor_specific_flags_set_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2[9].are_processor_specific_flags_set_" & (field_expression "pTVar2[9].are_processor_specific_flags_set_" (subscript_expression "pTVar2[9]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pTVar2[9].osabi_ = ELFOSABI_NONE;" (assignment_expression "pTVar2[9].osabi_ = ELFOSABI_NONE" (field_expression "pTVar2[9].osabi_" (subscript_expression "pTVar2[9]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pTVar2[10]._vptr_Target = (_func_int_varargs **)0x0;" (assignment_expression "pTVar2[10]._vptr_Target = (_func_int_varargs **)0x0" (field_expression "pTVar2[10]._vptr_Target" (subscript_expression "pTVar2[10]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (return_statement "return pTVar2;" return identifier ;) })) comment (labeled_statement "gold::do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48c,&UNK_002a77c7 + unaff_EDI);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48c,&UNK_002a77c7 + unaff_EDI);" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x2a8bdb),0x48c,&UNK_002a77c7 + unaff_EDI)" identifier (argument_list "((char *)(unaff_EDI + 0x2a8bdb),0x48c,&UNK_002a77c7 + unaff_EDI)" ( (cast_expression "(char *)(unaff_EDI + 0x2a8bdb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2a8bdb)" ( (binary_expression "unaff_EDI + 0x2a8bdb" identifier + number_literal) ))) , number_literal , (binary_expression "&UNK_002a77c7 + unaff_EDI" (pointer_expression "&UNK_002a77c7" & identifier) + identifier) ))) ;)) }))
(translation_unit "int * FUN_0004e250(void)\n\n{\n  int iVar1;\n  int *piVar2;\n  uint uVar3;\n  int unaff_EDI;\n  \n  FUN_000b484e();\n  piVar2 = (int *)FUN_00246670(0xcc);\n  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  piVar2[1] = unaff_EDI + 0x3c60a7;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  piVar2[4] = 0;\n  *piVar2 = unaff_EDI + 0x3bfd6f;\n  if (iVar1 != 0x40) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }\n  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }\n                    \n  FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);\n}\n\n" (function_definition "int * FUN_0004e250(void)\n\n{\n  int iVar1;\n  int *piVar2;\n  uint uVar3;\n  int unaff_EDI;\n  \n  FUN_000b484e();\n  piVar2 = (int *)FUN_00246670(0xcc);\n  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  piVar2[1] = unaff_EDI + 0x3c60a7;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  piVar2[4] = 0;\n  *piVar2 = unaff_EDI + 0x3bfd6f;\n  if (iVar1 != 0x40) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }\n  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }\n                    \n  FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);\n}" primitive_type (pointer_declarator "* FUN_0004e250(void)" * (function_declarator "FUN_0004e250(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  uint uVar3;\n  int unaff_EDI;\n  \n  FUN_000b484e();\n  piVar2 = (int *)FUN_00246670(0xcc);\n  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  piVar2[1] = unaff_EDI + 0x3c60a7;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  piVar2[4] = 0;\n  *piVar2 = unaff_EDI + 0x3bfd6f;\n  if (iVar1 != 0x40) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }\n  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }\n                    \n  FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "FUN_000b484e();" (call_expression "FUN_000b484e()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar2 = (int *)FUN_00246670(0xcc);" (assignment_expression "piVar2 = (int *)FUN_00246670(0xcc)" identifier = (cast_expression "(int *)FUN_00246670(0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0xcc)" identifier (argument_list "(0xcc)" ( number_literal ))))) ;) (expression_statement "iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);" (assignment_expression "iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" identifier = (pointer_expression "*(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" * (cast_expression "(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_003c60a4 + unaff_EDI + 3)" ( (binary_expression "(int)&fde_003c60a4 + unaff_EDI + 3" (binary_expression "(int)&fde_003c60a4 + unaff_EDI" (cast_expression "(int)&fde_003c60a4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_003c60a4" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "piVar2[1] = unaff_EDI + 0x3c60a7;" (assignment_expression "piVar2[1] = unaff_EDI + 0x3c60a7" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = (binary_expression "unaff_EDI + 0x3c60a7" identifier + number_literal)) ;) (expression_statement "piVar2[2] = 0;" (assignment_expression "piVar2[2] = 0" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar2 + 3) = 0;" (assignment_expression "*(undefined1 *)(piVar2 + 3) = 0" (pointer_expression "*(undefined1 *)(piVar2 + 3)" * (cast_expression "(undefined1 *)(piVar2 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 3)" ( (binary_expression "piVar2 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar2[4] = 0;" (assignment_expression "piVar2[4] = 0" (subscript_expression "piVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar2 = unaff_EDI + 0x3bfd6f;" (assignment_expression "*piVar2 = unaff_EDI + 0x3bfd6f" (pointer_expression "*piVar2" * identifier) = (binary_expression "unaff_EDI + 0x3bfd6f" identifier + number_literal)) ;) (if_statement "if (iVar1 != 0x40) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }" if (parenthesized_expression "(iVar1 != 0x40)" ( (binary_expression "iVar1 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }" { (expression_statement "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);" (call_expression "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f)" identifier (argument_list "(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f)" ( (binary_expression "unaff_EDI + 0x2a8bdb" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2a77c7" identifier + number_literal) , (binary_expression "unaff_EDI + 0x3bfd6f" identifier + number_literal) ))) ;) })) (if_statement "if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }" if (parenthesized_expression "(*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0')" ( (binary_expression "*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0'" (pointer_expression "*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3)" * (cast_expression "(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&DWORD_003c60a8 + unaff_EDI + 3)" ( (binary_expression "(int)&DWORD_003c60a8 + unaff_EDI + 3" (binary_expression "(int)&DWORD_003c60a8 + unaff_EDI" (cast_expression "(int)&DWORD_003c60a8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DWORD_003c60a8" & identifier)) + identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }" { (expression_statement "piVar2[5] = 0;" (assignment_expression "piVar2[5] = 0" (subscript_expression "piVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[6] = 0;" (assignment_expression "piVar2[6] = 0" (subscript_expression "piVar2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[7] = 0;" (assignment_expression "piVar2[7] = 0" (subscript_expression "piVar2[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[8] = 0;" (assignment_expression "piVar2[8] = 0" (subscript_expression "piVar2[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[9] = 0;" (assignment_expression "piVar2[9] = 0" (subscript_expression "piVar2[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[10] = 0;" (assignment_expression "piVar2[10] = 0" (subscript_expression "piVar2[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0xb] = 0;" (assignment_expression "piVar2[0xb] = 0" (subscript_expression "piVar2[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0xc] = 0;" (assignment_expression "piVar2[0xc] = 0" (subscript_expression "piVar2[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0xd] = 0;" (assignment_expression "piVar2[0xd] = 0" (subscript_expression "piVar2[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0xe] = 0;" (assignment_expression "piVar2[0xe] = 0" (subscript_expression "piVar2[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0xf] = 0x13;" (assignment_expression "piVar2[0xf] = 0x13" (subscript_expression "piVar2[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x10] = 0;" (assignment_expression "piVar2[0x10] = 0" (subscript_expression "piVar2[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x11] = 0;" (assignment_expression "piVar2[0x11] = 0" (subscript_expression "piVar2[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x12] = -1;" (assignment_expression "piVar2[0x12] = -1" (subscript_expression "piVar2[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x13] = 0;" (assignment_expression "piVar2[0x13] = 0" (subscript_expression "piVar2[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x14] = 0;" (assignment_expression "piVar2[0x14] = 0" (subscript_expression "piVar2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x15] = 0;" (assignment_expression "piVar2[0x15] = 0" (subscript_expression "piVar2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar2 = unaff_EDI + 0x3bed27;" (assignment_expression "*piVar2 = unaff_EDI + 0x3bed27" (pointer_expression "*piVar2" * identifier) = (binary_expression "unaff_EDI + 0x3bed27" identifier + number_literal)) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);" do (compound_statement "{\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    }" { (expression_statement "*(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;" (assignment_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0" (pointer_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x58)" * (cast_expression "(undefined4 *)((int)piVar2 + uVar3 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + uVar3 + 0x58)" ( (binary_expression "(int)piVar2 + uVar3 + 0x58" (binary_expression "(int)piVar2 + uVar3" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = uVar3 + 4;" (assignment_expression "uVar3 = uVar3 + 4" identifier = (binary_expression "uVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 < 0x1c)" ( (binary_expression "uVar3 < 0x1c" identifier < number_literal) )) ;) (expression_statement "piVar2[0x17] = 1;" (assignment_expression "piVar2[0x17] = 1" (subscript_expression "piVar2[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x18] = 0;" (assignment_expression "piVar2[0x18] = 0" (subscript_expression "piVar2[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x19] = 0;" (assignment_expression "piVar2[0x19] = 0" (subscript_expression "piVar2[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1a] = 0x3f800000;" (assignment_expression "piVar2[0x1a] = 0x3f800000" (subscript_expression "piVar2[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1b] = 0;" (assignment_expression "piVar2[0x1b] = 0" (subscript_expression "piVar2[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1c] = 0;" (assignment_expression "piVar2[0x1c] = 0" (subscript_expression "piVar2[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1d] = 0;" (assignment_expression "piVar2[0x1d] = 0" (subscript_expression "piVar2[0x1d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1e] = 0;" (assignment_expression "piVar2[0x1e] = 0" (subscript_expression "piVar2[0x1e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x1f] = 0;" (assignment_expression "piVar2[0x1f] = 0" (subscript_expression "piVar2[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x16] = (int)(piVar2 + 0x1c);" (assignment_expression "piVar2[0x16] = (int)(piVar2 + 0x1c)" (subscript_expression "piVar2[0x16]" identifier [ number_literal ]) = (cast_expression "(int)(piVar2 + 0x1c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar2 + 0x1c)" ( (binary_expression "piVar2 + 0x1c" identifier + number_literal) )))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);" do (compound_statement "{\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    }" { (expression_statement "*(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;" (assignment_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0" (pointer_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x80)" * (cast_expression "(undefined4 *)((int)piVar2 + uVar3 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + uVar3 + 0x80)" ( (binary_expression "(int)piVar2 + uVar3 + 0x80" (binary_expression "(int)piVar2 + uVar3" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = uVar3 + 4;" (assignment_expression "uVar3 = uVar3 + 4" identifier = (binary_expression "uVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 < 0x1c)" ( (binary_expression "uVar3 < 0x1c" identifier < number_literal) )) ;) (expression_statement "piVar2[0x21] = 1;" (assignment_expression "piVar2[0x21] = 1" (subscript_expression "piVar2[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x20] = (int)(piVar2 + 0x26);" (assignment_expression "piVar2[0x20] = (int)(piVar2 + 0x26)" (subscript_expression "piVar2[0x20]" identifier [ number_literal ]) = (cast_expression "(int)(piVar2 + 0x26)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar2 + 0x26)" ( (binary_expression "piVar2 + 0x26" identifier + number_literal) )))) ;) (expression_statement "*(undefined2 *)(piVar2 + 0x28) = 0;" (assignment_expression "*(undefined2 *)(piVar2 + 0x28) = 0" (pointer_expression "*(undefined2 *)(piVar2 + 0x28)" * (cast_expression "(undefined2 *)(piVar2 + 0x28)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 0x28)" ( (binary_expression "piVar2 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar2[0x22] = 0;" (assignment_expression "piVar2[0x22] = 0" (subscript_expression "piVar2[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x23] = 0;" (assignment_expression "piVar2[0x23] = 0" (subscript_expression "piVar2[0x23]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x24] = 0x3f800000;" (assignment_expression "piVar2[0x24] = 0x3f800000" (subscript_expression "piVar2[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x25] = 0;" (assignment_expression "piVar2[0x25] = 0" (subscript_expression "piVar2[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x26] = 0;" (assignment_expression "piVar2[0x26] = 0" (subscript_expression "piVar2[0x26]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x27] = 0;" (assignment_expression "piVar2[0x27] = 0" (subscript_expression "piVar2[0x27]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x29] = 0;" (assignment_expression "piVar2[0x29] = 0" (subscript_expression "piVar2[0x29]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2a] = 0;" (assignment_expression "piVar2[0x2a] = 0" (subscript_expression "piVar2[0x2a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2b] = 0;" (assignment_expression "piVar2[0x2b] = 0" (subscript_expression "piVar2[0x2b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2c] = 0;" (assignment_expression "piVar2[0x2c] = 0" (subscript_expression "piVar2[0x2c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2d] = 0;" (assignment_expression "piVar2[0x2d] = 0" (subscript_expression "piVar2[0x2d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2e] = 0;" (assignment_expression "piVar2[0x2e] = 0" (subscript_expression "piVar2[0x2e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x2f] = 0;" (assignment_expression "piVar2[0x2f] = 0" (subscript_expression "piVar2[0x2f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x30] = 0;" (assignment_expression "piVar2[0x30] = 0" (subscript_expression "piVar2[0x30]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x31] = 0;" (assignment_expression "piVar2[0x31] = 0" (subscript_expression "piVar2[0x31]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[0x32] = 0;" (assignment_expression "piVar2[0x32] = 0" (subscript_expression "piVar2[0x32]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return piVar2;" return identifier ;) })) (expression_statement "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);" (call_expression "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7)" identifier (argument_list "(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7)" ( (binary_expression "unaff_EDI + 0x2a8bdb" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2a77c7" identifier + number_literal) , (binary_expression "unaff_EDI + 0x3c5da7" identifier + number_literal) ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) })))
(function_definition "int * FUN_0004e250(void)\n\n{\n  int iVar1;\n  int *piVar2;\n  uint uVar3;\n  int unaff_EDI;\n  \n  FUN_000b484e();\n  piVar2 = (int *)FUN_00246670(0xcc);\n  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  piVar2[1] = unaff_EDI + 0x3c60a7;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  piVar2[4] = 0;\n  *piVar2 = unaff_EDI + 0x3bfd6f;\n  if (iVar1 != 0x40) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }\n  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }\n                    \n  FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);\n}" (primitive_type "int") (pointer_declarator "* FUN_0004e250(void)" (* "*") (function_declarator "FUN_0004e250(void)" (identifier "FUN_0004e250") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")")))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  uint uVar3;\n  int unaff_EDI;\n  \n  FUN_000b484e();\n  piVar2 = (int *)FUN_00246670(0xcc);\n  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);\n  piVar2[1] = unaff_EDI + 0x3c60a7;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  piVar2[4] = 0;\n  *piVar2 = unaff_EDI + 0x3bfd6f;\n  if (iVar1 != 0x40) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }\n  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }\n                    \n  FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (expression_statement "FUN_000b484e();" (call_expression "FUN_000b484e()" (identifier "FUN_000b484e") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar2 = (int *)FUN_00246670(0xcc);" (assignment_expression "piVar2 = (int *)FUN_00246670(0xcc)" (identifier "piVar2") (= "=") (cast_expression "(int *)FUN_00246670(0xcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0xcc)" (identifier "FUN_00246670") (argument_list "(0xcc)" (( "(") (number_literal "0xcc") () ")"))))) (; ";")) (expression_statement "iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);" (assignment_expression "iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" (* "*") (cast_expression "(int *)((int)&fde_003c60a4 + unaff_EDI + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&fde_003c60a4 + unaff_EDI + 3)" (( "(") (binary_expression "(int)&fde_003c60a4 + unaff_EDI + 3" (binary_expression "(int)&fde_003c60a4 + unaff_EDI" (cast_expression "(int)&fde_003c60a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&fde_003c60a4" (& "&") (identifier "fde_003c60a4"))) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "piVar2[1] = unaff_EDI + 0x3c60a7;" (assignment_expression "piVar2[1] = unaff_EDI + 0x3c60a7" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "unaff_EDI + 0x3c60a7" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c60a7"))) (; ";")) (expression_statement "piVar2[2] = 0;" (assignment_expression "piVar2[2] = 0" (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar2 + 3) = 0;" (assignment_expression "*(undefined1 *)(piVar2 + 3) = 0" (pointer_expression "*(undefined1 *)(piVar2 + 3)" (* "*") (cast_expression "(undefined1 *)(piVar2 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2 + 3)" (( "(") (binary_expression "piVar2 + 3" (identifier "piVar2") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[4] = 0;" (assignment_expression "piVar2[4] = 0" (subscript_expression "piVar2[4]" (identifier "piVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar2 = unaff_EDI + 0x3bfd6f;" (assignment_expression "*piVar2 = unaff_EDI + 0x3bfd6f" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "unaff_EDI + 0x3bfd6f" (identifier "unaff_EDI") (+ "+") (number_literal "0x3bfd6f"))) (; ";")) (if_statement "if (iVar1 != 0x40) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }" (if "if") (parenthesized_expression "(iVar1 != 0x40)" (( "(") (binary_expression "iVar1 != 0x40" (identifier "iVar1") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);\n  }" ({ "{") (expression_statement "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);" (call_expression "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f)" (identifier "FUN_000da200") (argument_list "(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f)" (( "(") (binary_expression "unaff_EDI + 0x2a8bdb" (identifier "unaff_EDI") (+ "+") (number_literal "0x2a8bdb")) (, ",") (number_literal "0x48b") (, ",") (binary_expression "unaff_EDI + 0x2a77c7" (identifier "unaff_EDI") (+ "+") (number_literal "0x2a77c7")) (, ",") (binary_expression "unaff_EDI + 0x3bfd6f" (identifier "unaff_EDI") (+ "+") (number_literal "0x3bfd6f")) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }" (if "if") (parenthesized_expression "(*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0')" (( "(") (binary_expression "*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0'" (pointer_expression "*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3)" (* "*") (cast_expression "(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&DWORD_003c60a8 + unaff_EDI + 3)" (( "(") (binary_expression "(int)&DWORD_003c60a8 + unaff_EDI + 3" (binary_expression "(int)&DWORD_003c60a8 + unaff_EDI" (cast_expression "(int)&DWORD_003c60a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&DWORD_003c60a8" (& "&") (identifier "DWORD_003c60a8"))) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "3")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    piVar2[5] = 0;\n    piVar2[6] = 0;\n    piVar2[7] = 0;\n    piVar2[8] = 0;\n    piVar2[9] = 0;\n    piVar2[10] = 0;\n    piVar2[0xb] = 0;\n    piVar2[0xc] = 0;\n    piVar2[0xd] = 0;\n    piVar2[0xe] = 0;\n    piVar2[0xf] = 0x13;\n    piVar2[0x10] = 0;\n    piVar2[0x11] = 0;\n    piVar2[0x12] = -1;\n    piVar2[0x13] = 0;\n    piVar2[0x14] = 0;\n    piVar2[0x15] = 0;\n    *piVar2 = unaff_EDI + 0x3bed27;\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x17] = 1;\n    piVar2[0x18] = 0;\n    piVar2[0x19] = 0;\n    piVar2[0x1a] = 0x3f800000;\n    piVar2[0x1b] = 0;\n    piVar2[0x1c] = 0;\n    piVar2[0x1d] = 0;\n    piVar2[0x1e] = 0;\n    piVar2[0x1f] = 0;\n    piVar2[0x16] = (int)(piVar2 + 0x1c);\n    uVar3 = 0;\n    do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);\n    piVar2[0x21] = 1;\n    piVar2[0x20] = (int)(piVar2 + 0x26);\n    *(undefined2 *)(piVar2 + 0x28) = 0;\n    piVar2[0x22] = 0;\n    piVar2[0x23] = 0;\n    piVar2[0x24] = 0x3f800000;\n    piVar2[0x25] = 0;\n    piVar2[0x26] = 0;\n    piVar2[0x27] = 0;\n    piVar2[0x29] = 0;\n    piVar2[0x2a] = 0;\n    piVar2[0x2b] = 0;\n    piVar2[0x2c] = 0;\n    piVar2[0x2d] = 0;\n    piVar2[0x2e] = 0;\n    piVar2[0x2f] = 0;\n    piVar2[0x30] = 0;\n    piVar2[0x31] = 0;\n    piVar2[0x32] = 0;\n    return piVar2;\n  }" ({ "{") (expression_statement "piVar2[5] = 0;" (assignment_expression "piVar2[5] = 0" (subscript_expression "piVar2[5]" (identifier "piVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[6] = 0;" (assignment_expression "piVar2[6] = 0" (subscript_expression "piVar2[6]" (identifier "piVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[7] = 0;" (assignment_expression "piVar2[7] = 0" (subscript_expression "piVar2[7]" (identifier "piVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[8] = 0;" (assignment_expression "piVar2[8] = 0" (subscript_expression "piVar2[8]" (identifier "piVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[9] = 0;" (assignment_expression "piVar2[9] = 0" (subscript_expression "piVar2[9]" (identifier "piVar2") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[10] = 0;" (assignment_expression "piVar2[10] = 0" (subscript_expression "piVar2[10]" (identifier "piVar2") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0xb] = 0;" (assignment_expression "piVar2[0xb] = 0" (subscript_expression "piVar2[0xb]" (identifier "piVar2") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0xc] = 0;" (assignment_expression "piVar2[0xc] = 0" (subscript_expression "piVar2[0xc]" (identifier "piVar2") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0xd] = 0;" (assignment_expression "piVar2[0xd] = 0" (subscript_expression "piVar2[0xd]" (identifier "piVar2") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0xe] = 0;" (assignment_expression "piVar2[0xe] = 0" (subscript_expression "piVar2[0xe]" (identifier "piVar2") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0xf] = 0x13;" (assignment_expression "piVar2[0xf] = 0x13" (subscript_expression "piVar2[0xf]" (identifier "piVar2") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0x13")) (; ";")) (expression_statement "piVar2[0x10] = 0;" (assignment_expression "piVar2[0x10] = 0" (subscript_expression "piVar2[0x10]" (identifier "piVar2") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x11] = 0;" (assignment_expression "piVar2[0x11] = 0" (subscript_expression "piVar2[0x11]" (identifier "piVar2") ([ "[") (number_literal "0x11") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x12] = -1;" (assignment_expression "piVar2[0x12] = -1" (subscript_expression "piVar2[0x12]" (identifier "piVar2") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "piVar2[0x13] = 0;" (assignment_expression "piVar2[0x13] = 0" (subscript_expression "piVar2[0x13]" (identifier "piVar2") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x14] = 0;" (assignment_expression "piVar2[0x14] = 0" (subscript_expression "piVar2[0x14]" (identifier "piVar2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x15] = 0;" (assignment_expression "piVar2[0x15] = 0" (subscript_expression "piVar2[0x15]" (identifier "piVar2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar2 = unaff_EDI + 0x3bed27;" (assignment_expression "*piVar2 = unaff_EDI + 0x3bed27" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "unaff_EDI + 0x3bed27" (identifier "unaff_EDI") (+ "+") (number_literal "0x3bed27"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);" (do "do") (compound_statement "{\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;\n      uVar3 = uVar3 + 4;\n    }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;" (assignment_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0" (pointer_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x58)" (* "*") (cast_expression "(undefined4 *)((int)piVar2 + uVar3 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + uVar3 + 0x58)" (( "(") (binary_expression "(int)piVar2 + uVar3 + 0x58" (binary_expression "(int)piVar2 + uVar3" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x58")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = uVar3 + 4;" (assignment_expression "uVar3 = uVar3 + 4" (identifier "uVar3") (= "=") (binary_expression "uVar3 + 4" (identifier "uVar3") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar3 < 0x1c)" (( "(") (binary_expression "uVar3 < 0x1c" (identifier "uVar3") (< "<") (number_literal "0x1c")) () ")")) (; ";")) (expression_statement "piVar2[0x17] = 1;" (assignment_expression "piVar2[0x17] = 1" (subscript_expression "piVar2[0x17]" (identifier "piVar2") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar2[0x18] = 0;" (assignment_expression "piVar2[0x18] = 0" (subscript_expression "piVar2[0x18]" (identifier "piVar2") ([ "[") (number_literal "0x18") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x19] = 0;" (assignment_expression "piVar2[0x19] = 0" (subscript_expression "piVar2[0x19]" (identifier "piVar2") ([ "[") (number_literal "0x19") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x1a] = 0x3f800000;" (assignment_expression "piVar2[0x1a] = 0x3f800000" (subscript_expression "piVar2[0x1a]" (identifier "piVar2") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "piVar2[0x1b] = 0;" (assignment_expression "piVar2[0x1b] = 0" (subscript_expression "piVar2[0x1b]" (identifier "piVar2") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x1c] = 0;" (assignment_expression "piVar2[0x1c] = 0" (subscript_expression "piVar2[0x1c]" (identifier "piVar2") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x1d] = 0;" (assignment_expression "piVar2[0x1d] = 0" (subscript_expression "piVar2[0x1d]" (identifier "piVar2") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x1e] = 0;" (assignment_expression "piVar2[0x1e] = 0" (subscript_expression "piVar2[0x1e]" (identifier "piVar2") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x1f] = 0;" (assignment_expression "piVar2[0x1f] = 0" (subscript_expression "piVar2[0x1f]" (identifier "piVar2") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x16] = (int)(piVar2 + 0x1c);" (assignment_expression "piVar2[0x16] = (int)(piVar2 + 0x1c)" (subscript_expression "piVar2[0x16]" (identifier "piVar2") ([ "[") (number_literal "0x16") (] "]")) (= "=") (cast_expression "(int)(piVar2 + 0x1c)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar2 + 0x1c)" (( "(") (binary_expression "piVar2 + 0x1c" (identifier "piVar2") (+ "+") (number_literal "0x1c")) () ")")))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    } while (uVar3 < 0x1c);" (do "do") (compound_statement "{\n      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;\n      uVar3 = uVar3 + 4;\n    }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;" (assignment_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0" (pointer_expression "*(undefined4 *)((int)piVar2 + uVar3 + 0x80)" (* "*") (cast_expression "(undefined4 *)((int)piVar2 + uVar3 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + uVar3 + 0x80)" (( "(") (binary_expression "(int)piVar2 + uVar3 + 0x80" (binary_expression "(int)piVar2 + uVar3" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (identifier "uVar3")) (+ "+") (number_literal "0x80")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = uVar3 + 4;" (assignment_expression "uVar3 = uVar3 + 4" (identifier "uVar3") (= "=") (binary_expression "uVar3 + 4" (identifier "uVar3") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar3 < 0x1c)" (( "(") (binary_expression "uVar3 < 0x1c" (identifier "uVar3") (< "<") (number_literal "0x1c")) () ")")) (; ";")) (expression_statement "piVar2[0x21] = 1;" (assignment_expression "piVar2[0x21] = 1" (subscript_expression "piVar2[0x21]" (identifier "piVar2") ([ "[") (number_literal "0x21") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar2[0x20] = (int)(piVar2 + 0x26);" (assignment_expression "piVar2[0x20] = (int)(piVar2 + 0x26)" (subscript_expression "piVar2[0x20]" (identifier "piVar2") ([ "[") (number_literal "0x20") (] "]")) (= "=") (cast_expression "(int)(piVar2 + 0x26)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar2 + 0x26)" (( "(") (binary_expression "piVar2 + 0x26" (identifier "piVar2") (+ "+") (number_literal "0x26")) () ")")))) (; ";")) (expression_statement "*(undefined2 *)(piVar2 + 0x28) = 0;" (assignment_expression "*(undefined2 *)(piVar2 + 0x28) = 0" (pointer_expression "*(undefined2 *)(piVar2 + 0x28)" (* "*") (cast_expression "(undefined2 *)(piVar2 + 0x28)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2 + 0x28)" (( "(") (binary_expression "piVar2 + 0x28" (identifier "piVar2") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x22] = 0;" (assignment_expression "piVar2[0x22] = 0" (subscript_expression "piVar2[0x22]" (identifier "piVar2") ([ "[") (number_literal "0x22") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x23] = 0;" (assignment_expression "piVar2[0x23] = 0" (subscript_expression "piVar2[0x23]" (identifier "piVar2") ([ "[") (number_literal "0x23") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x24] = 0x3f800000;" (assignment_expression "piVar2[0x24] = 0x3f800000" (subscript_expression "piVar2[0x24]" (identifier "piVar2") ([ "[") (number_literal "0x24") (] "]")) (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "piVar2[0x25] = 0;" (assignment_expression "piVar2[0x25] = 0" (subscript_expression "piVar2[0x25]" (identifier "piVar2") ([ "[") (number_literal "0x25") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x26] = 0;" (assignment_expression "piVar2[0x26] = 0" (subscript_expression "piVar2[0x26]" (identifier "piVar2") ([ "[") (number_literal "0x26") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x27] = 0;" (assignment_expression "piVar2[0x27] = 0" (subscript_expression "piVar2[0x27]" (identifier "piVar2") ([ "[") (number_literal "0x27") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x29] = 0;" (assignment_expression "piVar2[0x29] = 0" (subscript_expression "piVar2[0x29]" (identifier "piVar2") ([ "[") (number_literal "0x29") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x2a] = 0;" (assignment_expression "piVar2[0x2a] = 0" (subscript_expression "piVar2[0x2a]" (identifier "piVar2") ([ "[") (number_literal "0x2a") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x2b] = 0;" (assignment_expression "piVar2[0x2b] = 0" (subscript_expression "piVar2[0x2b]" (identifier "piVar2") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x2c] = 0;" (assignment_expression "piVar2[0x2c] = 0" (subscript_expression "piVar2[0x2c]" (identifier "piVar2") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x2d] = 0;" (assignment_expression "piVar2[0x2d] = 0" (subscript_expression "piVar2[0x2d]" (identifier "piVar2") ([ "[") (number_literal "0x2d") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x2e] = 0;" (assignment_expression "piVar2[0x2e] = 0" (subscript_expression "piVar2[0x2e]" (identifier "piVar2") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x2f] = 0;" (assignment_expression "piVar2[0x2f] = 0" (subscript_expression "piVar2[0x2f]" (identifier "piVar2") ([ "[") (number_literal "0x2f") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x30] = 0;" (assignment_expression "piVar2[0x30] = 0" (subscript_expression "piVar2[0x30]" (identifier "piVar2") ([ "[") (number_literal "0x30") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x31] = 0;" (assignment_expression "piVar2[0x31] = 0" (subscript_expression "piVar2[0x31]" (identifier "piVar2") ([ "[") (number_literal "0x31") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[0x32] = 0;" (assignment_expression "piVar2[0x32] = 0" (subscript_expression "piVar2[0x32]" (identifier "piVar2") ([ "[") (number_literal "0x32") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);" (call_expression "FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7)" (identifier "FUN_000da200") (argument_list "(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7)" (( "(") (binary_expression "unaff_EDI + 0x2a8bdb" (identifier "unaff_EDI") (+ "+") (number_literal "0x2a8bdb")) (, ",") (number_literal "0x48c") (, ",") (binary_expression "unaff_EDI + 0x2a77c7" (identifier "unaff_EDI") (+ "+") (number_literal "0x2a77c7")) (, ",") (binary_expression "unaff_EDI + 0x3c5da7" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c5da7")) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: Target * do_instantiate_target(Target_selector_powerpc<64,_false> *
   this) */

type_1 * __thiscall
anon_unknown.dwarf_2af53c::Target_selector_powerpc<64,_false>::do_instantiate_target
          (Target_selector_powerpc<64,_false> *this)

{
  int var_4;
  type_1 *pTVar2;
  type_2 var_6;
  int var_3;
  
  var_1();
  pTVar2 = (type_1 *)var_2(0xcc);
  var_4 = *(int *)((int)&fde_003c60a4 + var_3 + 3);
  pTVar2->pti_ = (type_3 *)((int)&fde_003c60a4 + var_3 + 3);
  pTVar2->processor_specific_flags_ = 0;
  pTVar2->are_processor_specific_flags_set_ = false;
  pTVar2->osabi_ = ELFOSABI_NONE;
  pTVar2->_vptr_Target = (type_4 **)(var_3 + 0x3bfd6f);
  if (var_4 != 0x40) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */
    gold::var_5((char *)(var_3 + 0x2a8bdb),0x48b,&UNK_002a77c7 + var_3);
  }
  if (*(char *)((int)&DWORD_003c60a8 + var_3 + 3) == '\0') {
    pTVar2[1]._vptr_Target = (type_4 **)0x0;
    pTVar2[1].pti_ = (type_3 *)0x0;
    pTVar2[1].processor_specific_flags_ = 0;
    *(type_5 *)&pTVar2[1].are_processor_specific_flags_set_ = 0;
    pTVar2[1].osabi_ = ELFOSABI_NONE;
    pTVar2[2]._vptr_Target = (type_4 **)0x0;
    pTVar2[2].pti_ = (type_3 *)0x0;
    pTVar2[2].processor_specific_flags_ = 0;
    *(type_5 *)&pTVar2[2].are_processor_specific_flags_set_ = 0;
    pTVar2[2].osabi_ = ELFOSABI_NONE;
    pTVar2[3]._vptr_Target = (type_4 **)0x13;
    pTVar2[3].pti_ = (type_3 *)0x0;
    pTVar2[3].processor_specific_flags_ = 0;
    *(type_5 *)&pTVar2[3].are_processor_specific_flags_set_ = 0xffffffff;
    pTVar2[3].osabi_ = ELFOSABI_NONE;
    pTVar2[4]._vptr_Target = (type_4 **)0x0;
    pTVar2[4].pti_ = (type_3 *)0x0;
    pTVar2->_vptr_Target = (type_4 **)(var_3 + 0x3bed27);
    var_6 = 0;
    do {
      *(type_5 *)((int)&pTVar2[4].processor_specific_flags_ + var_6) = 0;
      var_6 = var_6 + 4;
    } while (var_6 < 0x1c);
    *(type_5 *)&pTVar2[4].are_processor_specific_flags_set_ = 1;
    pTVar2[4].osabi_ = ELFOSABI_NONE;
    pTVar2[5]._vptr_Target = (type_4 **)0x0;
    pTVar2[5].pti_ = (type_3 *)0x3f800000;
    pTVar2[5].processor_specific_flags_ = 0;
    *(type_5 *)&pTVar2[5].are_processor_specific_flags_set_ = 0;
    pTVar2[5].osabi_ = ELFOSABI_NONE;
    pTVar2[6]._vptr_Target = (type_4 **)0x0;
    pTVar2[6].pti_ = (type_3 *)0x0;
    pTVar2[4].processor_specific_flags_ = (Elf_Word)&pTVar2[5].are_processor_specific_flags_set_;
    var_6 = 0;
    do {
      *(type_5 *)((int)&pTVar2[6].processor_specific_flags_ + var_6) = 0;
      var_6 = var_6 + 4;
    } while (var_6 < 0x1c);
    *(type_5 *)&pTVar2[6].are_processor_specific_flags_set_ = 1;
    pTVar2[6].processor_specific_flags_ = (Elf_Word)&pTVar2[7].are_processor_specific_flags_set_;
    *(type_6 *)&pTVar2[8]._vptr_Target = 0;
    pTVar2[6].osabi_ = ELFOSABI_NONE;
    pTVar2[7]._vptr_Target = (type_4 **)0x0;
    pTVar2[7].pti_ = (type_3 *)0x3f800000;
    pTVar2[7].processor_specific_flags_ = 0;
    *(type_5 *)&pTVar2[7].are_processor_specific_flags_set_ = 0;
    pTVar2[7].osabi_ = ELFOSABI_NONE;
    pTVar2[8].pti_ = (type_3 *)0x0;
    pTVar2[8].processor_specific_flags_ = 0;
    *(type_5 *)&pTVar2[8].are_processor_specific_flags_set_ = 0;
    pTVar2[8].osabi_ = ELFOSABI_NONE;
    pTVar2[9]._vptr_Target = (type_4 **)0x0;
    pTVar2[9].pti_ = (type_3 *)0x0;
    pTVar2[9].processor_specific_flags_ = 0;
    *(type_5 *)&pTVar2[9].are_processor_specific_flags_set_ = 0;
    pTVar2[9].osabi_ = ELFOSABI_NONE;
    pTVar2[10]._vptr_Target = (type_4 **)0x0;
    return pTVar2;
  }
                    /* WARNING: Subroutine does not return */
  gold::var_5((char *)(var_3 + 0x2a8bdb),0x48c,&UNK_002a77c7 + var_3);
}


(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) 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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))))))

int * MASKED(void)

{
  int iVar1;
  int *piVar2;
  uint uVar3;
  int unaff_EDI;
  
  FUN_000b484e();
  piVar2 = (int *)FUN_00246670(0xcc);
  iVar1 = *(int *)((int)&fde_003c60a4 + unaff_EDI + 3);
  piVar2[1] = unaff_EDI + 0x3c60a7;
  piVar2[2] = 0;
  *(undefined1 *)(piVar2 + 3) = 0;
  piVar2[4] = 0;
  *piVar2 = unaff_EDI + 0x3bfd6f;
  if (iVar1 != 0x40) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0004e476 to 0004e495 has its CatchHandler @ 0004e496 */
    FUN_000da200(unaff_EDI + 0x2a8bdb,0x48b,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3bfd6f);
  }
  if (*(char *)((int)&DWORD_003c60a8 + unaff_EDI + 3) == '\0') {
    piVar2[5] = 0;
    piVar2[6] = 0;
    piVar2[7] = 0;
    piVar2[8] = 0;
    piVar2[9] = 0;
    piVar2[10] = 0;
    piVar2[0xb] = 0;
    piVar2[0xc] = 0;
    piVar2[0xd] = 0;
    piVar2[0xe] = 0;
    piVar2[0xf] = 0x13;
    piVar2[0x10] = 0;
    piVar2[0x11] = 0;
    piVar2[0x12] = -1;
    piVar2[0x13] = 0;
    piVar2[0x14] = 0;
    piVar2[0x15] = 0;
    *piVar2 = unaff_EDI + 0x3bed27;
    uVar3 = 0;
    do {
      *(undefined4 *)((int)piVar2 + uVar3 + 0x58) = 0;
      uVar3 = uVar3 + 4;
    } while (uVar3 < 0x1c);
    piVar2[0x17] = 1;
    piVar2[0x18] = 0;
    piVar2[0x19] = 0;
    piVar2[0x1a] = 0x3f800000;
    piVar2[0x1b] = 0;
    piVar2[0x1c] = 0;
    piVar2[0x1d] = 0;
    piVar2[0x1e] = 0;
    piVar2[0x1f] = 0;
    piVar2[0x16] = (int)(piVar2 + 0x1c);
    uVar3 = 0;
    do {
      *(undefined4 *)((int)piVar2 + uVar3 + 0x80) = 0;
      uVar3 = uVar3 + 4;
    } while (uVar3 < 0x1c);
    piVar2[0x21] = 1;
    piVar2[0x20] = (int)(piVar2 + 0x26);
    *(undefined2 *)(piVar2 + 0x28) = 0;
    piVar2[0x22] = 0;
    piVar2[0x23] = 0;
    piVar2[0x24] = 0x3f800000;
    piVar2[0x25] = 0;
    piVar2[0x26] = 0;
    piVar2[0x27] = 0;
    piVar2[0x29] = 0;
    piVar2[0x2a] = 0;
    piVar2[0x2b] = 0;
    piVar2[0x2c] = 0;
    piVar2[0x2d] = 0;
    piVar2[0x2e] = 0;
    piVar2[0x2f] = 0;
    piVar2[0x30] = 0;
    piVar2[0x31] = 0;
    piVar2[0x32] = 0;
    return piVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_000da200(unaff_EDI + 0x2a8bdb,0x48c,unaff_EDI + 0x2a77c7,unaff_EDI + 0x3c5da7);
}

