
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original name: sized_convert<32, true>
   DWARF original prototype: bool sized_convert<32,_true>(Binary_to_elf * this, Task * task) */

bool __thiscall gold::Binary_to_elf::sized_convert<32,_true>(Binary_to_elf *this,Task *task)

{
  uchar *pout;
  string mangled_name;
  string start_symbol_name;
  string end_symbol_name;
  string size_symbol_name;
  uchar e_ident [16];
  Stringpool strtab;
  Stringpool shstrtab;
  File_read f;
  
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

char FUN_00369e80(ushort *param_1)

{
  ushort uVar1;
  undefined1 *puVar2;
  undefined **ppuVar3;
  byte *pbVar4;
  undefined4 *puVar5;
  int *piVar6;
  size_t sVar7;
  undefined4 *puVar8;
  undefined4 auStack_220 [4];
  void *local_210;
  undefined **local_20c;
  undefined **local_208;
  undefined **local_204;
  undefined **local_200;
  int local_1fc;
  byte **local_1f8;
  undefined1 *local_1f4;
  undefined1 *local_1f0;
  undefined1 *local_1ec;
  uint local_1e8;
  char local_1e1;
  byte *local_1e0;
  undefined1 **local_1dc;
  int local_1d8;
  int local_1d4;
  size_t local_1d0;
  undefined1 **local_1cc;
  undefined1 **local_1c8;
  byte *local_1c4;
  undefined1 **local_1c0;
  undefined1 *local_1bc;
  undefined4 **local_1b8;
  size_t local_1b4;
  undefined **local_1b0;
  undefined4 *local_1a0;
  byte *local_19c;
  int local_198;
  byte local_194 [16];
  undefined1 *local_184;
  int local_180;
  undefined1 local_17c [16];
  undefined1 *local_16c;
  int local_168;
  undefined1 local_164 [16];
  undefined1 *local_154;
  int local_150;
  undefined1 local_14c [16];
  byte *local_13c;
  undefined2 local_138;
  undefined1 uStack_136;
  undefined1 uStack_135;
  byte local_134;
  undefined1 uStack_133;
  undefined2 uStack_132;
  undefined2 local_130;
  undefined2 uStack_12e;
  undefined1 local_124 [56];
  int local_ec;
  undefined1 local_d8 [56];
  int local_a0;
  undefined1 *local_8c;
  undefined4 local_88;
  undefined1 local_84 [16];
  undefined4 local_74;
  undefined1 local_70;
  undefined4 local_6c;
  size_t local_68;
  int local_64;
  undefined1 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 *local_40;
  undefined4 *local_3c;
  undefined4 local_38;
  undefined4 ***local_34;
  undefined4 ***local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined1 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  undefined1 *puVar9;
  
  local_8c = local_84;
  local_1c0 = &local_8c;
  uStack_14 = 0x369e94;
  local_1b0 = &__DT_PLTGOT;
  local_40 = &local_48;
  local_34 = &local_34;
  local_88 = 0;
  local_84[0] = 0;
  local_74 = 0xffffffff;
  local_70 = 0;
  local_6c = 0;
  local_68 = 0;
  local_64 = 0;
  local_60 = 0;
  local_5c = 0;
  local_58 = 0;
  local_54 = 0;
  local_50 = 0;
  local_48 = 0;
  local_44 = 0;
  local_38 = 0;
  local_2c = 0;
  local_28 = 0;
  local_24 = 1;
  local_20 = 0;
  local_3c = local_40;
  local_30 = local_34;
                    /* try { // try from 00369f4b to 00369fe9 has its CatchHandler @ 0036a996 */
  local_1e1 = FUN_0023cb20();
  sVar7 = local_68;
  if (local_1e1 == '\0') {
    auStack_220[0] = 0x36a85d;
    piVar6 = __errno_location();
    puVar9 = &stack0xfffffdd4;
    strerror(*piVar6);
    gettext();
                    /* try { // try from 0036a891 to 0036a895 has its CatchHandler @ 0036a996 */
    FUN_0023b810();
LAB_0036a750:
    puVar8 = (undefined4 *)(puVar9 + 0x10);
LAB_0036a753:
    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;
    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;
    FUN_0023e020();
    return local_1e1;
  }
  local_1b4 = local_68;
  if (local_64 != 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0036a951 to 0036a955 has its CatchHandler @ 0036a996 */
    FUN_002446e0();
  }
  if (local_68 == 0) {
    local_210 = (void *)0x0;
  }
  else {
    auStack_220[0] = 0;
    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);
  }
  local_1e8 = sVar7 + 3 & 0xfffffffc;
  local_1e0 = local_194;
  auStack_220[0] = 0;
  local_19c = local_1e0;
  FUN_0014fca0();
  pbVar4 = local_19c;
  if (local_198 != 0) {
    do {
      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {
        *pbVar4 = 0x5f;
      }
      pbVar4 = pbVar4 + 1;
    } while (local_19c + local_198 != pbVar4);
  }
  local_1f8 = &local_13c;
                    /* try { // try from 0036a04f to 0036a11d has its CatchHandler @ 0036aa9f */
  FUN_0014f900();
  pbVar4 = local_19c;
  local_1c4 = &local_134;
  sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));
  if (local_13c == local_1c4) {
    if (sVar7 != 0) {
      if (sVar7 == 1) {
        *local_19c = local_134;
        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));
      }
      else {
        memcpy(local_19c,local_1c4,sVar7);
        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));
      }
    }
    local_19c[sVar7] = 0;
    pbVar4 = local_1c4;
  }
  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {
    local_19c = local_13c;
    pbVar4 = &local_134;
    local_13c = local_1c4;
  }
  else {
    local_13c = pbVar4;
    local_134 = (byte)local_194._0_4_;
    uStack_133 = SUB41(local_194._0_4_,1);
    uStack_132 = SUB42(local_194._0_4_,2);
    pbVar4 = local_1c4;
  }
  local_1c4 = pbVar4;
  local_138 = 0;
  uStack_136 = 0;
  uStack_135 = 0;
  *local_13c = 0;
  if (local_13c != local_1c4) {
    FUN_003ae080();
  }
  local_1ec = local_17c;
  local_1c8 = &local_184;
  local_184 = local_1ec;
  FUN_0014fca0();
  if (0x7fffffffU - local_180 < 6) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0036a966 to 0036a96a has its CatchHandler @ 0036aa94 */
    FUN_003f3a70();
  }
                    /* try { // try from 0036a14d to 0036a151 has its CatchHandler @ 0036aa94 */
  FUN_003b7890();
  local_1f0 = local_164;
  local_1cc = &local_16c;
  local_16c = local_1f0;
                    /* try { // try from 0036a186 to 0036a18a has its CatchHandler @ 0036aaa3 */
  FUN_0014fca0();
  if (0x7fffffffU - local_168 < 4) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0036a8f9 to 0036a8fd has its CatchHandler @ 0036a98e */
    FUN_003f3a70();
  }
                    /* try { // try from 0036a1ba to 0036a1be has its CatchHandler @ 0036a98e */
  FUN_003b7890();
  local_1f4 = local_14c;
  local_1dc = &local_154;
  local_154 = local_1f4;
                    /* try { // try from 0036a1f3 to 0036a1f7 has its CatchHandler @ 0036a992 */
  FUN_0014fca0();
  if (0x7fffffffU - local_150 < 5) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0036a90e to 0036a912 has its CatchHandler @ 0036aa86 */
    FUN_003f3a70();
  }
                    /* try { // try from 0036a229 to 0036a22d has its CatchHandler @ 0036aa86 */
  FUN_003b7890();
  local_1bc = local_124;
                    /* try { // try from 0036a242 to 0036a246 has its CatchHandler @ 0036aa8d */
  FUN_00346670();
                    /* try { // try from 0036a255 to 0036a2a8 has its CatchHandler @ 0036aa98 */
  FUN_00349de0();
  ppuVar3 = local_1b0;
  FUN_00349de0();
  FUN_00349de0();
  FUN_0034b2b0();
  FUN_00346670();
  local_200 = ppuVar3 + -0x57f35;
                    /* try { // try from 0036a2be to 0036a527 has its CatchHandler @ 0036aaa7 */
  FUN_00349de0();
  local_204 = ppuVar3 + -0x57f9c;
  FUN_00349de0();
  local_208 = ppuVar3 + -0x57f94;
  FUN_00349de0();
  local_20c = ppuVar3 + -0x57f92;
  FUN_00349de0();
  FUN_0034b2b0();
  local_1fc = local_1e8 + 0xfc;
  local_1d0 = local_1e8 + 0x13c;
  if (local_ec == 0) {
                    /* try { // try from 0036a96b to 0036a98d has its CatchHandler @ 0036aaa7 */
    FUN_00369780();
LAB_0036a970:
    FUN_00369780();
LAB_0036a975:
    FUN_00369780();
LAB_0036a97a:
    FUN_00369780();
LAB_0036a97f:
    FUN_00369780();
  }
  else {
    local_1d4 = local_ec + local_1d0;
    if (local_a0 == 0) goto LAB_0036a970;
    local_1d8 = local_a0 + local_1d4;
    puVar5 = (undefined4 *)FUN_003ac450();
    uStack_135 = 0;
    local_134 = 0;
    uStack_133 = 0;
    local_138 = 0x201;
    uStack_136 = 1;
    uStack_132 = 0;
    local_130 = 0;
    puVar5[1] = 0x10201;
    uStack_12e = 0;
    local_1b8 = &local_1a0;
    puVar5[2] = 0;
    *puVar5 = 0x464c457f;
    puVar5[3] = 0;
    *(undefined2 *)(puVar5 + 4) = 0x100;
    uVar1 = *param_1;
    puVar5[5] = 0x1000000;
    puVar5[6] = 0;
    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;
    local_1a0 = puVar5 + 0xd;
    puVar5[7] = 0;
    puVar5[8] = 0x34000000;
    puVar5[9] = 0;
    puVar5[10] = 0x3400;
    puVar5[0xb] = 0x28000000;
    puVar5[0xc] = 0x4000500;
    local_13c = (byte *)0x464c457f;
    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);
    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);
    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);
    if (local_ec == 0) goto LAB_0036a975;
    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);
    if (local_a0 == 0) goto LAB_0036a97a;
    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);
    if (local_1b4 != 0) {
      memcpy(local_1a0,local_210,local_1b4);
      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);
      local_1d0 = local_1e8 - local_1b4;
      memset(local_1a0,0,local_1d0);
      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);
    }
    pbVar4 = local_1c4;
    puVar8 = auStack_220;
    local_13c = local_1c4;
    local_138 = 0;
    uStack_136 = 0;
    uStack_135 = 0;
    local_134 = 0;
                    /* try { // try from 0036a574 to 0036a578 has its CatchHandler @ 0036aaae */
    FUN_003699e0(param_1,local_1f8,local_1bc,0);
    if (local_13c != pbVar4) {
      FUN_003ae080();
    }
    puVar2 = local_1bc;
                    /* try { // try from 0036a5bb to 0036a6c1 has its CatchHandler @ 0036aaa7 */
    FUN_003699e0(param_1,local_1c8,local_1bc,0);
    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);
    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);
    if (local_ec == 0) goto LAB_0036a97f;
    FUN_00346850();
    if (local_ec != 0) {
      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);
      if (local_a0 == 0) goto LAB_0036a989;
      FUN_00346850();
      if (local_a0 == 0) {
                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */
        FUN_00369780();
LAB_0036a918:
                    /* WARNING: Subroutine does not return */
        FUN_002446e0();
      }
      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);
      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;
      *(undefined4 **)(param_1 + 0x12) = puVar5;
      *(int *)(param_1 + 0x14) = local_1d8;
      FUN_0023dd30();
      FUN_00347ed0();
      FUN_00347ed0();
      if (local_154 != local_1f4) {
        FUN_003ae080();
      }
      if (local_16c != local_1f0) {
        FUN_003ae080();
      }
      if (local_184 != local_1ec) {
        FUN_003ae080();
      }
      if (local_19c == local_1e0) goto LAB_0036a753;
      puVar9 = &stack0xfffffdd0;
      FUN_003ae080();
      goto LAB_0036a750;
    }
  }
  FUN_00369780();
LAB_0036a989:
  FUN_00369780();
                    /* catch() { ... } // from try @ 0036a1ba with catch @ 0036a98e
                       catch() { ... } // from try @ 0036a8f9 with catch @ 0036a98e */
  if (local_16c != local_1f0) {
    FUN_003ae080();
  }
  if (local_184 != local_1ec) {
    FUN_003ae080();
  }
  if (local_19c != local_1e0) {
    FUN_003ae080();
  }
  FUN_0023e020();
                    /* WARNING: Subroutine does not return */
  FUN_004451f0();
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
LEA EAX,[EBP + -0x80]
LEA ECX,[EBP + 0xffffff78]
PUSH EBX
CALL 0x00050b50
ADD EBX,0x28016c
SUB ESP,0x210
MOV dword ptr [EBP + 0xffffff78],EAX
LEA EAX,[EBP + -0x44]
MOV dword ptr [EBP + -0x3c],EAX
MOV dword ptr [EBP + -0x38],EAX
LEA EAX,[EBP + -0x30]
MOV dword ptr [EBP + -0x2c],EAX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + 0xfffffe54],EBX
ADD EAX,0xc
MOV dword ptr [EBP + 0xfffffe44],ECX
MOV dword ptr [EBP + 0xffffff7c],0x0
MOV byte ptr [EBP + -0x80],0x0
MOV dword ptr [EBP + -0x70],0xffffffff
MOV byte ptr [EBP + -0x6c],0x0
MOV dword ptr [EBP + -0x68],0x0
MOV dword ptr [EBP + -0x64],0x0
MOV dword ptr [EBP + -0x60],0x0
MOV byte ptr [EBP + -0x5c],0x0
MOV dword ptr [EBP + -0x58],0x0
MOV dword ptr [EBP + -0x54],0x0
MOV dword ptr [EBP + -0x50],0x0
MOV dword ptr [EBP + -0x4c],0x0
MOV dword ptr [EBP + -0x44],0x0
MOV dword ptr [EBP + -0x40],0x0
MOV dword ptr [EBP + -0x34],0x0
MOV dword ptr [EBP + -0x28],0x0
MOV dword ptr [EBP + -0x24],0x0
MOV byte ptr [EBP + -0x20],0x1
MOV dword ptr [EBP + -0x1c],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xc]
PUSH ECX
CALL 0x0023cb20
MOV byte ptr [EBP + 0xfffffe23],AL
ADD ESP,0x10
TEST AL,AL
JZ 0x0036a850
MOV EAX,dword ptr [EBP + -0x64]
MOV dword ptr [EBP + 0xfffffe50],EAX
MOV ESI,EAX
XOR EAX,EAX
OR EAX,dword ptr [EBP + -0x60]
JNZ 0x0036a937
MOV EAX,dword ptr [EBP + 0xfffffe50]
TEST EAX,EAX
JZ 0x0036a780
PUSH 0x0
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH 0x0
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + 0xfffffe44]
CALL 0x0023eb50
MOV dword ptr [EBP + 0xfffffdf4],EAX
ADD ESP,0x20
ADD ESI,0x3
MOV EDI,dword ptr [EBP + 0x8]
MOV EAX,ESI
LEA ESI,[EBP + 0xfffffe68]
AND EAX,0xfffffffc
MOV dword ptr [EBP + 0xfffffe1c],EAX
LEA EAX,[EBP + 0xfffffe70]
MOV dword ptr [EBP + 0xfffffe24],EAX
MOV dword ptr [EBP + 0xfffffe68],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0xc]
PUSH 0x0
MOV EDX,dword ptr [EDI + 0x10]
ADD EDX,EAX
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x0014fca0
MOV ECX,dword ptr [EBP + 0xfffffe68]
MOV EDI,dword ptr [EBP + 0xfffffe54]
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xfffffe6c]
MOV EAX,ECX
LEA EDI,[EDI + 0xffeb80a0]
TEST EDX,EDX
JZ 0x0036a031
LEA ESI,[ESI]
NOP
MOVZX EDX,byte ptr [EAX]
TEST byte ptr [EDI + EDX*0x2],0x8c
JNZ 0x0036a022
MOV byte ptr [EAX],0x5f
MOV ECX,dword ptr [EBP + 0xfffffe68]
MOV EDX,dword ptr [EBP + 0xfffffe6c]
ADD EAX,0x1
ADD EDX,ECX
CMP EDX,EAX
JNZ 0x0036a010
MOV EAX,dword ptr [EBP + 0xfffffe54]
SUB ESP,0x4
LEA ECX,[EBP + 0xfffffec8]
PUSH ESI
LEA EAX,[EAX + 0xffeb365e]
MOV dword ptr [EBP + 0xfffffe0c],ECX
PUSH EAX
PUSH ECX
CALL 0x0014f900
MOV ECX,dword ptr [EBP + 0xfffffec8]
LEA EBX,[EBP + 0xfffffed0]
ADD ESP,0xc
MOV EAX,dword ptr [EBP + 0xfffffe68]
MOV EDX,dword ptr [EBP + 0xfffffecc]
MOV dword ptr [EBP + 0xfffffe40],EBX
CMP ECX,EBX
JZ 0x0036a800
MOV ESI,dword ptr [EBP + 0xfffffed0]
CMP EAX,dword ptr [EBP + 0xfffffe24]
JZ 0x0036a8a0
MOV EDI,dword ptr [EBP + 0xfffffe70]
MOV dword ptr [EBP + 0xfffffe68],ECX
MOV dword ptr [EBP + 0xfffffe6c],EDX
MOV dword ptr [EBP + 0xfffffe70],ESI
TEST EAX,EAX
JZ 0x0036a8b2
MOV dword ptr [EBP + 0xfffffec8],EAX
MOV dword ptr [EBP + 0xfffffed0],EDI
MOV dword ptr [EBP + 0xfffffecc],0x0
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [EBP + 0xfffffec8]
CMP EAX,dword ptr [EBP + 0xfffffe40]
JZ 0x0036a0e8
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
LEA EAX,[EBP + 0xfffffe88]
MOV EDX,dword ptr [EBP + 0xfffffe6c]
LEA ECX,[EBP + 0xfffffe80]
PUSH 0x0
MOV dword ptr [EBP + 0xfffffe18],EAX
MOV dword ptr [EBP + 0xfffffe80],EAX
MOV EAX,dword ptr [EBP + 0xfffffe68]
MOV dword ptr [EBP + 0xfffffe3c],ECX
ADD EDX,EAX
PUSH EDX
PUSH EAX
PUSH ECX
CALL 0x0014fca0
MOV EAX,0x7fffffff
SUB EAX,dword ptr [EBP + 0xfffffe84]
ADD ESP,0x10
CMP EAX,0x5
JBE 0x0036a956
MOV EBX,dword ptr [EBP + 0xfffffe54]
SUB ESP,0x4
PUSH 0x6
LEA EAX,[EBX + 0xffe87596]
PUSH EAX
PUSH dword ptr [EBP + 0xfffffe3c]
CALL 0x003b7890
LEA EAX,[EBP + 0xfffffea0]
MOV EDX,dword ptr [EBP + 0xfffffe6c]
ADD ESP,0x10
LEA ECX,[EBP + 0xfffffe98]
MOV dword ptr [EBP + 0xfffffe14],EAX
MOV dword ptr [EBP + 0xfffffe98],EAX
MOV EAX,dword ptr [EBP + 0xfffffe68]
PUSH 0x0
ADD EDX,EAX
MOV dword ptr [EBP + 0xfffffe38],ECX
PUSH EDX
PUSH EAX
PUSH ECX
CALL 0x0014fca0
MOV EAX,0x7fffffff
SUB EAX,dword ptr [EBP + 0xfffffe9c]
ADD ESP,0x10
CMP EAX,0x3
JBE 0x0036a8e9
MOV EBX,dword ptr [EBP + 0xfffffe54]
SUB ESP,0x4
PUSH 0x4
LEA EAX,[EBX + 0xffe82a94]
PUSH EAX
PUSH dword ptr [EBP + 0xfffffe38]
CALL 0x003b7890
LEA EAX,[EBP + 0xfffffeb8]
MOV EDX,dword ptr [EBP + 0xfffffe6c]
ADD ESP,0x10
LEA ECX,[EBP + 0xfffffeb0]
MOV dword ptr [EBP + 0xfffffe10],EAX
MOV dword ptr [EBP + 0xfffffeb0],EAX
MOV EAX,dword ptr [EBP + 0xfffffe68]
PUSH 0x0
ADD EDX,EAX
MOV dword ptr [EBP + 0xfffffe28],ECX
PUSH EDX
PUSH EAX
PUSH ECX
CALL 0x0014fca0
MOV EAX,0x7fffffff
SUB EAX,dword ptr [EBP + 0xfffffeb4]
ADD ESP,0x10
CMP EAX,0x4
JBE 0x0036a8fe
MOV ESI,dword ptr [EBP + 0xfffffe54]
SUB ESP,0x4
PUSH 0x5
LEA EAX,[ESI + 0xffea442d]
MOV EBX,ESI
PUSH EAX
PUSH dword ptr [EBP + 0xfffffe28]
CALL 0x003b7890
ADD ESP,0xc
LEA EDI,[EBP + 0xfffffee0]
PUSH 0x0
PUSH 0x1
PUSH EDI
MOV dword ptr [EBP + 0xfffffe48],EDI
CALL 0x00346670
ADD ESP,0x10
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + 0xfffffe80]
PUSH EDI
CALL 0x00349de0
MOV ESI,dword ptr [EBP + 0xfffffe48]
ADD ESP,0x10
MOV EDI,dword ptr [EBP + 0xfffffe54]
PUSH 0x0
PUSH 0x0
MOV EBX,EDI
PUSH dword ptr [EBP + 0xfffffe98]
PUSH ESI
CALL 0x00349de0
ADD ESP,0x10
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + 0xfffffeb0]
PUSH ESI
CALL 0x00349de0
MOV dword ptr [ESP],ESI
CALL 0x0034b2b0
ADD ESP,0xc
LEA ESI,[EBP + 0xffffff2c]
PUSH 0x0
PUSH 0x1
PUSH ESI
CALL 0x00346670
ADD ESP,0x10
LEA ECX,[EDI + 0xffea032c]
PUSH 0x0
PUSH 0x0
PUSH ECX
PUSH ESI
MOV dword ptr [EBP + 0xfffffe04],ECX
CALL 0x00349de0
ADD ESP,0x10
LEA ECX,[EDI + 0xffea0190]
PUSH 0x0
PUSH 0x0
PUSH ECX
PUSH ESI
MOV dword ptr [EBP + 0xfffffe00],ECX
CALL 0x00349de0
ADD ESP,0x10
LEA ECX,[EDI + 0xffea01b0]
PUSH 0x0
PUSH 0x0
PUSH ECX
PUSH ESI
MOV dword ptr [EBP + 0xfffffdfc],ECX
CALL 0x00349de0
ADD ESP,0x10
LEA ECX,[EDI + 0xffea01b8]
PUSH 0x0
PUSH 0x0
PUSH ECX
PUSH ESI
MOV dword ptr [EBP + 0xfffffdf8],ECX
CALL 0x00349de0
MOV dword ptr [ESP],ESI
CALL 0x0034b2b0
MOV EAX,dword ptr [EBP + 0xfffffe1c]
ADD ESP,0x10
LEA ECX,[EAX + 0xfc]
ADD EAX,0x13c
MOV dword ptr [EBP + 0xfffffe34],EAX
MOV EAX,dword ptr [EBP + 0xffffff18]
MOV dword ptr [EBP + 0xfffffe08],ECX
TEST EAX,EAX
JZ 0x0036a96b
ADD EAX,dword ptr [EBP + 0xfffffe34]
MOV dword ptr [EBP + 0xfffffe30],EAX
MOV EAX,dword ptr [EBP + 0xffffff64]
TEST EAX,EAX
JZ 0x0036a970
ADD EAX,dword ptr [EBP + 0xfffffe30]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EAX
MOV dword ptr [EBP + 0xfffffe2c],EAX
CALL 0x003ac450
MOV EDI,EAX
MOV EAX,0x201
XOR EBX,EBX
MOV ECX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + 0xfffffece],0x0
ADD ESP,0x10
MOV word ptr [EBP + 0xfffffecc],AX
MOV byte ptr [EBP + 0xfffffece],0x1
MOV EAX,dword ptr [EBP + 0xfffffecc]
MOV dword ptr [EBP + 0xfffffed2],0x0
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [EBP + 0xfffffed0]
MOV word ptr [EBP + 0xfffffed6],BX
LEA EBX,[EBP + 0xfffffe64]
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [EBP + 0xfffffed4]
MOV dword ptr [EDI],0x464c457f
MOV dword ptr [EDI + 0xc],EAX
MOV EAX,0x100
MOV word ptr [EDI + 0x10],AX
MOVZX EAX,word ptr [ECX]
MOV dword ptr [EDI + 0x14],0x1000000
ROL AX,0x8
MOV dword ptr [EDI + 0x18],0x0
MOV word ptr [EDI + 0x12],AX
LEA EAX,[EDI + 0x34]
MOV dword ptr [EDI + 0x1c],0x0
MOV dword ptr [EDI + 0x20],0x34000000
MOV dword ptr [EDI + 0x24],0x0
MOV dword ptr [EDI + 0x28],0x3400
MOV dword ptr [EDI + 0x2c],0x28000000
MOV dword ptr [EDI + 0x30],0x4000500
MOV dword ptr [EBP + 0xfffffe64],EAX
PUSH EBX
MOV dword ptr [EBP + 0xfffffec8],0x464c457f
PUSH 0x0
MOV dword ptr [EBP + 0xfffffe4c],EBX
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
MOV EAX,dword ptr [EBP + 0xfffffe54]
PUSH 0x0
LEA EAX,[EAX + 0xffeb3b16]
PUSH 0x0
PUSH 0x0
PUSH ESI
PUSH EAX
PUSH ECX
CALL 0x00369940
ADD ESP,0x30
PUSH EBX
PUSH 0x0
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + 0xfffffe50]
PUSH 0xfc
PUSH 0x3
PUSH 0x1
PUSH ESI
PUSH dword ptr [EBP + 0xfffffe04]
PUSH dword ptr [EBP + 0x8]
CALL 0x00369940
ADD ESP,0x30
PUSH EBX
PUSH 0x10
PUSH 0x4
PUSH 0x1
PUSH 0x3
PUSH 0x40
PUSH dword ptr [EBP + 0xfffffe08]
PUSH 0x0
PUSH 0x2
PUSH ESI
PUSH dword ptr [EBP + 0xfffffe00]
PUSH dword ptr [EBP + 0x8]
CALL 0x00369940
MOV EAX,dword ptr [EBP + 0xffffff18]
ADD ESP,0x30
TEST EAX,EAX
JZ 0x0036a975
PUSH dword ptr [EBP + 0xfffffe4c]
PUSH 0x0
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + 0xfffffe34]
PUSH 0x0
PUSH 0x3
PUSH ESI
PUSH dword ptr [EBP + 0xfffffdfc]
PUSH dword ptr [EBP + 0x8]
CALL 0x00369940
MOV EAX,dword ptr [EBP + 0xffffff64]
ADD ESP,0x30
TEST EAX,EAX
JZ 0x0036a97a
PUSH dword ptr [EBP + 0xfffffe4c]
PUSH 0x0
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + 0xfffffe30]
PUSH 0x0
PUSH 0x3
PUSH ESI
PUSH dword ptr [EBP + 0xfffffdf8]
PUSH dword ptr [EBP + 0x8]
CALL 0x00369940
MOV ECX,dword ptr [EBP + 0xfffffe50]
ADD ESP,0x30
TEST ECX,ECX
JNZ 0x0036a790
SUB ESP,0x4
PUSH dword ptr [EBP + 0xfffffe4c]
MOV EBX,dword ptr [EBP + 0xfffffe40]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + 0xfffffe48]
PUSH dword ptr [EBP + 0xfffffe0c]
PUSH dword ptr [EBP + 0x8]
MOV dword ptr [EBP + 0xfffffec8],EBX
MOV dword ptr [EBP + 0xfffffecc],0x0
MOV byte ptr [EBP + 0xfffffed0],0x0
CALL 0x003699e0
MOV EAX,dword ptr [EBP + 0xfffffec8]
ADD ESP,0x20
CMP EAX,EBX
JZ 0x0036a598
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
MOV EBX,dword ptr [EBP + 0xfffffe48]
SUB ESP,0x4
PUSH dword ptr [EBP + 0xfffffe4c]
PUSH 0x1
PUSH dword ptr [EBP + 0xfffffe50]
PUSH 0x0
PUSH EBX
PUSH dword ptr [EBP + 0xfffffe3c]
PUSH dword ptr [EBP + 0x8]
CALL 0x003699e0
ADD ESP,0x1c
PUSH dword ptr [EBP + 0xfffffe4c]
PUSH 0x1
PUSH 0x0
PUSH dword ptr [EBP + 0xfffffe50]
PUSH EBX
PUSH dword ptr [EBP + 0xfffffe38]
PUSH dword ptr [EBP + 0x8]
CALL 0x003699e0
ADD ESP,0x1c
PUSH dword ptr [EBP + 0xfffffe4c]
PUSH 0xfff1
PUSH 0x0
PUSH dword ptr [EBP + 0xfffffe50]
PUSH EBX
PUSH dword ptr [EBP + 0xfffffe28]
PUSH dword ptr [EBP + 0x8]
CALL 0x003699e0
MOV EAX,dword ptr [EBP + 0xffffff18]
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0036a97f
SUB ESP,0x4
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EAX
PUSH dword ptr [EBP + 0xfffffe64]
PUSH dword ptr [EBP + 0xfffffe48]
CALL 0x00346850
MOV EAX,dword ptr [EBP + 0xffffff18]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0036a984
MOV EDX,dword ptr [EBP + 0xffffff64]
ADD EAX,dword ptr [EBP + 0xfffffe64]
MOV dword ptr [EBP + 0xfffffe64],EAX
TEST EDX,EDX
JZ 0x0036a989
SUB ESP,0x4
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x00346850
MOV EAX,dword ptr [EBP + 0xffffff64]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0036a913
ADD EAX,dword ptr [EBP + 0xfffffe64]
MOV dword ptr [EBP + 0xfffffe64],EAX
SUB EAX,EDI
CMP EAX,dword ptr [EBP + 0xfffffe2c]
JNZ 0x0036a918
MOV EAX,dword ptr [EBP + 0x8]
SUB ESP,0x8
MOV dword ptr [EAX + 0x24],EDI
MOV EDI,dword ptr [EBP + 0xfffffe2c]
MOV dword ptr [EAX + 0x28],EDI
MOV EDI,dword ptr [EBP + 0xfffffe54]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0xfffffe44]
MOV EBX,EDI
CALL 0x0023dd30
MOV dword ptr [ESP],ESI
CALL 0x00347ed0
POP EAX
PUSH dword ptr [EBP + 0xfffffe48]
CALL 0x00347ed0
MOV EAX,dword ptr [EBP + 0xfffffeb0]
ADD ESP,0x10
CMP EAX,dword ptr [EBP + 0xfffffe10]
JZ 0x0036a6f3
SUB ESP,0xc
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xfffffe98]
CMP EAX,dword ptr [EBP + 0xfffffe14]
JZ 0x0036a713
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xfffffe80]
CMP EAX,dword ptr [EBP + 0xfffffe18]
JZ 0x0036a733
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xfffffe68]
CMP EAX,dword ptr [EBP + 0xfffffe24]
JZ 0x0036a753
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EBP + 0xfffffe44]
MOV EBX,dword ptr [EBP + 0xfffffe54]
CALL 0x0023e020
MOVZX EAX,byte ptr [EBP + 0xfffffe23]
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [EBP + 0xfffffdf4],0x0
JMP 0x00369fac
SUB ESP,0x4
PUSH dword ptr [EBP + 0xfffffe50]
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH dword ptr [EBP + 0xfffffdf4]
PUSH dword ptr [EBP + 0xfffffe64]
CALL 0x000392d0
MOV ECX,dword ptr [EBP + 0xfffffe50]
MOV EAX,dword ptr [EBP + 0xfffffe64]
ADD ESP,0xc
MOV EDX,dword ptr [EBP + 0xfffffe1c]
MOV EBX,dword ptr [EBP + 0xfffffe54]
ADD EAX,ECX
SUB EDX,ECX
MOV dword ptr [EBP + 0xfffffe64],EAX
PUSH EDX
PUSH 0x0
PUSH EAX
MOV dword ptr [EBP + 0xfffffe34],EDX
CALL 0x00039900
MOV EDX,dword ptr [EBP + 0xfffffe34]
ADD ESP,0x10
ADD dword ptr [EBP + 0xfffffe64],EDX
JMP 0x0036a539
TEST EDX,EDX
JZ 0x0036a838
CMP EDX,0x1
JZ 0x0036a8cf
SUB ESP,0x4
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EDX
PUSH dword ptr [EBP + 0xfffffe40]
PUSH EAX
CALL 0x000392d0
MOV EDX,dword ptr [EBP + 0xfffffecc]
MOV EAX,dword ptr [EBP + 0xfffffe68]
ADD ESP,0x10
LEA ESI,[ESI]
MOV dword ptr [EBP + 0xfffffe6c],EDX
MOV byte ptr [EAX + EDX*0x1],0x0
MOV EAX,dword ptr [EBP + 0xfffffec8]
JMP 0x0036a0bb
MOV ESI,dword ptr [EBP + 0xfffffe54]
MOV EBX,ESI
CALL 0x00039480
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x00039810
MOV ECX,dword ptr [EBP + 0xfffffe54]
MOV EDI,EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EBX,ECX
MOV ESI,dword ptr [EAX + 0xc]
LEA EAX,[ECX + 0xffeb364a]
MOV dword ptr [ESP],EAX
CALL 0x00039440
ADD ESP,0xc
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x0023b810
JMP 0x0036a750
MOV dword ptr [EBP + 0xfffffe68],ECX
MOV dword ptr [EBP + 0xfffffe6c],EDX
MOV dword ptr [EBP + 0xfffffe70],ESI
MOV EAX,dword ptr [EBP + 0xfffffe40]
MOV dword ptr [EBP + 0xfffffec8],EAX
LEA EAX,[EBP + 0xfffffed0]
MOV dword ptr [EBP + 0xfffffe40],EAX
JMP 0x0036a0bb
MOVZX EDX,byte ptr [EBP + 0xfffffed0]
MOV byte ptr [EAX],DL
MOV EDX,dword ptr [EBP + 0xfffffecc]
MOV EAX,dword ptr [EBP + 0xfffffe68]
JMP 0x0036a838
MOV EBX,dword ptr [EBP + 0xfffffe54]
SUB ESP,0xc
LEA EAX,[EBX + 0xffe8206e]
PUSH EAX
CALL 0x003f3a70
MOV EBX,dword ptr [EBP + 0xfffffe54]
SUB ESP,0xc
LEA EAX,[EBX + 0xffe8206e]
PUSH EAX
CALL 0x003f3a70
CALL 0x00369780
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EDX
LEA EAX,[EBX + 0xffeb369c]
PUSH EAX
LEA EAX,[EBX + 0xffeb3667]
PUSH 0x102
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH ECX
LEA EAX,[EBX + 0xffeb36bc]
PUSH EAX
LEA EAX,[EBX + 0xffe634b4]
PUSH 0xc0
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xfffffe54]
SUB ESP,0xc
LEA EAX,[EBX + 0xffe8206e]
PUSH EAX
CALL 0x003f3a70
CALL 0x00369780
CALL 0x00369780
CALL 0x00369780
CALL 0x00369780
CALL 0x00369780
CALL 0x00369780
CALL 0x00369780
MOV ESI,EAX
JMP 0x0036aa08
MOV EAX,dword ptr [EBP + 0xfffffe98]
CMP EAX,dword ptr [EBP + 0xfffffe14]
JZ 0x0036aa28
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xfffffe80]
CMP EAX,dword ptr [EBP + 0xfffffe18]
JZ 0x0036aa48
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xfffffe68]
CMP EAX,dword ptr [EBP + 0xfffffe24]
JZ 0x0036aa68
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xfffffe54]
PUSH EAX
CALL 0x003ae080
ADD ESP,0x10
SUB ESP,0xc
MOV EDI,dword ptr [EBP + 0xfffffe54]
PUSH dword ptr [EBP + 0xfffffe44]
MOV EBX,EDI
CALL 0x0023e020
MOV dword ptr [ESP],ESI
CALL 0x004451f0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nchar FUN_00369e80(ushort *param_1)\n\n{\n  ushort uVar1;\n  undefined1 *puVar2;\n  undefined **ppuVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  size_t sVar7;\n  undefined4 *puVar8;\n  undefined4 auStack_220 [4];\n  void *local_210;\n  undefined **local_20c;\n  undefined **local_208;\n  undefined **local_204;\n  undefined **local_200;\n  int local_1fc;\n  byte **local_1f8;\n  undefined1 *local_1f4;\n  undefined1 *local_1f0;\n  undefined1 *local_1ec;\n  uint local_1e8;\n  char local_1e1;\n  byte *local_1e0;\n  undefined1 **local_1dc;\n  int local_1d8;\n  int local_1d4;\n  size_t local_1d0;\n  undefined1 **local_1cc;\n  undefined1 **local_1c8;\n  byte *local_1c4;\n  undefined1 **local_1c0;\n  undefined1 *local_1bc;\n  undefined4 **local_1b8;\n  size_t local_1b4;\n  undefined **local_1b0;\n  undefined4 *local_1a0;\n  byte *local_19c;\n  int local_198;\n  byte local_194 [16];\n  undefined1 *local_184;\n  int local_180;\n  undefined1 local_17c [16];\n  undefined1 *local_16c;\n  int local_168;\n  undefined1 local_164 [16];\n  undefined1 *local_154;\n  int local_150;\n  undefined1 local_14c [16];\n  byte *local_13c;\n  undefined2 local_138;\n  undefined1 uStack_136;\n  undefined1 uStack_135;\n  byte local_134;\n  undefined1 uStack_133;\n  undefined2 uStack_132;\n  undefined2 local_130;\n  undefined2 uStack_12e;\n  undefined1 local_124 [56];\n  int local_ec;\n  undefined1 local_d8 [56];\n  int local_a0;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined1 local_84 [16];\n  undefined4 local_74;\n  undefined1 local_70;\n  undefined4 local_6c;\n  size_t local_68;\n  int local_64;\n  undefined1 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined4 ***local_34;\n  undefined4 ***local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined1 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined1 *puVar9;\n  \n  local_8c = local_84;\n  local_1c0 = &local_8c;\n  uStack_14 = 0x369e94;\n  local_1b0 = &__DT_PLTGOT;\n  local_40 = &local_48;\n  local_34 = &local_34;\n  local_88 = 0;\n  local_84[0] = 0;\n  local_74 = 0xffffffff;\n  local_70 = 0;\n  local_6c = 0;\n  local_68 = 0;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_44 = 0;\n  local_38 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = 1;\n  local_20 = 0;\n  local_3c = local_40;\n  local_30 = local_34;\n                    /* try { // try from 00369f4b to 00369fe9 has its CatchHandler @ 0036a996 */\n  local_1e1 = FUN_0023cb20();\n  sVar7 = local_68;\n  if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    /* try { // try from 0036a891 to 0036a895 has its CatchHandler @ 0036a996 */\n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }\n  local_1b4 = local_68;\n  if (local_64 != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a951 to 0036a955 has its CatchHandler @ 0036a996 */\n    FUN_002446e0();\n  }\n  if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }\n  local_1e8 = sVar7 + 3 & 0xfffffffc;\n  local_1e0 = local_194;\n  auStack_220[0] = 0;\n  local_19c = local_1e0;\n  FUN_0014fca0();\n  pbVar4 = local_19c;\n  if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }\n  local_1f8 = &local_13c;\n                    /* try { // try from 0036a04f to 0036a11d has its CatchHandler @ 0036aa9f */\n  FUN_0014f900();\n  pbVar4 = local_19c;\n  local_1c4 = &local_134;\n  sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n  if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }\n  local_1c4 = pbVar4;\n  local_138 = 0;\n  uStack_136 = 0;\n  uStack_135 = 0;\n  *local_13c = 0;\n  if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }\n  local_1ec = local_17c;\n  local_1c8 = &local_184;\n  local_184 = local_1ec;\n  FUN_0014fca0();\n  if (0x7fffffffU - local_180 < 6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a966 to 0036a96a has its CatchHandler @ 0036aa94 */\n    FUN_003f3a70();\n  }\n                    /* try { // try from 0036a14d to 0036a151 has its CatchHandler @ 0036aa94 */\n  FUN_003b7890();\n  local_1f0 = local_164;\n  local_1cc = &local_16c;\n  local_16c = local_1f0;\n                    /* try { // try from 0036a186 to 0036a18a has its CatchHandler @ 0036aaa3 */\n  FUN_0014fca0();\n  if (0x7fffffffU - local_168 < 4) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a8f9 to 0036a8fd has its CatchHandler @ 0036a98e */\n    FUN_003f3a70();\n  }\n                    /* try { // try from 0036a1ba to 0036a1be has its CatchHandler @ 0036a98e */\n  FUN_003b7890();\n  local_1f4 = local_14c;\n  local_1dc = &local_154;\n  local_154 = local_1f4;\n                    /* try { // try from 0036a1f3 to 0036a1f7 has its CatchHandler @ 0036a992 */\n  FUN_0014fca0();\n  if (0x7fffffffU - local_150 < 5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a90e to 0036a912 has its CatchHandler @ 0036aa86 */\n    FUN_003f3a70();\n  }\n                    /* try { // try from 0036a229 to 0036a22d has its CatchHandler @ 0036aa86 */\n  FUN_003b7890();\n  local_1bc = local_124;\n                    /* try { // try from 0036a242 to 0036a246 has its CatchHandler @ 0036aa8d */\n  FUN_00346670();\n                    /* try { // try from 0036a255 to 0036a2a8 has its CatchHandler @ 0036aa98 */\n  FUN_00349de0();\n  ppuVar3 = local_1b0;\n  FUN_00349de0();\n  FUN_00349de0();\n  FUN_0034b2b0();\n  FUN_00346670();\n  local_200 = ppuVar3 + -0x57f35;\n                    /* try { // try from 0036a2be to 0036a527 has its CatchHandler @ 0036aaa7 */\n  FUN_00349de0();\n  local_204 = ppuVar3 + -0x57f9c;\n  FUN_00349de0();\n  local_208 = ppuVar3 + -0x57f94;\n  FUN_00349de0();\n  local_20c = ppuVar3 + -0x57f92;\n  FUN_00349de0();\n  FUN_0034b2b0();\n  local_1fc = local_1e8 + 0xfc;\n  local_1d0 = local_1e8 + 0x13c;\n  if (local_ec == 0) {\n                    /* try { // try from 0036a96b to 0036a98d has its CatchHandler @ 0036aaa7 */\n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    /* try { // try from 0036a574 to 0036a578 has its CatchHandler @ 0036aaae */\n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    /* try { // try from 0036a5bb to 0036a6c1 has its CatchHandler @ 0036aaa7 */\n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */\n        FUN_00369780();\nLAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }\n  FUN_00369780();\nLAB_0036a989:\n  FUN_00369780();\n                    /* catch() { ... } // from try @ 0036a1ba with catch @ 0036a98e\n                       catch() { ... } // from try @ 0036a8f9 with catch @ 0036a98e */\n  if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }\n  if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }\n  if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }\n  FUN_0023e020();\n                    /* WARNING: Subroutine does not return */\n  FUN_004451f0();\n}\n\n" comment (function_definition "char FUN_00369e80(ushort *param_1)\n\n{\n  ushort uVar1;\n  undefined1 *puVar2;\n  undefined **ppuVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  size_t sVar7;\n  undefined4 *puVar8;\n  undefined4 auStack_220 [4];\n  void *local_210;\n  undefined **local_20c;\n  undefined **local_208;\n  undefined **local_204;\n  undefined **local_200;\n  int local_1fc;\n  byte **local_1f8;\n  undefined1 *local_1f4;\n  undefined1 *local_1f0;\n  undefined1 *local_1ec;\n  uint local_1e8;\n  char local_1e1;\n  byte *local_1e0;\n  undefined1 **local_1dc;\n  int local_1d8;\n  int local_1d4;\n  size_t local_1d0;\n  undefined1 **local_1cc;\n  undefined1 **local_1c8;\n  byte *local_1c4;\n  undefined1 **local_1c0;\n  undefined1 *local_1bc;\n  undefined4 **local_1b8;\n  size_t local_1b4;\n  undefined **local_1b0;\n  undefined4 *local_1a0;\n  byte *local_19c;\n  int local_198;\n  byte local_194 [16];\n  undefined1 *local_184;\n  int local_180;\n  undefined1 local_17c [16];\n  undefined1 *local_16c;\n  int local_168;\n  undefined1 local_164 [16];\n  undefined1 *local_154;\n  int local_150;\n  undefined1 local_14c [16];\n  byte *local_13c;\n  undefined2 local_138;\n  undefined1 uStack_136;\n  undefined1 uStack_135;\n  byte local_134;\n  undefined1 uStack_133;\n  undefined2 uStack_132;\n  undefined2 local_130;\n  undefined2 uStack_12e;\n  undefined1 local_124 [56];\n  int local_ec;\n  undefined1 local_d8 [56];\n  int local_a0;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined1 local_84 [16];\n  undefined4 local_74;\n  undefined1 local_70;\n  undefined4 local_6c;\n  size_t local_68;\n  int local_64;\n  undefined1 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined4 ***local_34;\n  undefined4 ***local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined1 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined1 *puVar9;\n  \n  local_8c = local_84;\n  local_1c0 = &local_8c;\n  uStack_14 = 0x369e94;\n  local_1b0 = &__DT_PLTGOT;\n  local_40 = &local_48;\n  local_34 = &local_34;\n  local_88 = 0;\n  local_84[0] = 0;\n  local_74 = 0xffffffff;\n  local_70 = 0;\n  local_6c = 0;\n  local_68 = 0;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_44 = 0;\n  local_38 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = 1;\n  local_20 = 0;\n  local_3c = local_40;\n  local_30 = local_34;\n                    /* try { // try from 00369f4b to 00369fe9 has its CatchHandler @ 0036a996 */\n  local_1e1 = FUN_0023cb20();\n  sVar7 = local_68;\n  if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    /* try { // try from 0036a891 to 0036a895 has its CatchHandler @ 0036a996 */\n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }\n  local_1b4 = local_68;\n  if (local_64 != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a951 to 0036a955 has its CatchHandler @ 0036a996 */\n    FUN_002446e0();\n  }\n  if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }\n  local_1e8 = sVar7 + 3 & 0xfffffffc;\n  local_1e0 = local_194;\n  auStack_220[0] = 0;\n  local_19c = local_1e0;\n  FUN_0014fca0();\n  pbVar4 = local_19c;\n  if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }\n  local_1f8 = &local_13c;\n                    /* try { // try from 0036a04f to 0036a11d has its CatchHandler @ 0036aa9f */\n  FUN_0014f900();\n  pbVar4 = local_19c;\n  local_1c4 = &local_134;\n  sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n  if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }\n  local_1c4 = pbVar4;\n  local_138 = 0;\n  uStack_136 = 0;\n  uStack_135 = 0;\n  *local_13c = 0;\n  if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }\n  local_1ec = local_17c;\n  local_1c8 = &local_184;\n  local_184 = local_1ec;\n  FUN_0014fca0();\n  if (0x7fffffffU - local_180 < 6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a966 to 0036a96a has its CatchHandler @ 0036aa94 */\n    FUN_003f3a70();\n  }\n                    /* try { // try from 0036a14d to 0036a151 has its CatchHandler @ 0036aa94 */\n  FUN_003b7890();\n  local_1f0 = local_164;\n  local_1cc = &local_16c;\n  local_16c = local_1f0;\n                    /* try { // try from 0036a186 to 0036a18a has its CatchHandler @ 0036aaa3 */\n  FUN_0014fca0();\n  if (0x7fffffffU - local_168 < 4) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a8f9 to 0036a8fd has its CatchHandler @ 0036a98e */\n    FUN_003f3a70();\n  }\n                    /* try { // try from 0036a1ba to 0036a1be has its CatchHandler @ 0036a98e */\n  FUN_003b7890();\n  local_1f4 = local_14c;\n  local_1dc = &local_154;\n  local_154 = local_1f4;\n                    /* try { // try from 0036a1f3 to 0036a1f7 has its CatchHandler @ 0036a992 */\n  FUN_0014fca0();\n  if (0x7fffffffU - local_150 < 5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a90e to 0036a912 has its CatchHandler @ 0036aa86 */\n    FUN_003f3a70();\n  }\n                    /* try { // try from 0036a229 to 0036a22d has its CatchHandler @ 0036aa86 */\n  FUN_003b7890();\n  local_1bc = local_124;\n                    /* try { // try from 0036a242 to 0036a246 has its CatchHandler @ 0036aa8d */\n  FUN_00346670();\n                    /* try { // try from 0036a255 to 0036a2a8 has its CatchHandler @ 0036aa98 */\n  FUN_00349de0();\n  ppuVar3 = local_1b0;\n  FUN_00349de0();\n  FUN_00349de0();\n  FUN_0034b2b0();\n  FUN_00346670();\n  local_200 = ppuVar3 + -0x57f35;\n                    /* try { // try from 0036a2be to 0036a527 has its CatchHandler @ 0036aaa7 */\n  FUN_00349de0();\n  local_204 = ppuVar3 + -0x57f9c;\n  FUN_00349de0();\n  local_208 = ppuVar3 + -0x57f94;\n  FUN_00349de0();\n  local_20c = ppuVar3 + -0x57f92;\n  FUN_00349de0();\n  FUN_0034b2b0();\n  local_1fc = local_1e8 + 0xfc;\n  local_1d0 = local_1e8 + 0x13c;\n  if (local_ec == 0) {\n                    /* try { // try from 0036a96b to 0036a98d has its CatchHandler @ 0036aaa7 */\n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    /* try { // try from 0036a574 to 0036a578 has its CatchHandler @ 0036aaae */\n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    /* try { // try from 0036a5bb to 0036a6c1 has its CatchHandler @ 0036aaa7 */\n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */\n        FUN_00369780();\nLAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }\n  FUN_00369780();\nLAB_0036a989:\n  FUN_00369780();\n                    /* catch() { ... } // from try @ 0036a1ba with catch @ 0036a98e\n                       catch() { ... } // from try @ 0036a8f9 with catch @ 0036a98e */\n  if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }\n  if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }\n  if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }\n  FUN_0023e020();\n                    /* WARNING: Subroutine does not return */\n  FUN_004451f0();\n}" primitive_type (function_declarator "FUN_00369e80(ushort *param_1)" identifier (parameter_list "(ushort *param_1)" ( (parameter_declaration "ushort *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  undefined1 *puVar2;\n  undefined **ppuVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  size_t sVar7;\n  undefined4 *puVar8;\n  undefined4 auStack_220 [4];\n  void *local_210;\n  undefined **local_20c;\n  undefined **local_208;\n  undefined **local_204;\n  undefined **local_200;\n  int local_1fc;\n  byte **local_1f8;\n  undefined1 *local_1f4;\n  undefined1 *local_1f0;\n  undefined1 *local_1ec;\n  uint local_1e8;\n  char local_1e1;\n  byte *local_1e0;\n  undefined1 **local_1dc;\n  int local_1d8;\n  int local_1d4;\n  size_t local_1d0;\n  undefined1 **local_1cc;\n  undefined1 **local_1c8;\n  byte *local_1c4;\n  undefined1 **local_1c0;\n  undefined1 *local_1bc;\n  undefined4 **local_1b8;\n  size_t local_1b4;\n  undefined **local_1b0;\n  undefined4 *local_1a0;\n  byte *local_19c;\n  int local_198;\n  byte local_194 [16];\n  undefined1 *local_184;\n  int local_180;\n  undefined1 local_17c [16];\n  undefined1 *local_16c;\n  int local_168;\n  undefined1 local_164 [16];\n  undefined1 *local_154;\n  int local_150;\n  undefined1 local_14c [16];\n  byte *local_13c;\n  undefined2 local_138;\n  undefined1 uStack_136;\n  undefined1 uStack_135;\n  byte local_134;\n  undefined1 uStack_133;\n  undefined2 uStack_132;\n  undefined2 local_130;\n  undefined2 uStack_12e;\n  undefined1 local_124 [56];\n  int local_ec;\n  undefined1 local_d8 [56];\n  int local_a0;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined1 local_84 [16];\n  undefined4 local_74;\n  undefined1 local_70;\n  undefined4 local_6c;\n  size_t local_68;\n  int local_64;\n  undefined1 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined4 ***local_34;\n  undefined4 ***local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined1 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined1 *puVar9;\n  \n  local_8c = local_84;\n  local_1c0 = &local_8c;\n  uStack_14 = 0x369e94;\n  local_1b0 = &__DT_PLTGOT;\n  local_40 = &local_48;\n  local_34 = &local_34;\n  local_88 = 0;\n  local_84[0] = 0;\n  local_74 = 0xffffffff;\n  local_70 = 0;\n  local_6c = 0;\n  local_68 = 0;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_44 = 0;\n  local_38 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = 1;\n  local_20 = 0;\n  local_3c = local_40;\n  local_30 = local_34;\n                    /* try { // try from 00369f4b to 00369fe9 has its CatchHandler @ 0036a996 */\n  local_1e1 = FUN_0023cb20();\n  sVar7 = local_68;\n  if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    /* try { // try from 0036a891 to 0036a895 has its CatchHandler @ 0036a996 */\n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }\n  local_1b4 = local_68;\n  if (local_64 != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a951 to 0036a955 has its CatchHandler @ 0036a996 */\n    FUN_002446e0();\n  }\n  if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }\n  local_1e8 = sVar7 + 3 & 0xfffffffc;\n  local_1e0 = local_194;\n  auStack_220[0] = 0;\n  local_19c = local_1e0;\n  FUN_0014fca0();\n  pbVar4 = local_19c;\n  if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }\n  local_1f8 = &local_13c;\n                    /* try { // try from 0036a04f to 0036a11d has its CatchHandler @ 0036aa9f */\n  FUN_0014f900();\n  pbVar4 = local_19c;\n  local_1c4 = &local_134;\n  sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n  if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }\n  local_1c4 = pbVar4;\n  local_138 = 0;\n  uStack_136 = 0;\n  uStack_135 = 0;\n  *local_13c = 0;\n  if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }\n  local_1ec = local_17c;\n  local_1c8 = &local_184;\n  local_184 = local_1ec;\n  FUN_0014fca0();\n  if (0x7fffffffU - local_180 < 6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a966 to 0036a96a has its CatchHandler @ 0036aa94 */\n    FUN_003f3a70();\n  }\n                    /* try { // try from 0036a14d to 0036a151 has its CatchHandler @ 0036aa94 */\n  FUN_003b7890();\n  local_1f0 = local_164;\n  local_1cc = &local_16c;\n  local_16c = local_1f0;\n                    /* try { // try from 0036a186 to 0036a18a has its CatchHandler @ 0036aaa3 */\n  FUN_0014fca0();\n  if (0x7fffffffU - local_168 < 4) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a8f9 to 0036a8fd has its CatchHandler @ 0036a98e */\n    FUN_003f3a70();\n  }\n                    /* try { // try from 0036a1ba to 0036a1be has its CatchHandler @ 0036a98e */\n  FUN_003b7890();\n  local_1f4 = local_14c;\n  local_1dc = &local_154;\n  local_154 = local_1f4;\n                    /* try { // try from 0036a1f3 to 0036a1f7 has its CatchHandler @ 0036a992 */\n  FUN_0014fca0();\n  if (0x7fffffffU - local_150 < 5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a90e to 0036a912 has its CatchHandler @ 0036aa86 */\n    FUN_003f3a70();\n  }\n                    /* try { // try from 0036a229 to 0036a22d has its CatchHandler @ 0036aa86 */\n  FUN_003b7890();\n  local_1bc = local_124;\n                    /* try { // try from 0036a242 to 0036a246 has its CatchHandler @ 0036aa8d */\n  FUN_00346670();\n                    /* try { // try from 0036a255 to 0036a2a8 has its CatchHandler @ 0036aa98 */\n  FUN_00349de0();\n  ppuVar3 = local_1b0;\n  FUN_00349de0();\n  FUN_00349de0();\n  FUN_0034b2b0();\n  FUN_00346670();\n  local_200 = ppuVar3 + -0x57f35;\n                    /* try { // try from 0036a2be to 0036a527 has its CatchHandler @ 0036aaa7 */\n  FUN_00349de0();\n  local_204 = ppuVar3 + -0x57f9c;\n  FUN_00349de0();\n  local_208 = ppuVar3 + -0x57f94;\n  FUN_00349de0();\n  local_20c = ppuVar3 + -0x57f92;\n  FUN_00349de0();\n  FUN_0034b2b0();\n  local_1fc = local_1e8 + 0xfc;\n  local_1d0 = local_1e8 + 0x13c;\n  if (local_ec == 0) {\n                    /* try { // try from 0036a96b to 0036a98d has its CatchHandler @ 0036aaa7 */\n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    /* try { // try from 0036a574 to 0036a578 has its CatchHandler @ 0036aaae */\n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    /* try { // try from 0036a5bb to 0036a6c1 has its CatchHandler @ 0036aaa7 */\n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */\n        FUN_00369780();\nLAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }\n  FUN_00369780();\nLAB_0036a989:\n  FUN_00369780();\n                    /* catch() { ... } // from try @ 0036a1ba with catch @ 0036a98e\n                       catch() { ... } // from try @ 0036a8f9 with catch @ 0036a98e */\n  if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }\n  if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }\n  if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }\n  FUN_0023e020();\n                    /* WARNING: Subroutine does not return */\n  FUN_004451f0();\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined **ppuVar3;" type_identifier (pointer_declarator "**ppuVar3" * (pointer_declarator "*ppuVar3" * identifier)) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 auStack_220 [4];" type_identifier (array_declarator "auStack_220 [4]" identifier [ number_literal ]) ;) (declaration "void *local_210;" primitive_type (pointer_declarator "*local_210" * identifier) ;) (declaration "undefined **local_20c;" type_identifier (pointer_declarator "**local_20c" * (pointer_declarator "*local_20c" * identifier)) ;) (declaration "undefined **local_208;" type_identifier (pointer_declarator "**local_208" * (pointer_declarator "*local_208" * identifier)) ;) (declaration "undefined **local_204;" type_identifier (pointer_declarator "**local_204" * (pointer_declarator "*local_204" * identifier)) ;) (declaration "undefined **local_200;" type_identifier (pointer_declarator "**local_200" * (pointer_declarator "*local_200" * identifier)) ;) (declaration "int local_1fc;" primitive_type identifier ;) (declaration "byte **local_1f8;" type_identifier (pointer_declarator "**local_1f8" * (pointer_declarator "*local_1f8" * identifier)) ;) (declaration "undefined1 *local_1f4;" type_identifier (pointer_declarator "*local_1f4" * identifier) ;) (declaration "undefined1 *local_1f0;" type_identifier (pointer_declarator "*local_1f0" * identifier) ;) (declaration "undefined1 *local_1ec;" type_identifier (pointer_declarator "*local_1ec" * identifier) ;) (declaration "uint local_1e8;" type_identifier identifier ;) (declaration "char local_1e1;" primitive_type identifier ;) (declaration "byte *local_1e0;" type_identifier (pointer_declarator "*local_1e0" * identifier) ;) (declaration "undefined1 **local_1dc;" type_identifier (pointer_declarator "**local_1dc" * (pointer_declarator "*local_1dc" * identifier)) ;) (declaration "int local_1d8;" primitive_type identifier ;) (declaration "int local_1d4;" primitive_type identifier ;) (declaration "size_t local_1d0;" primitive_type identifier ;) (declaration "undefined1 **local_1cc;" type_identifier (pointer_declarator "**local_1cc" * (pointer_declarator "*local_1cc" * identifier)) ;) (declaration "undefined1 **local_1c8;" type_identifier (pointer_declarator "**local_1c8" * (pointer_declarator "*local_1c8" * identifier)) ;) (declaration "byte *local_1c4;" type_identifier (pointer_declarator "*local_1c4" * identifier) ;) (declaration "undefined1 **local_1c0;" type_identifier (pointer_declarator "**local_1c0" * (pointer_declarator "*local_1c0" * identifier)) ;) (declaration "undefined1 *local_1bc;" type_identifier (pointer_declarator "*local_1bc" * identifier) ;) (declaration "undefined4 **local_1b8;" type_identifier (pointer_declarator "**local_1b8" * (pointer_declarator "*local_1b8" * identifier)) ;) (declaration "size_t local_1b4;" primitive_type identifier ;) (declaration "undefined **local_1b0;" type_identifier (pointer_declarator "**local_1b0" * (pointer_declarator "*local_1b0" * identifier)) ;) (declaration "undefined4 *local_1a0;" type_identifier (pointer_declarator "*local_1a0" * identifier) ;) (declaration "byte *local_19c;" type_identifier (pointer_declarator "*local_19c" * identifier) ;) (declaration "int local_198;" primitive_type identifier ;) (declaration "byte local_194 [16];" type_identifier (array_declarator "local_194 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_184;" type_identifier (pointer_declarator "*local_184" * identifier) ;) (declaration "int local_180;" primitive_type identifier ;) (declaration "undefined1 local_17c [16];" type_identifier (array_declarator "local_17c [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_16c;" type_identifier (pointer_declarator "*local_16c" * identifier) ;) (declaration "int local_168;" primitive_type identifier ;) (declaration "undefined1 local_164 [16];" type_identifier (array_declarator "local_164 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_154;" type_identifier (pointer_declarator "*local_154" * identifier) ;) (declaration "int local_150;" primitive_type identifier ;) (declaration "undefined1 local_14c [16];" type_identifier (array_declarator "local_14c [16]" identifier [ number_literal ]) ;) (declaration "byte *local_13c;" type_identifier (pointer_declarator "*local_13c" * identifier) ;) (declaration "undefined2 local_138;" type_identifier identifier ;) (declaration "undefined1 uStack_136;" type_identifier identifier ;) (declaration "undefined1 uStack_135;" type_identifier identifier ;) (declaration "byte local_134;" type_identifier identifier ;) (declaration "undefined1 uStack_133;" type_identifier identifier ;) (declaration "undefined2 uStack_132;" type_identifier identifier ;) (declaration "undefined2 local_130;" type_identifier identifier ;) (declaration "undefined2 uStack_12e;" type_identifier identifier ;) (declaration "undefined1 local_124 [56];" type_identifier (array_declarator "local_124 [56]" identifier [ number_literal ]) ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "undefined1 local_d8 [56];" type_identifier (array_declarator "local_d8 [56]" identifier [ number_literal ]) ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "undefined1 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined1 local_84 [16];" type_identifier (array_declarator "local_84 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined1 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "size_t local_68;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined1 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined4 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 ***local_34;" type_identifier (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier))) ;) (declaration "undefined4 ***local_30;" type_identifier (pointer_declarator "***local_30" * (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier))) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined1 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (expression_statement "local_8c = local_84;" (assignment_expression "local_8c = local_84" identifier = identifier) ;) (expression_statement "local_1c0 = &local_8c;" (assignment_expression "local_1c0 = &local_8c" identifier = (pointer_expression "&local_8c" & identifier)) ;) (expression_statement "uStack_14 = 0x369e94;" (assignment_expression "uStack_14 = 0x369e94" identifier = number_literal) ;) (expression_statement "local_1b0 = &__DT_PLTGOT;" (assignment_expression "local_1b0 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_40 = &local_48;" (assignment_expression "local_40 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "local_34 = &local_34;" (assignment_expression "local_34 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84[0] = 0;" (assignment_expression "local_84[0] = 0" (subscript_expression "local_84[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74 = 0xffffffff;" (assignment_expression "local_74 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 1;" (assignment_expression "local_24 = 1" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_3c = local_40;" (assignment_expression "local_3c = local_40" identifier = identifier) ;) (expression_statement "local_30 = local_34;" (assignment_expression "local_30 = local_34" identifier = identifier) ;) comment (expression_statement "local_1e1 = FUN_0023cb20();" (assignment_expression "local_1e1 = FUN_0023cb20()" identifier = (call_expression "FUN_0023cb20()" identifier (argument_list "()" ( )))) ;) (expression_statement "sVar7 = local_68;" (assignment_expression "sVar7 = local_68" identifier = identifier) ;) (if_statement "if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    /* try { // try from 0036a891 to 0036a895 has its CatchHandler @ 0036a996 */\n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }" if (parenthesized_expression "(local_1e1 == '\0')" ( (binary_expression "local_1e1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    /* try { // try from 0036a891 to 0036a895 has its CatchHandler @ 0036a996 */\n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }" { (expression_statement "auStack_220[0] = 0x36a85d;" (assignment_expression "auStack_220[0] = 0x36a85d" (subscript_expression "auStack_220[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar9 = &stack0xfffffdd4;" (assignment_expression "puVar9 = &stack0xfffffdd4" identifier = (pointer_expression "&stack0xfffffdd4" & identifier)) ;) (expression_statement "strerror(*piVar6);" (call_expression "strerror(*piVar6)" identifier (argument_list "(*piVar6)" ( (pointer_expression "*piVar6" * identifier) ))) ;) (expression_statement "gettext();" (call_expression "gettext()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "FUN_0023b810();" (call_expression "FUN_0023b810()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);" statement_identifier : (expression_statement "puVar8 = (undefined4 *)(puVar9 + 0x10);" (assignment_expression "puVar8 = (undefined4 *)(puVar9 + 0x10)" identifier = (cast_expression "(undefined4 *)(puVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x10)" ( (binary_expression "puVar9 + 0x10" identifier + number_literal) )))) ;)) (labeled_statement "LAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;" statement_identifier : (expression_statement "*(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;" (assignment_expression "*(undefined1 ***)((int)puVar8 + -0x10) = local_1c0" (pointer_expression "*(undefined1 ***)((int)puVar8 + -0x10)" * (cast_expression "(undefined1 ***)((int)puVar8 + -0x10)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar8 + -0x10)" ( (binary_expression "(int)puVar8 + -0x10" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;" (assignment_expression "*(undefined4 *)((int)puVar8 + -0x14) = 0x36a767" (pointer_expression "*(undefined4 *)((int)puVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + -0x14)" ( (binary_expression "(int)puVar8 + -0x14" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0023e020();" (call_expression "FUN_0023e020()" identifier (argument_list "()" ( ))) ;) (return_statement "return local_1e1;" return identifier ;) })) (expression_statement "local_1b4 = local_68;" (assignment_expression "local_1b4 = local_68" identifier = identifier) ;) (if_statement "if (local_64 != 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a951 to 0036a955 has its CatchHandler @ 0036a996 */\n    FUN_002446e0();\n  }" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a951 to 0036a955 has its CatchHandler @ 0036a996 */\n    FUN_002446e0();\n  }" { comment comment (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }" if (parenthesized_expression "(local_68 == 0)" ( (binary_expression "local_68 == 0" identifier == number_literal) )) (compound_statement "{\n    local_210 = (void *)0x0;\n  }" { (expression_statement "local_210 = (void *)0x0;" (assignment_expression "local_210 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }" else (compound_statement "{\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }" { (expression_statement "auStack_220[0] = 0;" (assignment_expression "auStack_220[0] = 0" (subscript_expression "auStack_220[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_210 = (void *)FUN_0023eb50(local_1c0,0,0);" (assignment_expression "local_210 = (void *)FUN_0023eb50(local_1c0,0,0)" identifier = (cast_expression "(void *)FUN_0023eb50(local_1c0,0,0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023eb50(local_1c0,0,0)" identifier (argument_list "(local_1c0,0,0)" ( identifier , number_literal , number_literal ))))) ;) }))) (expression_statement "local_1e8 = sVar7 + 3 & 0xfffffffc;" (assignment_expression "local_1e8 = sVar7 + 3 & 0xfffffffc" identifier = (binary_expression "sVar7 + 3 & 0xfffffffc" (binary_expression "sVar7 + 3" identifier + number_literal) & number_literal)) ;) (expression_statement "local_1e0 = local_194;" (assignment_expression "local_1e0 = local_194" identifier = identifier) ;) (expression_statement "auStack_220[0] = 0;" (assignment_expression "auStack_220[0] = 0" (subscript_expression "auStack_220[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_19c = local_1e0;" (assignment_expression "local_19c = local_1e0" identifier = identifier) ;) (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar4 = local_19c;" (assignment_expression "pbVar4 = local_19c" identifier = identifier) ;) (if_statement "if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }" if (parenthesized_expression "(local_198 != 0)" ( (binary_expression "local_198 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }" { (do_statement "do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);" do (compound_statement "{\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    }" { (if_statement "if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }" if (parenthesized_expression "((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0)" ( (binary_expression "(*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0" (parenthesized_expression "(*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c)" ( (binary_expression "*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c" (pointer_expression "*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60)" * (cast_expression "(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60)" ( (binary_expression "(int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60" (binary_expression "(int)local_1b0 + (uint)*pbVar4 * 2" (cast_expression "(int)local_1b0" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*pbVar4 * 2" (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *pbVar4 = 0x5f;\n      }" { (expression_statement "*pbVar4 = 0x5f;" (assignment_expression "*pbVar4 = 0x5f" (pointer_expression "*pbVar4" * identifier) = number_literal) ;) })) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_19c + local_198 != pbVar4)" ( (binary_expression "local_19c + local_198 != pbVar4" (binary_expression "local_19c + local_198" identifier + identifier) != identifier) )) ;) })) (expression_statement "local_1f8 = &local_13c;" (assignment_expression "local_1f8 = &local_13c" identifier = (pointer_expression "&local_13c" & identifier)) ;) comment (expression_statement "FUN_0014f900();" (call_expression "FUN_0014f900()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar4 = local_19c;" (assignment_expression "pbVar4 = local_19c" identifier = identifier) ;) (expression_statement "local_1c4 = &local_134;" (assignment_expression "local_1c4 = &local_134" identifier = (pointer_expression "&local_134" & identifier)) ;) (expression_statement "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));" (assignment_expression "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier = (call_expression "CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier (argument_list "(uStack_135,CONCAT12(uStack_136,local_138))" ( identifier , (call_expression "CONCAT12(uStack_136,local_138)" identifier (argument_list "(uStack_136,local_138)" ( identifier , identifier ))) )))) ;) (if_statement "if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" if (parenthesized_expression "(local_13c == local_1c4)" ( (binary_expression "local_13c == local_1c4" identifier == identifier) )) (compound_statement "{\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }" { (if_statement "if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }" { (if_statement "if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" { (expression_statement "*local_19c = local_134;" (assignment_expression "*local_19c = local_134" (pointer_expression "*local_19c" * identifier) = identifier) ;) (expression_statement "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));" (assignment_expression "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier = (call_expression "CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier (argument_list "(uStack_135,CONCAT12(uStack_136,local_138))" ( identifier , (call_expression "CONCAT12(uStack_136,local_138)" identifier (argument_list "(uStack_136,local_138)" ( identifier , identifier ))) )))) ;) }) (else_clause "else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" else (compound_statement "{\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" { (expression_statement "memcpy(local_19c,local_1c4,sVar7);" (call_expression "memcpy(local_19c,local_1c4,sVar7)" identifier (argument_list "(local_19c,local_1c4,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));" (assignment_expression "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier = (call_expression "CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier (argument_list "(uStack_135,CONCAT12(uStack_136,local_138))" ( identifier , (call_expression "CONCAT12(uStack_136,local_138)" identifier (argument_list "(uStack_136,local_138)" ( identifier , identifier ))) )))) ;) }))) })) (expression_statement "local_19c[sVar7] = 0;" (assignment_expression "local_19c[sVar7] = 0" (subscript_expression "local_19c[sVar7]" identifier [ identifier ]) = number_literal) ;) (expression_statement "pbVar4 = local_1c4;" (assignment_expression "pbVar4 = local_1c4" identifier = identifier) ;) }) (else_clause "else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" else (if_statement "if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" if (parenthesized_expression "((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0))" ( (binary_expression "(local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)" (parenthesized_expression "(local_19c == local_1e0)" ( (binary_expression "local_19c == local_1e0" identifier == identifier) )) || (parenthesized_expression "(local_19c = local_13c, pbVar4 == (byte *)0x0)" ( (comma_expression "local_19c = local_13c, pbVar4 == (byte *)0x0" (assignment_expression "local_19c = local_13c" identifier = identifier) , (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }" { (expression_statement "local_19c = local_13c;" (assignment_expression "local_19c = local_13c" identifier = identifier) ;) (expression_statement "pbVar4 = &local_134;" (assignment_expression "pbVar4 = &local_134" identifier = (pointer_expression "&local_134" & identifier)) ;) (expression_statement "local_13c = local_1c4;" (assignment_expression "local_13c = local_1c4" identifier = identifier) ;) }) (else_clause "else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" else (compound_statement "{\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" { (expression_statement "local_13c = pbVar4;" (assignment_expression "local_13c = pbVar4" identifier = identifier) ;) (expression_statement "local_134 = (byte)local_194._0_4_;" (assignment_expression "local_134 = (byte)local_194._0_4_" identifier = (cast_expression "(byte)local_194._0_4_" ( (type_descriptor "byte" type_identifier) ) (field_expression "local_194._0_4_" identifier . field_identifier))) ;) (expression_statement "uStack_133 = SUB41(local_194._0_4_,1);" (assignment_expression "uStack_133 = SUB41(local_194._0_4_,1)" identifier = (call_expression "SUB41(local_194._0_4_,1)" identifier (argument_list "(local_194._0_4_,1)" ( (field_expression "local_194._0_4_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "uStack_132 = SUB42(local_194._0_4_,2);" (assignment_expression "uStack_132 = SUB42(local_194._0_4_,2)" identifier = (call_expression "SUB42(local_194._0_4_,2)" identifier (argument_list "(local_194._0_4_,2)" ( (field_expression "local_194._0_4_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "pbVar4 = local_1c4;" (assignment_expression "pbVar4 = local_1c4" identifier = identifier) ;) }))))) (expression_statement "local_1c4 = pbVar4;" (assignment_expression "local_1c4 = pbVar4" identifier = identifier) ;) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_136 = 0;" (assignment_expression "uStack_136 = 0" identifier = number_literal) ;) (expression_statement "uStack_135 = 0;" (assignment_expression "uStack_135 = 0" identifier = number_literal) ;) (expression_statement "*local_13c = 0;" (assignment_expression "*local_13c = 0" (pointer_expression "*local_13c" * identifier) = number_literal) ;) (if_statement "if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_13c != local_1c4)" ( (binary_expression "local_13c != local_1c4" identifier != identifier) )) (compound_statement "{\n    FUN_003ae080();\n  }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_1ec = local_17c;" (assignment_expression "local_1ec = local_17c" identifier = identifier) ;) (expression_statement "local_1c8 = &local_184;" (assignment_expression "local_1c8 = &local_184" identifier = (pointer_expression "&local_184" & identifier)) ;) (expression_statement "local_184 = local_1ec;" (assignment_expression "local_184 = local_1ec" identifier = identifier) ;) (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0x7fffffffU - local_180 < 6) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a966 to 0036a96a has its CatchHandler @ 0036aa94 */\n    FUN_003f3a70();\n  }" if (parenthesized_expression "(0x7fffffffU - local_180 < 6)" ( (binary_expression "0x7fffffffU - local_180 < 6" (binary_expression "0x7fffffffU - local_180" number_literal - identifier) < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a966 to 0036a96a has its CatchHandler @ 0036aa94 */\n    FUN_003f3a70();\n  }" { comment comment (expression_statement "FUN_003f3a70();" (call_expression "FUN_003f3a70()" identifier (argument_list "()" ( ))) ;) })) comment (expression_statement "FUN_003b7890();" (call_expression "FUN_003b7890()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1f0 = local_164;" (assignment_expression "local_1f0 = local_164" identifier = identifier) ;) (expression_statement "local_1cc = &local_16c;" (assignment_expression "local_1cc = &local_16c" identifier = (pointer_expression "&local_16c" & identifier)) ;) (expression_statement "local_16c = local_1f0;" (assignment_expression "local_16c = local_1f0" identifier = identifier) ;) comment (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0x7fffffffU - local_168 < 4) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a8f9 to 0036a8fd has its CatchHandler @ 0036a98e */\n    FUN_003f3a70();\n  }" if (parenthesized_expression "(0x7fffffffU - local_168 < 4)" ( (binary_expression "0x7fffffffU - local_168 < 4" (binary_expression "0x7fffffffU - local_168" number_literal - identifier) < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a8f9 to 0036a8fd has its CatchHandler @ 0036a98e */\n    FUN_003f3a70();\n  }" { comment comment (expression_statement "FUN_003f3a70();" (call_expression "FUN_003f3a70()" identifier (argument_list "()" ( ))) ;) })) comment (expression_statement "FUN_003b7890();" (call_expression "FUN_003b7890()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1f4 = local_14c;" (assignment_expression "local_1f4 = local_14c" identifier = identifier) ;) (expression_statement "local_1dc = &local_154;" (assignment_expression "local_1dc = &local_154" identifier = (pointer_expression "&local_154" & identifier)) ;) (expression_statement "local_154 = local_1f4;" (assignment_expression "local_154 = local_1f4" identifier = identifier) ;) comment (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0x7fffffffU - local_150 < 5) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a90e to 0036a912 has its CatchHandler @ 0036aa86 */\n    FUN_003f3a70();\n  }" if (parenthesized_expression "(0x7fffffffU - local_150 < 5)" ( (binary_expression "0x7fffffffU - local_150 < 5" (binary_expression "0x7fffffffU - local_150" number_literal - identifier) < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0036a90e to 0036a912 has its CatchHandler @ 0036aa86 */\n    FUN_003f3a70();\n  }" { comment comment (expression_statement "FUN_003f3a70();" (call_expression "FUN_003f3a70()" identifier (argument_list "()" ( ))) ;) })) comment (expression_statement "FUN_003b7890();" (call_expression "FUN_003b7890()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1bc = local_124;" (assignment_expression "local_1bc = local_124" identifier = identifier) ;) comment (expression_statement "FUN_00346670();" (call_expression "FUN_00346670()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar3 = local_1b0;" (assignment_expression "ppuVar3 = local_1b0" identifier = identifier) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0034b2b0();" (call_expression "FUN_0034b2b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00346670();" (call_expression "FUN_00346670()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_200 = ppuVar3 + -0x57f35;" (assignment_expression "local_200 = ppuVar3 + -0x57f35" identifier = (binary_expression "ppuVar3 + -0x57f35" identifier + number_literal)) ;) comment (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_204 = ppuVar3 + -0x57f9c;" (assignment_expression "local_204 = ppuVar3 + -0x57f9c" identifier = (binary_expression "ppuVar3 + -0x57f9c" identifier + number_literal)) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_208 = ppuVar3 + -0x57f94;" (assignment_expression "local_208 = ppuVar3 + -0x57f94" identifier = (binary_expression "ppuVar3 + -0x57f94" identifier + number_literal)) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_20c = ppuVar3 + -0x57f92;" (assignment_expression "local_20c = ppuVar3 + -0x57f92" identifier = (binary_expression "ppuVar3 + -0x57f92" identifier + number_literal)) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0034b2b0();" (call_expression "FUN_0034b2b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1fc = local_1e8 + 0xfc;" (assignment_expression "local_1fc = local_1e8 + 0xfc" identifier = (binary_expression "local_1e8 + 0xfc" identifier + number_literal)) ;) (expression_statement "local_1d0 = local_1e8 + 0x13c;" (assignment_expression "local_1d0 = local_1e8 + 0x13c" identifier = (binary_expression "local_1e8 + 0x13c" identifier + number_literal)) ;) (if_statement "if (local_ec == 0) {\n                    /* try { // try from 0036a96b to 0036a98d has its CatchHandler @ 0036aaa7 */\n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    /* try { // try from 0036a574 to 0036a578 has its CatchHandler @ 0036aaae */\n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    /* try { // try from 0036a5bb to 0036a6c1 has its CatchHandler @ 0036aaa7 */\n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */\n        FUN_00369780();\nLAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n                    /* try { // try from 0036a96b to 0036a98d has its CatchHandler @ 0036aaa7 */\n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }" { comment (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0036a970:\n    FUN_00369780();" statement_identifier : (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0036a975:\n    FUN_00369780();" statement_identifier : (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0036a97a:\n    FUN_00369780();" statement_identifier : (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0036a97f:\n    FUN_00369780();" statement_identifier : (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;)) }) (else_clause "else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    /* try { // try from 0036a574 to 0036a578 has its CatchHandler @ 0036aaae */\n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    /* try { // try from 0036a5bb to 0036a6c1 has its CatchHandler @ 0036aaa7 */\n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */\n        FUN_00369780();\nLAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }" else (compound_statement "{\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    /* try { // try from 0036a574 to 0036a578 has its CatchHandler @ 0036aaae */\n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    /* try { // try from 0036a5bb to 0036a6c1 has its CatchHandler @ 0036aaa7 */\n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */\n        FUN_00369780();\nLAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }" { (expression_statement "local_1d4 = local_ec + local_1d0;" (assignment_expression "local_1d4 = local_ec + local_1d0" identifier = (binary_expression "local_ec + local_1d0" identifier + identifier)) ;) (if_statement "if (local_a0 == 0) goto LAB_0036a970;" if (parenthesized_expression "(local_a0 == 0)" ( (binary_expression "local_a0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0036a970;" goto statement_identifier ;)) (expression_statement "local_1d8 = local_a0 + local_1d4;" (assignment_expression "local_1d8 = local_a0 + local_1d4" identifier = (binary_expression "local_a0 + local_1d4" identifier + identifier)) ;) (expression_statement "puVar5 = (undefined4 *)FUN_003ac450();" (assignment_expression "puVar5 = (undefined4 *)FUN_003ac450()" identifier = (cast_expression "(undefined4 *)FUN_003ac450()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac450()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uStack_135 = 0;" (assignment_expression "uStack_135 = 0" identifier = number_literal) ;) (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_133 = 0;" (assignment_expression "uStack_133 = 0" identifier = number_literal) ;) (expression_statement "local_138 = 0x201;" (assignment_expression "local_138 = 0x201" identifier = number_literal) ;) (expression_statement "uStack_136 = 1;" (assignment_expression "uStack_136 = 1" identifier = number_literal) ;) (expression_statement "uStack_132 = 0;" (assignment_expression "uStack_132 = 0" identifier = number_literal) ;) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" identifier = number_literal) ;) (expression_statement "puVar5[1] = 0x10201;" (assignment_expression "puVar5[1] = 0x10201" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_12e = 0;" (assignment_expression "uStack_12e = 0" identifier = number_literal) ;) (expression_statement "local_1b8 = &local_1a0;" (assignment_expression "local_1b8 = &local_1a0" identifier = (pointer_expression "&local_1a0" & identifier)) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = 0x464c457f;" (assignment_expression "*puVar5 = 0x464c457f" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar5 + 4) = 0x100;" (assignment_expression "*(undefined2 *)(puVar5 + 4) = 0x100" (pointer_expression "*(undefined2 *)(puVar5 + 4)" * (cast_expression "(undefined2 *)(puVar5 + 4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar5[5] = 0x1000000;" (assignment_expression "puVar5[5] = 0x1000000" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0;" (assignment_expression "puVar5[6] = 0" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;" (assignment_expression "*(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8" (pointer_expression "*(ushort *)((int)puVar5 + 0x12)" * (cast_expression "(ushort *)((int)puVar5 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 0x12)" ( (binary_expression "(int)puVar5 + 0x12" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar1 << 8 | uVar1 >> 8" (binary_expression "uVar1 << 8" identifier << number_literal) | (binary_expression "uVar1 >> 8" identifier >> number_literal))) ;) (expression_statement "local_1a0 = puVar5 + 0xd;" (assignment_expression "local_1a0 = puVar5 + 0xd" identifier = (binary_expression "puVar5 + 0xd" identifier + number_literal)) ;) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0x34000000;" (assignment_expression "puVar5[8] = 0x34000000" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = 0;" (assignment_expression "puVar5[9] = 0" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = 0x3400;" (assignment_expression "puVar5[10] = 0x3400" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = 0x28000000;" (assignment_expression "puVar5[0xb] = 0x28000000" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = 0x4000500;" (assignment_expression "puVar5[0xc] = 0x4000500" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_13c = (byte *)0x464c457f;" (assignment_expression "local_13c = (byte *)0x464c457f" identifier = (cast_expression "(byte *)0x464c457f" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);" (call_expression "FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0)" identifier (argument_list "(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0)" ( identifier , (binary_expression "(int)local_1b0 + -0x14c4ea" (cast_expression "(int)local_1b0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);" (call_expression "FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0)" identifier (argument_list "(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0)" ( identifier , identifier , identifier , number_literal , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);" (call_expression "FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3)" identifier (argument_list "(param_1,local_204,local_d8,2,0,local_1fc,0x40,3)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (if_statement "if (local_ec == 0) goto LAB_0036a975;" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (goto_statement "goto LAB_0036a975;" goto statement_identifier ;)) (expression_statement "FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);" (call_expression "FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0)" identifier (argument_list "(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (local_a0 == 0) goto LAB_0036a97a;" if (parenthesized_expression "(local_a0 == 0)" ( (binary_expression "local_a0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0036a97a;" goto statement_identifier ;)) (expression_statement "FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);" (call_expression "FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0)" identifier (argument_list "(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }" if (parenthesized_expression "(local_1b4 != 0)" ( (binary_expression "local_1b4 != 0" identifier != number_literal) )) (compound_statement "{\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }" { (expression_statement "memcpy(local_1a0,local_210,local_1b4);" (call_expression "memcpy(local_1a0,local_210,local_1b4)" identifier (argument_list "(local_1a0,local_210,local_1b4)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);" (assignment_expression "local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4)" identifier = (cast_expression "(undefined4 *)((int)local_1a0 + local_1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_1a0 + local_1b4)" ( (binary_expression "(int)local_1a0 + local_1b4" (cast_expression "(int)local_1a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "local_1d0 = local_1e8 - local_1b4;" (assignment_expression "local_1d0 = local_1e8 - local_1b4" identifier = (binary_expression "local_1e8 - local_1b4" identifier - identifier)) ;) (expression_statement "memset(local_1a0,0,local_1d0);" (call_expression "memset(local_1a0,0,local_1d0)" identifier (argument_list "(local_1a0,0,local_1d0)" ( identifier , number_literal , identifier ))) ;) (expression_statement "local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);" (assignment_expression "local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0)" identifier = (cast_expression "(undefined4 *)((int)local_1a0 + local_1d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_1a0 + local_1d0)" ( (binary_expression "(int)local_1a0 + local_1d0" (cast_expression "(int)local_1a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) })) (expression_statement "pbVar4 = local_1c4;" (assignment_expression "pbVar4 = local_1c4" identifier = identifier) ;) (expression_statement "puVar8 = auStack_220;" (assignment_expression "puVar8 = auStack_220" identifier = identifier) ;) (expression_statement "local_13c = local_1c4;" (assignment_expression "local_13c = local_1c4" identifier = identifier) ;) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_136 = 0;" (assignment_expression "uStack_136 = 0" identifier = number_literal) ;) (expression_statement "uStack_135 = 0;" (assignment_expression "uStack_135 = 0" identifier = number_literal) ;) (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" identifier = number_literal) ;) comment (expression_statement "FUN_003699e0(param_1,local_1f8,local_1bc,0);" (call_expression "FUN_003699e0(param_1,local_1f8,local_1bc,0)" identifier (argument_list "(param_1,local_1f8,local_1bc,0)" ( identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_13c != pbVar4)" ( (binary_expression "local_13c != pbVar4" identifier != identifier) )) (compound_statement "{\n      FUN_003ae080();\n    }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar2 = local_1bc;" (assignment_expression "puVar2 = local_1bc" identifier = identifier) ;) comment (expression_statement "FUN_003699e0(param_1,local_1c8,local_1bc,0);" (call_expression "FUN_003699e0(param_1,local_1c8,local_1bc,0)" identifier (argument_list "(param_1,local_1c8,local_1bc,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);" (call_expression "FUN_003699e0(param_1,local_1cc,puVar2,local_1b4)" identifier (argument_list "(param_1,local_1cc,puVar2,local_1b4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);" (call_expression "FUN_003699e0(param_1,local_1dc,puVar2,local_1b4)" identifier (argument_list "(param_1,local_1dc,puVar2,local_1b4)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (local_ec == 0) goto LAB_0036a97f;" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (goto_statement "goto LAB_0036a97f;" goto statement_identifier ;)) (expression_statement "FUN_00346850();" (call_expression "FUN_00346850()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */\n        FUN_00369780();\nLAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }" if (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) (compound_statement "{\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */\n        FUN_00369780();\nLAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }" { (expression_statement "local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);" (assignment_expression "local_1a0 = (undefined4 *)(local_ec + (int)local_1a0)" identifier = (cast_expression "(undefined4 *)(local_ec + (int)local_1a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + (int)local_1a0)" ( (binary_expression "local_ec + (int)local_1a0" identifier + (cast_expression "(int)local_1a0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_a0 == 0) goto LAB_0036a989;" if (parenthesized_expression "(local_a0 == 0)" ( (binary_expression "local_a0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0036a989;" goto statement_identifier ;)) (expression_statement "FUN_00346850();" (call_expression "FUN_00346850()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_a0 == 0) {\n                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */\n        FUN_00369780();\nLAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();\n      }" if (parenthesized_expression "(local_a0 == 0)" ( (binary_expression "local_a0 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */\n        FUN_00369780();\nLAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();\n      }" { comment (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0036a918:\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0();" statement_identifier : comment (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);" (assignment_expression "local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0)" identifier = (cast_expression "(undefined4 *)(local_a0 + (int)local_1a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0 + (int)local_1a0)" ( (binary_expression "local_a0 + (int)local_1a0" identifier + (cast_expression "(int)local_1a0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;" if (parenthesized_expression "((int)local_1a0 - (int)puVar5 != local_1d8)" ( (binary_expression "(int)local_1a0 - (int)puVar5 != local_1d8" (binary_expression "(int)local_1a0 - (int)puVar5" (cast_expression "(int)local_1a0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) (goto_statement "goto LAB_0036a918;" goto statement_identifier ;)) (expression_statement "*(undefined4 **)(param_1 + 0x12) = puVar5;" (assignment_expression "*(undefined4 **)(param_1 + 0x12) = puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x12)" * (cast_expression "(undefined4 **)(param_1 + 0x12)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x12)" ( (binary_expression "param_1 + 0x12" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x14) = local_1d8;" (assignment_expression "*(int *)(param_1 + 0x14) = local_1d8" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0023dd30();" (call_expression "FUN_0023dd30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00347ed0();" (call_expression "FUN_00347ed0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00347ed0();" (call_expression "FUN_00347ed0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }" if (parenthesized_expression "(local_154 != local_1f4)" ( (binary_expression "local_154 != local_1f4" identifier != identifier) )) (compound_statement "{\n        FUN_003ae080();\n      }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }" if (parenthesized_expression "(local_16c != local_1f0)" ( (binary_expression "local_16c != local_1f0" identifier != identifier) )) (compound_statement "{\n        FUN_003ae080();\n      }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }" if (parenthesized_expression "(local_184 != local_1ec)" ( (binary_expression "local_184 != local_1ec" identifier != identifier) )) (compound_statement "{\n        FUN_003ae080();\n      }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_19c == local_1e0) goto LAB_0036a753;" if (parenthesized_expression "(local_19c == local_1e0)" ( (binary_expression "local_19c == local_1e0" identifier == identifier) )) (goto_statement "goto LAB_0036a753;" goto statement_identifier ;)) (expression_statement "puVar9 = &stack0xfffffdd0;" (assignment_expression "puVar9 = &stack0xfffffdd0" identifier = (pointer_expression "&stack0xfffffdd0" & identifier)) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0036a750;" goto statement_identifier ;) })) }))) (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0036a989:\n  FUN_00369780();" statement_identifier : (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;)) comment (if_statement "if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_16c != local_1f0)" ( (binary_expression "local_16c != local_1f0" identifier != identifier) )) (compound_statement "{\n    FUN_003ae080();\n  }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_184 != local_1ec)" ( (binary_expression "local_184 != local_1ec" identifier != identifier) )) (compound_statement "{\n    FUN_003ae080();\n  }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_19c != local_1e0)" ( (binary_expression "local_19c != local_1e0" identifier != identifier) )) (compound_statement "{\n    FUN_003ae080();\n  }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0023e020();" (call_expression "FUN_0023e020()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "FUN_004451f0();" (call_expression "FUN_004451f0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original name: sized_convert<32, true>\n   DWARF original prototype: bool sized_convert<32,_true>(Binary_to_elf * this, Task * task) */\n\nbool __thiscall gold::Binary_to_elf::sized_convert<32,_true>(Binary_to_elf *this,Task *task)\n\n{\n  uchar *pout;\n  string mangled_name;\n  string start_symbol_name;\n  string end_symbol_name;\n  string size_symbol_name;\n  uchar e_ident [16];\n  Stringpool strtab;\n  Stringpool shstrtab;\n  File_read f;\n  \n}\n\n" comment comment (declaration "bool __thiscall gold::Binary_to_elf::sized_convert<32,_true>(Binary_to_elf *this,Task *task)\n\n{\n  uchar *pout;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Binary_to_elf::" identifier : : identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>(Binary_to_elf" identifier > ( identifier) (pointer_declarator "*this" * identifier) , (ERROR "Task *task)\n\n{\n  uchar" identifier (pointer_declarator "*task" * identifier) ) { identifier) (pointer_declarator "*pout" * identifier) ;) (declaration "string mangled_name;" type_identifier identifier ;) (declaration "string start_symbol_name;" type_identifier identifier ;) (declaration "string end_symbol_name;" type_identifier identifier ;) (declaration "string size_symbol_name;" type_identifier identifier ;) (declaration "uchar e_ident [16];" type_identifier (array_declarator "e_ident [16]" identifier [ number_literal ]) ;) (declaration "Stringpool strtab;" type_identifier identifier ;) (declaration "Stringpool shstrtab;" type_identifier identifier ;) (declaration "File_read f;" type_identifier identifier ;) (ERROR "}" }))
(translation_unit "char FUN_00369e80(ushort *param_1)\n\n{\n  ushort uVar1;\n  undefined1 *puVar2;\n  undefined **ppuVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  size_t sVar7;\n  undefined4 *puVar8;\n  undefined4 auStack_220 [4];\n  void *local_210;\n  undefined **local_20c;\n  undefined **local_208;\n  undefined **local_204;\n  undefined **local_200;\n  int local_1fc;\n  byte **local_1f8;\n  undefined1 *local_1f4;\n  undefined1 *local_1f0;\n  undefined1 *local_1ec;\n  uint local_1e8;\n  char local_1e1;\n  byte *local_1e0;\n  undefined1 **local_1dc;\n  int local_1d8;\n  int local_1d4;\n  size_t local_1d0;\n  undefined1 **local_1cc;\n  undefined1 **local_1c8;\n  byte *local_1c4;\n  undefined1 **local_1c0;\n  undefined1 *local_1bc;\n  undefined4 **local_1b8;\n  size_t local_1b4;\n  undefined **local_1b0;\n  undefined4 *local_1a0;\n  byte *local_19c;\n  int local_198;\n  byte local_194 [16];\n  undefined1 *local_184;\n  int local_180;\n  undefined1 local_17c [16];\n  undefined1 *local_16c;\n  int local_168;\n  undefined1 local_164 [16];\n  undefined1 *local_154;\n  int local_150;\n  undefined1 local_14c [16];\n  byte *local_13c;\n  undefined2 local_138;\n  undefined1 uStack_136;\n  undefined1 uStack_135;\n  byte local_134;\n  undefined1 uStack_133;\n  undefined2 uStack_132;\n  undefined2 local_130;\n  undefined2 uStack_12e;\n  undefined1 local_124 [56];\n  int local_ec;\n  undefined1 local_d8 [56];\n  int local_a0;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined1 local_84 [16];\n  undefined4 local_74;\n  undefined1 local_70;\n  undefined4 local_6c;\n  size_t local_68;\n  int local_64;\n  undefined1 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined4 ***local_34;\n  undefined4 ***local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined1 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined1 *puVar9;\n  \n  local_8c = local_84;\n  local_1c0 = &local_8c;\n  uStack_14 = 0x369e94;\n  local_1b0 = &__DT_PLTGOT;\n  local_40 = &local_48;\n  local_34 = &local_34;\n  local_88 = 0;\n  local_84[0] = 0;\n  local_74 = 0xffffffff;\n  local_70 = 0;\n  local_6c = 0;\n  local_68 = 0;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_44 = 0;\n  local_38 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = 1;\n  local_20 = 0;\n  local_3c = local_40;\n  local_30 = local_34;\n                    \n  local_1e1 = FUN_0023cb20();\n  sVar7 = local_68;\n  if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    \n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }\n  local_1b4 = local_68;\n  if (local_64 != 0) {\n                    \n                    \n    FUN_002446e0();\n  }\n  if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }\n  local_1e8 = sVar7 + 3 & 0xfffffffc;\n  local_1e0 = local_194;\n  auStack_220[0] = 0;\n  local_19c = local_1e0;\n  FUN_0014fca0();\n  pbVar4 = local_19c;\n  if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }\n  local_1f8 = &local_13c;\n                    \n  FUN_0014f900();\n  pbVar4 = local_19c;\n  local_1c4 = &local_134;\n  sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n  if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }\n  local_1c4 = pbVar4;\n  local_138 = 0;\n  uStack_136 = 0;\n  uStack_135 = 0;\n  *local_13c = 0;\n  if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }\n  local_1ec = local_17c;\n  local_1c8 = &local_184;\n  local_184 = local_1ec;\n  FUN_0014fca0();\n  if (0x7fffffffU - local_180 < 6) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1f0 = local_164;\n  local_1cc = &local_16c;\n  local_16c = local_1f0;\n                    \n  FUN_0014fca0();\n  if (0x7fffffffU - local_168 < 4) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1f4 = local_14c;\n  local_1dc = &local_154;\n  local_154 = local_1f4;\n                    \n  FUN_0014fca0();\n  if (0x7fffffffU - local_150 < 5) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1bc = local_124;\n                    \n  FUN_00346670();\n                    \n  FUN_00349de0();\n  ppuVar3 = local_1b0;\n  FUN_00349de0();\n  FUN_00349de0();\n  FUN_0034b2b0();\n  FUN_00346670();\n  local_200 = ppuVar3 + -0x57f35;\n                    \n  FUN_00349de0();\n  local_204 = ppuVar3 + -0x57f9c;\n  FUN_00349de0();\n  local_208 = ppuVar3 + -0x57f94;\n  FUN_00349de0();\n  local_20c = ppuVar3 + -0x57f92;\n  FUN_00349de0();\n  FUN_0034b2b0();\n  local_1fc = local_1e8 + 0xfc;\n  local_1d0 = local_1e8 + 0x13c;\n  if (local_ec == 0) {\n                    \n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }\n  FUN_00369780();\nLAB_0036a989:\n  FUN_00369780();\n                    \n  if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }\n  if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }\n  if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }\n  FUN_0023e020();\n                    \n  FUN_004451f0();\n}\n\n" (function_definition "char FUN_00369e80(ushort *param_1)\n\n{\n  ushort uVar1;\n  undefined1 *puVar2;\n  undefined **ppuVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  size_t sVar7;\n  undefined4 *puVar8;\n  undefined4 auStack_220 [4];\n  void *local_210;\n  undefined **local_20c;\n  undefined **local_208;\n  undefined **local_204;\n  undefined **local_200;\n  int local_1fc;\n  byte **local_1f8;\n  undefined1 *local_1f4;\n  undefined1 *local_1f0;\n  undefined1 *local_1ec;\n  uint local_1e8;\n  char local_1e1;\n  byte *local_1e0;\n  undefined1 **local_1dc;\n  int local_1d8;\n  int local_1d4;\n  size_t local_1d0;\n  undefined1 **local_1cc;\n  undefined1 **local_1c8;\n  byte *local_1c4;\n  undefined1 **local_1c0;\n  undefined1 *local_1bc;\n  undefined4 **local_1b8;\n  size_t local_1b4;\n  undefined **local_1b0;\n  undefined4 *local_1a0;\n  byte *local_19c;\n  int local_198;\n  byte local_194 [16];\n  undefined1 *local_184;\n  int local_180;\n  undefined1 local_17c [16];\n  undefined1 *local_16c;\n  int local_168;\n  undefined1 local_164 [16];\n  undefined1 *local_154;\n  int local_150;\n  undefined1 local_14c [16];\n  byte *local_13c;\n  undefined2 local_138;\n  undefined1 uStack_136;\n  undefined1 uStack_135;\n  byte local_134;\n  undefined1 uStack_133;\n  undefined2 uStack_132;\n  undefined2 local_130;\n  undefined2 uStack_12e;\n  undefined1 local_124 [56];\n  int local_ec;\n  undefined1 local_d8 [56];\n  int local_a0;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined1 local_84 [16];\n  undefined4 local_74;\n  undefined1 local_70;\n  undefined4 local_6c;\n  size_t local_68;\n  int local_64;\n  undefined1 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined4 ***local_34;\n  undefined4 ***local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined1 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined1 *puVar9;\n  \n  local_8c = local_84;\n  local_1c0 = &local_8c;\n  uStack_14 = 0x369e94;\n  local_1b0 = &__DT_PLTGOT;\n  local_40 = &local_48;\n  local_34 = &local_34;\n  local_88 = 0;\n  local_84[0] = 0;\n  local_74 = 0xffffffff;\n  local_70 = 0;\n  local_6c = 0;\n  local_68 = 0;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_44 = 0;\n  local_38 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = 1;\n  local_20 = 0;\n  local_3c = local_40;\n  local_30 = local_34;\n                    \n  local_1e1 = FUN_0023cb20();\n  sVar7 = local_68;\n  if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    \n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }\n  local_1b4 = local_68;\n  if (local_64 != 0) {\n                    \n                    \n    FUN_002446e0();\n  }\n  if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }\n  local_1e8 = sVar7 + 3 & 0xfffffffc;\n  local_1e0 = local_194;\n  auStack_220[0] = 0;\n  local_19c = local_1e0;\n  FUN_0014fca0();\n  pbVar4 = local_19c;\n  if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }\n  local_1f8 = &local_13c;\n                    \n  FUN_0014f900();\n  pbVar4 = local_19c;\n  local_1c4 = &local_134;\n  sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n  if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }\n  local_1c4 = pbVar4;\n  local_138 = 0;\n  uStack_136 = 0;\n  uStack_135 = 0;\n  *local_13c = 0;\n  if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }\n  local_1ec = local_17c;\n  local_1c8 = &local_184;\n  local_184 = local_1ec;\n  FUN_0014fca0();\n  if (0x7fffffffU - local_180 < 6) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1f0 = local_164;\n  local_1cc = &local_16c;\n  local_16c = local_1f0;\n                    \n  FUN_0014fca0();\n  if (0x7fffffffU - local_168 < 4) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1f4 = local_14c;\n  local_1dc = &local_154;\n  local_154 = local_1f4;\n                    \n  FUN_0014fca0();\n  if (0x7fffffffU - local_150 < 5) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1bc = local_124;\n                    \n  FUN_00346670();\n                    \n  FUN_00349de0();\n  ppuVar3 = local_1b0;\n  FUN_00349de0();\n  FUN_00349de0();\n  FUN_0034b2b0();\n  FUN_00346670();\n  local_200 = ppuVar3 + -0x57f35;\n                    \n  FUN_00349de0();\n  local_204 = ppuVar3 + -0x57f9c;\n  FUN_00349de0();\n  local_208 = ppuVar3 + -0x57f94;\n  FUN_00349de0();\n  local_20c = ppuVar3 + -0x57f92;\n  FUN_00349de0();\n  FUN_0034b2b0();\n  local_1fc = local_1e8 + 0xfc;\n  local_1d0 = local_1e8 + 0x13c;\n  if (local_ec == 0) {\n                    \n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }\n  FUN_00369780();\nLAB_0036a989:\n  FUN_00369780();\n                    \n  if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }\n  if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }\n  if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }\n  FUN_0023e020();\n                    \n  FUN_004451f0();\n}" primitive_type (function_declarator "FUN_00369e80(ushort *param_1)" identifier (parameter_list "(ushort *param_1)" ( (parameter_declaration "ushort *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  undefined1 *puVar2;\n  undefined **ppuVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  size_t sVar7;\n  undefined4 *puVar8;\n  undefined4 auStack_220 [4];\n  void *local_210;\n  undefined **local_20c;\n  undefined **local_208;\n  undefined **local_204;\n  undefined **local_200;\n  int local_1fc;\n  byte **local_1f8;\n  undefined1 *local_1f4;\n  undefined1 *local_1f0;\n  undefined1 *local_1ec;\n  uint local_1e8;\n  char local_1e1;\n  byte *local_1e0;\n  undefined1 **local_1dc;\n  int local_1d8;\n  int local_1d4;\n  size_t local_1d0;\n  undefined1 **local_1cc;\n  undefined1 **local_1c8;\n  byte *local_1c4;\n  undefined1 **local_1c0;\n  undefined1 *local_1bc;\n  undefined4 **local_1b8;\n  size_t local_1b4;\n  undefined **local_1b0;\n  undefined4 *local_1a0;\n  byte *local_19c;\n  int local_198;\n  byte local_194 [16];\n  undefined1 *local_184;\n  int local_180;\n  undefined1 local_17c [16];\n  undefined1 *local_16c;\n  int local_168;\n  undefined1 local_164 [16];\n  undefined1 *local_154;\n  int local_150;\n  undefined1 local_14c [16];\n  byte *local_13c;\n  undefined2 local_138;\n  undefined1 uStack_136;\n  undefined1 uStack_135;\n  byte local_134;\n  undefined1 uStack_133;\n  undefined2 uStack_132;\n  undefined2 local_130;\n  undefined2 uStack_12e;\n  undefined1 local_124 [56];\n  int local_ec;\n  undefined1 local_d8 [56];\n  int local_a0;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined1 local_84 [16];\n  undefined4 local_74;\n  undefined1 local_70;\n  undefined4 local_6c;\n  size_t local_68;\n  int local_64;\n  undefined1 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined4 ***local_34;\n  undefined4 ***local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined1 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined1 *puVar9;\n  \n  local_8c = local_84;\n  local_1c0 = &local_8c;\n  uStack_14 = 0x369e94;\n  local_1b0 = &__DT_PLTGOT;\n  local_40 = &local_48;\n  local_34 = &local_34;\n  local_88 = 0;\n  local_84[0] = 0;\n  local_74 = 0xffffffff;\n  local_70 = 0;\n  local_6c = 0;\n  local_68 = 0;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_44 = 0;\n  local_38 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = 1;\n  local_20 = 0;\n  local_3c = local_40;\n  local_30 = local_34;\n                    \n  local_1e1 = FUN_0023cb20();\n  sVar7 = local_68;\n  if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    \n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }\n  local_1b4 = local_68;\n  if (local_64 != 0) {\n                    \n                    \n    FUN_002446e0();\n  }\n  if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }\n  local_1e8 = sVar7 + 3 & 0xfffffffc;\n  local_1e0 = local_194;\n  auStack_220[0] = 0;\n  local_19c = local_1e0;\n  FUN_0014fca0();\n  pbVar4 = local_19c;\n  if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }\n  local_1f8 = &local_13c;\n                    \n  FUN_0014f900();\n  pbVar4 = local_19c;\n  local_1c4 = &local_134;\n  sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n  if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }\n  local_1c4 = pbVar4;\n  local_138 = 0;\n  uStack_136 = 0;\n  uStack_135 = 0;\n  *local_13c = 0;\n  if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }\n  local_1ec = local_17c;\n  local_1c8 = &local_184;\n  local_184 = local_1ec;\n  FUN_0014fca0();\n  if (0x7fffffffU - local_180 < 6) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1f0 = local_164;\n  local_1cc = &local_16c;\n  local_16c = local_1f0;\n                    \n  FUN_0014fca0();\n  if (0x7fffffffU - local_168 < 4) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1f4 = local_14c;\n  local_1dc = &local_154;\n  local_154 = local_1f4;\n                    \n  FUN_0014fca0();\n  if (0x7fffffffU - local_150 < 5) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1bc = local_124;\n                    \n  FUN_00346670();\n                    \n  FUN_00349de0();\n  ppuVar3 = local_1b0;\n  FUN_00349de0();\n  FUN_00349de0();\n  FUN_0034b2b0();\n  FUN_00346670();\n  local_200 = ppuVar3 + -0x57f35;\n                    \n  FUN_00349de0();\n  local_204 = ppuVar3 + -0x57f9c;\n  FUN_00349de0();\n  local_208 = ppuVar3 + -0x57f94;\n  FUN_00349de0();\n  local_20c = ppuVar3 + -0x57f92;\n  FUN_00349de0();\n  FUN_0034b2b0();\n  local_1fc = local_1e8 + 0xfc;\n  local_1d0 = local_1e8 + 0x13c;\n  if (local_ec == 0) {\n                    \n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }\n  FUN_00369780();\nLAB_0036a989:\n  FUN_00369780();\n                    \n  if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }\n  if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }\n  if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }\n  FUN_0023e020();\n                    \n  FUN_004451f0();\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined **ppuVar3;" type_identifier (pointer_declarator "**ppuVar3" * (pointer_declarator "*ppuVar3" * identifier)) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 auStack_220 [4];" type_identifier (array_declarator "auStack_220 [4]" identifier [ number_literal ]) ;) (declaration "void *local_210;" primitive_type (pointer_declarator "*local_210" * identifier) ;) (declaration "undefined **local_20c;" type_identifier (pointer_declarator "**local_20c" * (pointer_declarator "*local_20c" * identifier)) ;) (declaration "undefined **local_208;" type_identifier (pointer_declarator "**local_208" * (pointer_declarator "*local_208" * identifier)) ;) (declaration "undefined **local_204;" type_identifier (pointer_declarator "**local_204" * (pointer_declarator "*local_204" * identifier)) ;) (declaration "undefined **local_200;" type_identifier (pointer_declarator "**local_200" * (pointer_declarator "*local_200" * identifier)) ;) (declaration "int local_1fc;" primitive_type identifier ;) (declaration "byte **local_1f8;" type_identifier (pointer_declarator "**local_1f8" * (pointer_declarator "*local_1f8" * identifier)) ;) (declaration "undefined1 *local_1f4;" type_identifier (pointer_declarator "*local_1f4" * identifier) ;) (declaration "undefined1 *local_1f0;" type_identifier (pointer_declarator "*local_1f0" * identifier) ;) (declaration "undefined1 *local_1ec;" type_identifier (pointer_declarator "*local_1ec" * identifier) ;) (declaration "uint local_1e8;" type_identifier identifier ;) (declaration "char local_1e1;" primitive_type identifier ;) (declaration "byte *local_1e0;" type_identifier (pointer_declarator "*local_1e0" * identifier) ;) (declaration "undefined1 **local_1dc;" type_identifier (pointer_declarator "**local_1dc" * (pointer_declarator "*local_1dc" * identifier)) ;) (declaration "int local_1d8;" primitive_type identifier ;) (declaration "int local_1d4;" primitive_type identifier ;) (declaration "size_t local_1d0;" primitive_type identifier ;) (declaration "undefined1 **local_1cc;" type_identifier (pointer_declarator "**local_1cc" * (pointer_declarator "*local_1cc" * identifier)) ;) (declaration "undefined1 **local_1c8;" type_identifier (pointer_declarator "**local_1c8" * (pointer_declarator "*local_1c8" * identifier)) ;) (declaration "byte *local_1c4;" type_identifier (pointer_declarator "*local_1c4" * identifier) ;) (declaration "undefined1 **local_1c0;" type_identifier (pointer_declarator "**local_1c0" * (pointer_declarator "*local_1c0" * identifier)) ;) (declaration "undefined1 *local_1bc;" type_identifier (pointer_declarator "*local_1bc" * identifier) ;) (declaration "undefined4 **local_1b8;" type_identifier (pointer_declarator "**local_1b8" * (pointer_declarator "*local_1b8" * identifier)) ;) (declaration "size_t local_1b4;" primitive_type identifier ;) (declaration "undefined **local_1b0;" type_identifier (pointer_declarator "**local_1b0" * (pointer_declarator "*local_1b0" * identifier)) ;) (declaration "undefined4 *local_1a0;" type_identifier (pointer_declarator "*local_1a0" * identifier) ;) (declaration "byte *local_19c;" type_identifier (pointer_declarator "*local_19c" * identifier) ;) (declaration "int local_198;" primitive_type identifier ;) (declaration "byte local_194 [16];" type_identifier (array_declarator "local_194 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_184;" type_identifier (pointer_declarator "*local_184" * identifier) ;) (declaration "int local_180;" primitive_type identifier ;) (declaration "undefined1 local_17c [16];" type_identifier (array_declarator "local_17c [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_16c;" type_identifier (pointer_declarator "*local_16c" * identifier) ;) (declaration "int local_168;" primitive_type identifier ;) (declaration "undefined1 local_164 [16];" type_identifier (array_declarator "local_164 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_154;" type_identifier (pointer_declarator "*local_154" * identifier) ;) (declaration "int local_150;" primitive_type identifier ;) (declaration "undefined1 local_14c [16];" type_identifier (array_declarator "local_14c [16]" identifier [ number_literal ]) ;) (declaration "byte *local_13c;" type_identifier (pointer_declarator "*local_13c" * identifier) ;) (declaration "undefined2 local_138;" type_identifier identifier ;) (declaration "undefined1 uStack_136;" type_identifier identifier ;) (declaration "undefined1 uStack_135;" type_identifier identifier ;) (declaration "byte local_134;" type_identifier identifier ;) (declaration "undefined1 uStack_133;" type_identifier identifier ;) (declaration "undefined2 uStack_132;" type_identifier identifier ;) (declaration "undefined2 local_130;" type_identifier identifier ;) (declaration "undefined2 uStack_12e;" type_identifier identifier ;) (declaration "undefined1 local_124 [56];" type_identifier (array_declarator "local_124 [56]" identifier [ number_literal ]) ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "undefined1 local_d8 [56];" type_identifier (array_declarator "local_d8 [56]" identifier [ number_literal ]) ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "undefined1 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined1 local_84 [16];" type_identifier (array_declarator "local_84 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined1 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "size_t local_68;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined1 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined4 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 ***local_34;" type_identifier (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier))) ;) (declaration "undefined4 ***local_30;" type_identifier (pointer_declarator "***local_30" * (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier))) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined1 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (expression_statement "local_8c = local_84;" (assignment_expression "local_8c = local_84" identifier = identifier) ;) (expression_statement "local_1c0 = &local_8c;" (assignment_expression "local_1c0 = &local_8c" identifier = (pointer_expression "&local_8c" & identifier)) ;) (expression_statement "uStack_14 = 0x369e94;" (assignment_expression "uStack_14 = 0x369e94" identifier = number_literal) ;) (expression_statement "local_1b0 = &__DT_PLTGOT;" (assignment_expression "local_1b0 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_40 = &local_48;" (assignment_expression "local_40 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "local_34 = &local_34;" (assignment_expression "local_34 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84[0] = 0;" (assignment_expression "local_84[0] = 0" (subscript_expression "local_84[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74 = 0xffffffff;" (assignment_expression "local_74 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 1;" (assignment_expression "local_24 = 1" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_3c = local_40;" (assignment_expression "local_3c = local_40" identifier = identifier) ;) (expression_statement "local_30 = local_34;" (assignment_expression "local_30 = local_34" identifier = identifier) ;) (expression_statement "local_1e1 = FUN_0023cb20();" (assignment_expression "local_1e1 = FUN_0023cb20()" identifier = (call_expression "FUN_0023cb20()" identifier (argument_list "()" ( )))) ;) (expression_statement "sVar7 = local_68;" (assignment_expression "sVar7 = local_68" identifier = identifier) ;) (if_statement "if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    \n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }" if (parenthesized_expression "(local_1e1 == '\0')" ( (binary_expression "local_1e1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    \n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }" { (expression_statement "auStack_220[0] = 0x36a85d;" (assignment_expression "auStack_220[0] = 0x36a85d" (subscript_expression "auStack_220[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar9 = &stack0xfffffdd4;" (assignment_expression "puVar9 = &stack0xfffffdd4" identifier = (pointer_expression "&stack0xfffffdd4" & identifier)) ;) (expression_statement "strerror(*piVar6);" (call_expression "strerror(*piVar6)" identifier (argument_list "(*piVar6)" ( (pointer_expression "*piVar6" * identifier) ))) ;) (expression_statement "gettext();" (call_expression "gettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0023b810();" (call_expression "FUN_0023b810()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);" statement_identifier : (expression_statement "puVar8 = (undefined4 *)(puVar9 + 0x10);" (assignment_expression "puVar8 = (undefined4 *)(puVar9 + 0x10)" identifier = (cast_expression "(undefined4 *)(puVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x10)" ( (binary_expression "puVar9 + 0x10" identifier + number_literal) )))) ;)) (labeled_statement "LAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;" statement_identifier : (expression_statement "*(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;" (assignment_expression "*(undefined1 ***)((int)puVar8 + -0x10) = local_1c0" (pointer_expression "*(undefined1 ***)((int)puVar8 + -0x10)" * (cast_expression "(undefined1 ***)((int)puVar8 + -0x10)" ( (type_descriptor "undefined1 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar8 + -0x10)" ( (binary_expression "(int)puVar8 + -0x10" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;" (assignment_expression "*(undefined4 *)((int)puVar8 + -0x14) = 0x36a767" (pointer_expression "*(undefined4 *)((int)puVar8 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar8 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + -0x14)" ( (binary_expression "(int)puVar8 + -0x14" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0023e020();" (call_expression "FUN_0023e020()" identifier (argument_list "()" ( ))) ;) (return_statement "return local_1e1;" return identifier ;) })) (expression_statement "local_1b4 = local_68;" (assignment_expression "local_1b4 = local_68" identifier = identifier) ;) (if_statement "if (local_64 != 0) {\n                    \n                    \n    FUN_002446e0();\n  }" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n                    \n    FUN_002446e0();\n  }" { (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }" if (parenthesized_expression "(local_68 == 0)" ( (binary_expression "local_68 == 0" identifier == number_literal) )) (compound_statement "{\n    local_210 = (void *)0x0;\n  }" { (expression_statement "local_210 = (void *)0x0;" (assignment_expression "local_210 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }" else (compound_statement "{\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }" { (expression_statement "auStack_220[0] = 0;" (assignment_expression "auStack_220[0] = 0" (subscript_expression "auStack_220[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_210 = (void *)FUN_0023eb50(local_1c0,0,0);" (assignment_expression "local_210 = (void *)FUN_0023eb50(local_1c0,0,0)" identifier = (cast_expression "(void *)FUN_0023eb50(local_1c0,0,0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023eb50(local_1c0,0,0)" identifier (argument_list "(local_1c0,0,0)" ( identifier , number_literal , number_literal ))))) ;) }))) (expression_statement "local_1e8 = sVar7 + 3 & 0xfffffffc;" (assignment_expression "local_1e8 = sVar7 + 3 & 0xfffffffc" identifier = (binary_expression "sVar7 + 3 & 0xfffffffc" (binary_expression "sVar7 + 3" identifier + number_literal) & number_literal)) ;) (expression_statement "local_1e0 = local_194;" (assignment_expression "local_1e0 = local_194" identifier = identifier) ;) (expression_statement "auStack_220[0] = 0;" (assignment_expression "auStack_220[0] = 0" (subscript_expression "auStack_220[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_19c = local_1e0;" (assignment_expression "local_19c = local_1e0" identifier = identifier) ;) (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar4 = local_19c;" (assignment_expression "pbVar4 = local_19c" identifier = identifier) ;) (if_statement "if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }" if (parenthesized_expression "(local_198 != 0)" ( (binary_expression "local_198 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }" { (do_statement "do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);" do (compound_statement "{\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    }" { (if_statement "if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }" if (parenthesized_expression "((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0)" ( (binary_expression "(*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0" (parenthesized_expression "(*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c)" ( (binary_expression "*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c" (pointer_expression "*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60)" * (cast_expression "(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60)" ( (binary_expression "(int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60" (binary_expression "(int)local_1b0 + (uint)*pbVar4 * 2" (cast_expression "(int)local_1b0" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*pbVar4 * 2" (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *pbVar4 = 0x5f;\n      }" { (expression_statement "*pbVar4 = 0x5f;" (assignment_expression "*pbVar4 = 0x5f" (pointer_expression "*pbVar4" * identifier) = number_literal) ;) })) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_19c + local_198 != pbVar4)" ( (binary_expression "local_19c + local_198 != pbVar4" (binary_expression "local_19c + local_198" identifier + identifier) != identifier) )) ;) })) (expression_statement "local_1f8 = &local_13c;" (assignment_expression "local_1f8 = &local_13c" identifier = (pointer_expression "&local_13c" & identifier)) ;) (expression_statement "FUN_0014f900();" (call_expression "FUN_0014f900()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar4 = local_19c;" (assignment_expression "pbVar4 = local_19c" identifier = identifier) ;) (expression_statement "local_1c4 = &local_134;" (assignment_expression "local_1c4 = &local_134" identifier = (pointer_expression "&local_134" & identifier)) ;) (expression_statement "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));" (assignment_expression "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier = (call_expression "CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier (argument_list "(uStack_135,CONCAT12(uStack_136,local_138))" ( identifier , (call_expression "CONCAT12(uStack_136,local_138)" identifier (argument_list "(uStack_136,local_138)" ( identifier , identifier ))) )))) ;) (if_statement "if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" if (parenthesized_expression "(local_13c == local_1c4)" ( (binary_expression "local_13c == local_1c4" identifier == identifier) )) (compound_statement "{\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }" { (if_statement "if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }" if (parenthesized_expression "(sVar7 != 0)" ( (binary_expression "sVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }" { (if_statement "if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" if (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) (compound_statement "{\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" { (expression_statement "*local_19c = local_134;" (assignment_expression "*local_19c = local_134" (pointer_expression "*local_19c" * identifier) = identifier) ;) (expression_statement "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));" (assignment_expression "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier = (call_expression "CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier (argument_list "(uStack_135,CONCAT12(uStack_136,local_138))" ( identifier , (call_expression "CONCAT12(uStack_136,local_138)" identifier (argument_list "(uStack_136,local_138)" ( identifier , identifier ))) )))) ;) }) (else_clause "else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" else (compound_statement "{\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" { (expression_statement "memcpy(local_19c,local_1c4,sVar7);" (call_expression "memcpy(local_19c,local_1c4,sVar7)" identifier (argument_list "(local_19c,local_1c4,sVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));" (assignment_expression "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier = (call_expression "CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" identifier (argument_list "(uStack_135,CONCAT12(uStack_136,local_138))" ( identifier , (call_expression "CONCAT12(uStack_136,local_138)" identifier (argument_list "(uStack_136,local_138)" ( identifier , identifier ))) )))) ;) }))) })) (expression_statement "local_19c[sVar7] = 0;" (assignment_expression "local_19c[sVar7] = 0" (subscript_expression "local_19c[sVar7]" identifier [ identifier ]) = number_literal) ;) (expression_statement "pbVar4 = local_1c4;" (assignment_expression "pbVar4 = local_1c4" identifier = identifier) ;) }) (else_clause "else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" else (if_statement "if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" if (parenthesized_expression "((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0))" ( (binary_expression "(local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)" (parenthesized_expression "(local_19c == local_1e0)" ( (binary_expression "local_19c == local_1e0" identifier == identifier) )) || (parenthesized_expression "(local_19c = local_13c, pbVar4 == (byte *)0x0)" ( (comma_expression "local_19c = local_13c, pbVar4 == (byte *)0x0" (assignment_expression "local_19c = local_13c" identifier = identifier) , (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }" { (expression_statement "local_19c = local_13c;" (assignment_expression "local_19c = local_13c" identifier = identifier) ;) (expression_statement "pbVar4 = &local_134;" (assignment_expression "pbVar4 = &local_134" identifier = (pointer_expression "&local_134" & identifier)) ;) (expression_statement "local_13c = local_1c4;" (assignment_expression "local_13c = local_1c4" identifier = identifier) ;) }) (else_clause "else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" else (compound_statement "{\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" { (expression_statement "local_13c = pbVar4;" (assignment_expression "local_13c = pbVar4" identifier = identifier) ;) (expression_statement "local_134 = (byte)local_194._0_4_;" (assignment_expression "local_134 = (byte)local_194._0_4_" identifier = (cast_expression "(byte)local_194._0_4_" ( (type_descriptor "byte" type_identifier) ) (field_expression "local_194._0_4_" identifier . field_identifier))) ;) (expression_statement "uStack_133 = SUB41(local_194._0_4_,1);" (assignment_expression "uStack_133 = SUB41(local_194._0_4_,1)" identifier = (call_expression "SUB41(local_194._0_4_,1)" identifier (argument_list "(local_194._0_4_,1)" ( (field_expression "local_194._0_4_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "uStack_132 = SUB42(local_194._0_4_,2);" (assignment_expression "uStack_132 = SUB42(local_194._0_4_,2)" identifier = (call_expression "SUB42(local_194._0_4_,2)" identifier (argument_list "(local_194._0_4_,2)" ( (field_expression "local_194._0_4_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "pbVar4 = local_1c4;" (assignment_expression "pbVar4 = local_1c4" identifier = identifier) ;) }))))) (expression_statement "local_1c4 = pbVar4;" (assignment_expression "local_1c4 = pbVar4" identifier = identifier) ;) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_136 = 0;" (assignment_expression "uStack_136 = 0" identifier = number_literal) ;) (expression_statement "uStack_135 = 0;" (assignment_expression "uStack_135 = 0" identifier = number_literal) ;) (expression_statement "*local_13c = 0;" (assignment_expression "*local_13c = 0" (pointer_expression "*local_13c" * identifier) = number_literal) ;) (if_statement "if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_13c != local_1c4)" ( (binary_expression "local_13c != local_1c4" identifier != identifier) )) (compound_statement "{\n    FUN_003ae080();\n  }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_1ec = local_17c;" (assignment_expression "local_1ec = local_17c" identifier = identifier) ;) (expression_statement "local_1c8 = &local_184;" (assignment_expression "local_1c8 = &local_184" identifier = (pointer_expression "&local_184" & identifier)) ;) (expression_statement "local_184 = local_1ec;" (assignment_expression "local_184 = local_1ec" identifier = identifier) ;) (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0x7fffffffU - local_180 < 6) {\n                    \n                    \n    FUN_003f3a70();\n  }" if (parenthesized_expression "(0x7fffffffU - local_180 < 6)" ( (binary_expression "0x7fffffffU - local_180 < 6" (binary_expression "0x7fffffffU - local_180" number_literal - identifier) < number_literal) )) (compound_statement "{\n                    \n                    \n    FUN_003f3a70();\n  }" { (expression_statement "FUN_003f3a70();" (call_expression "FUN_003f3a70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_003b7890();" (call_expression "FUN_003b7890()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1f0 = local_164;" (assignment_expression "local_1f0 = local_164" identifier = identifier) ;) (expression_statement "local_1cc = &local_16c;" (assignment_expression "local_1cc = &local_16c" identifier = (pointer_expression "&local_16c" & identifier)) ;) (expression_statement "local_16c = local_1f0;" (assignment_expression "local_16c = local_1f0" identifier = identifier) ;) (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0x7fffffffU - local_168 < 4) {\n                    \n                    \n    FUN_003f3a70();\n  }" if (parenthesized_expression "(0x7fffffffU - local_168 < 4)" ( (binary_expression "0x7fffffffU - local_168 < 4" (binary_expression "0x7fffffffU - local_168" number_literal - identifier) < number_literal) )) (compound_statement "{\n                    \n                    \n    FUN_003f3a70();\n  }" { (expression_statement "FUN_003f3a70();" (call_expression "FUN_003f3a70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_003b7890();" (call_expression "FUN_003b7890()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1f4 = local_14c;" (assignment_expression "local_1f4 = local_14c" identifier = identifier) ;) (expression_statement "local_1dc = &local_154;" (assignment_expression "local_1dc = &local_154" identifier = (pointer_expression "&local_154" & identifier)) ;) (expression_statement "local_154 = local_1f4;" (assignment_expression "local_154 = local_1f4" identifier = identifier) ;) (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0x7fffffffU - local_150 < 5) {\n                    \n                    \n    FUN_003f3a70();\n  }" if (parenthesized_expression "(0x7fffffffU - local_150 < 5)" ( (binary_expression "0x7fffffffU - local_150 < 5" (binary_expression "0x7fffffffU - local_150" number_literal - identifier) < number_literal) )) (compound_statement "{\n                    \n                    \n    FUN_003f3a70();\n  }" { (expression_statement "FUN_003f3a70();" (call_expression "FUN_003f3a70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_003b7890();" (call_expression "FUN_003b7890()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1bc = local_124;" (assignment_expression "local_1bc = local_124" identifier = identifier) ;) (expression_statement "FUN_00346670();" (call_expression "FUN_00346670()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar3 = local_1b0;" (assignment_expression "ppuVar3 = local_1b0" identifier = identifier) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0034b2b0();" (call_expression "FUN_0034b2b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00346670();" (call_expression "FUN_00346670()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_200 = ppuVar3 + -0x57f35;" (assignment_expression "local_200 = ppuVar3 + -0x57f35" identifier = (binary_expression "ppuVar3 + -0x57f35" identifier + number_literal)) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_204 = ppuVar3 + -0x57f9c;" (assignment_expression "local_204 = ppuVar3 + -0x57f9c" identifier = (binary_expression "ppuVar3 + -0x57f9c" identifier + number_literal)) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_208 = ppuVar3 + -0x57f94;" (assignment_expression "local_208 = ppuVar3 + -0x57f94" identifier = (binary_expression "ppuVar3 + -0x57f94" identifier + number_literal)) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_20c = ppuVar3 + -0x57f92;" (assignment_expression "local_20c = ppuVar3 + -0x57f92" identifier = (binary_expression "ppuVar3 + -0x57f92" identifier + number_literal)) ;) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0034b2b0();" (call_expression "FUN_0034b2b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1fc = local_1e8 + 0xfc;" (assignment_expression "local_1fc = local_1e8 + 0xfc" identifier = (binary_expression "local_1e8 + 0xfc" identifier + number_literal)) ;) (expression_statement "local_1d0 = local_1e8 + 0x13c;" (assignment_expression "local_1d0 = local_1e8 + 0x13c" identifier = (binary_expression "local_1e8 + 0x13c" identifier + number_literal)) ;) (if_statement "if (local_ec == 0) {\n                    \n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }" { (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0036a970:\n    FUN_00369780();" statement_identifier : (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0036a975:\n    FUN_00369780();" statement_identifier : (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0036a97a:\n    FUN_00369780();" statement_identifier : (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0036a97f:\n    FUN_00369780();" statement_identifier : (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;)) }) (else_clause "else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }" else (compound_statement "{\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }" { (expression_statement "local_1d4 = local_ec + local_1d0;" (assignment_expression "local_1d4 = local_ec + local_1d0" identifier = (binary_expression "local_ec + local_1d0" identifier + identifier)) ;) (if_statement "if (local_a0 == 0) goto LAB_0036a970;" if (parenthesized_expression "(local_a0 == 0)" ( (binary_expression "local_a0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0036a970;" goto statement_identifier ;)) (expression_statement "local_1d8 = local_a0 + local_1d4;" (assignment_expression "local_1d8 = local_a0 + local_1d4" identifier = (binary_expression "local_a0 + local_1d4" identifier + identifier)) ;) (expression_statement "puVar5 = (undefined4 *)FUN_003ac450();" (assignment_expression "puVar5 = (undefined4 *)FUN_003ac450()" identifier = (cast_expression "(undefined4 *)FUN_003ac450()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac450()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uStack_135 = 0;" (assignment_expression "uStack_135 = 0" identifier = number_literal) ;) (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" identifier = number_literal) ;) (expression_statement "uStack_133 = 0;" (assignment_expression "uStack_133 = 0" identifier = number_literal) ;) (expression_statement "local_138 = 0x201;" (assignment_expression "local_138 = 0x201" identifier = number_literal) ;) (expression_statement "uStack_136 = 1;" (assignment_expression "uStack_136 = 1" identifier = number_literal) ;) (expression_statement "uStack_132 = 0;" (assignment_expression "uStack_132 = 0" identifier = number_literal) ;) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" identifier = number_literal) ;) (expression_statement "puVar5[1] = 0x10201;" (assignment_expression "puVar5[1] = 0x10201" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_12e = 0;" (assignment_expression "uStack_12e = 0" identifier = number_literal) ;) (expression_statement "local_1b8 = &local_1a0;" (assignment_expression "local_1b8 = &local_1a0" identifier = (pointer_expression "&local_1a0" & identifier)) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = 0x464c457f;" (assignment_expression "*puVar5 = 0x464c457f" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar5 + 4) = 0x100;" (assignment_expression "*(undefined2 *)(puVar5 + 4) = 0x100" (pointer_expression "*(undefined2 *)(puVar5 + 4)" * (cast_expression "(undefined2 *)(puVar5 + 4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar5[5] = 0x1000000;" (assignment_expression "puVar5[5] = 0x1000000" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0;" (assignment_expression "puVar5[6] = 0" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;" (assignment_expression "*(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8" (pointer_expression "*(ushort *)((int)puVar5 + 0x12)" * (cast_expression "(ushort *)((int)puVar5 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 0x12)" ( (binary_expression "(int)puVar5 + 0x12" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar1 << 8 | uVar1 >> 8" (binary_expression "uVar1 << 8" identifier << number_literal) | (binary_expression "uVar1 >> 8" identifier >> number_literal))) ;) (expression_statement "local_1a0 = puVar5 + 0xd;" (assignment_expression "local_1a0 = puVar5 + 0xd" identifier = (binary_expression "puVar5 + 0xd" identifier + number_literal)) ;) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0x34000000;" (assignment_expression "puVar5[8] = 0x34000000" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = 0;" (assignment_expression "puVar5[9] = 0" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = 0x3400;" (assignment_expression "puVar5[10] = 0x3400" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = 0x28000000;" (assignment_expression "puVar5[0xb] = 0x28000000" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = 0x4000500;" (assignment_expression "puVar5[0xc] = 0x4000500" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_13c = (byte *)0x464c457f;" (assignment_expression "local_13c = (byte *)0x464c457f" identifier = (cast_expression "(byte *)0x464c457f" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);" (call_expression "FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0)" identifier (argument_list "(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0)" ( identifier , (binary_expression "(int)local_1b0 + -0x14c4ea" (cast_expression "(int)local_1b0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);" (call_expression "FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0)" identifier (argument_list "(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0)" ( identifier , identifier , identifier , number_literal , number_literal , number_literal , identifier , number_literal ))) ;) (expression_statement "FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);" (call_expression "FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3)" identifier (argument_list "(param_1,local_204,local_d8,2,0,local_1fc,0x40,3)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (if_statement "if (local_ec == 0) goto LAB_0036a975;" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (goto_statement "goto LAB_0036a975;" goto statement_identifier ;)) (expression_statement "FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);" (call_expression "FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0)" identifier (argument_list "(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (local_a0 == 0) goto LAB_0036a97a;" if (parenthesized_expression "(local_a0 == 0)" ( (binary_expression "local_a0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0036a97a;" goto statement_identifier ;)) (expression_statement "FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);" (call_expression "FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0)" identifier (argument_list "(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }" if (parenthesized_expression "(local_1b4 != 0)" ( (binary_expression "local_1b4 != 0" identifier != number_literal) )) (compound_statement "{\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }" { (expression_statement "memcpy(local_1a0,local_210,local_1b4);" (call_expression "memcpy(local_1a0,local_210,local_1b4)" identifier (argument_list "(local_1a0,local_210,local_1b4)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);" (assignment_expression "local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4)" identifier = (cast_expression "(undefined4 *)((int)local_1a0 + local_1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_1a0 + local_1b4)" ( (binary_expression "(int)local_1a0 + local_1b4" (cast_expression "(int)local_1a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "local_1d0 = local_1e8 - local_1b4;" (assignment_expression "local_1d0 = local_1e8 - local_1b4" identifier = (binary_expression "local_1e8 - local_1b4" identifier - identifier)) ;) (expression_statement "memset(local_1a0,0,local_1d0);" (call_expression "memset(local_1a0,0,local_1d0)" identifier (argument_list "(local_1a0,0,local_1d0)" ( identifier , number_literal , identifier ))) ;) (expression_statement "local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);" (assignment_expression "local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0)" identifier = (cast_expression "(undefined4 *)((int)local_1a0 + local_1d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_1a0 + local_1d0)" ( (binary_expression "(int)local_1a0 + local_1d0" (cast_expression "(int)local_1a0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) })) (expression_statement "pbVar4 = local_1c4;" (assignment_expression "pbVar4 = local_1c4" identifier = identifier) ;) (expression_statement "puVar8 = auStack_220;" (assignment_expression "puVar8 = auStack_220" identifier = identifier) ;) (expression_statement "local_13c = local_1c4;" (assignment_expression "local_13c = local_1c4" identifier = identifier) ;) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" identifier = number_literal) ;) (expression_statement "uStack_136 = 0;" (assignment_expression "uStack_136 = 0" identifier = number_literal) ;) (expression_statement "uStack_135 = 0;" (assignment_expression "uStack_135 = 0" identifier = number_literal) ;) (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" identifier = number_literal) ;) (expression_statement "FUN_003699e0(param_1,local_1f8,local_1bc,0);" (call_expression "FUN_003699e0(param_1,local_1f8,local_1bc,0)" identifier (argument_list "(param_1,local_1f8,local_1bc,0)" ( identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_13c != pbVar4)" ( (binary_expression "local_13c != pbVar4" identifier != identifier) )) (compound_statement "{\n      FUN_003ae080();\n    }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar2 = local_1bc;" (assignment_expression "puVar2 = local_1bc" identifier = identifier) ;) (expression_statement "FUN_003699e0(param_1,local_1c8,local_1bc,0);" (call_expression "FUN_003699e0(param_1,local_1c8,local_1bc,0)" identifier (argument_list "(param_1,local_1c8,local_1bc,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);" (call_expression "FUN_003699e0(param_1,local_1cc,puVar2,local_1b4)" identifier (argument_list "(param_1,local_1cc,puVar2,local_1b4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);" (call_expression "FUN_003699e0(param_1,local_1dc,puVar2,local_1b4)" identifier (argument_list "(param_1,local_1dc,puVar2,local_1b4)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (local_ec == 0) goto LAB_0036a97f;" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (goto_statement "goto LAB_0036a97f;" goto statement_identifier ;)) (expression_statement "FUN_00346850();" (call_expression "FUN_00346850()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }" if (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) (compound_statement "{\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }" { (expression_statement "local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);" (assignment_expression "local_1a0 = (undefined4 *)(local_ec + (int)local_1a0)" identifier = (cast_expression "(undefined4 *)(local_ec + (int)local_1a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + (int)local_1a0)" ( (binary_expression "local_ec + (int)local_1a0" identifier + (cast_expression "(int)local_1a0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_a0 == 0) goto LAB_0036a989;" if (parenthesized_expression "(local_a0 == 0)" ( (binary_expression "local_a0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0036a989;" goto statement_identifier ;)) (expression_statement "FUN_00346850();" (call_expression "FUN_00346850()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }" if (parenthesized_expression "(local_a0 == 0)" ( (binary_expression "local_a0 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }" { (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0036a918:\n                    \n        FUN_002446e0();" statement_identifier : (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);" (assignment_expression "local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0)" identifier = (cast_expression "(undefined4 *)(local_a0 + (int)local_1a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0 + (int)local_1a0)" ( (binary_expression "local_a0 + (int)local_1a0" identifier + (cast_expression "(int)local_1a0" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;" if (parenthesized_expression "((int)local_1a0 - (int)puVar5 != local_1d8)" ( (binary_expression "(int)local_1a0 - (int)puVar5 != local_1d8" (binary_expression "(int)local_1a0 - (int)puVar5" (cast_expression "(int)local_1a0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier) )) (goto_statement "goto LAB_0036a918;" goto statement_identifier ;)) (expression_statement "*(undefined4 **)(param_1 + 0x12) = puVar5;" (assignment_expression "*(undefined4 **)(param_1 + 0x12) = puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x12)" * (cast_expression "(undefined4 **)(param_1 + 0x12)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x12)" ( (binary_expression "param_1 + 0x12" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x14) = local_1d8;" (assignment_expression "*(int *)(param_1 + 0x14) = local_1d8" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0023dd30();" (call_expression "FUN_0023dd30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00347ed0();" (call_expression "FUN_00347ed0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00347ed0();" (call_expression "FUN_00347ed0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }" if (parenthesized_expression "(local_154 != local_1f4)" ( (binary_expression "local_154 != local_1f4" identifier != identifier) )) (compound_statement "{\n        FUN_003ae080();\n      }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }" if (parenthesized_expression "(local_16c != local_1f0)" ( (binary_expression "local_16c != local_1f0" identifier != identifier) )) (compound_statement "{\n        FUN_003ae080();\n      }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }" if (parenthesized_expression "(local_184 != local_1ec)" ( (binary_expression "local_184 != local_1ec" identifier != identifier) )) (compound_statement "{\n        FUN_003ae080();\n      }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_19c == local_1e0) goto LAB_0036a753;" if (parenthesized_expression "(local_19c == local_1e0)" ( (binary_expression "local_19c == local_1e0" identifier == identifier) )) (goto_statement "goto LAB_0036a753;" goto statement_identifier ;)) (expression_statement "puVar9 = &stack0xfffffdd0;" (assignment_expression "puVar9 = &stack0xfffffdd0" identifier = (pointer_expression "&stack0xfffffdd0" & identifier)) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0036a750;" goto statement_identifier ;) })) }))) (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0036a989:\n  FUN_00369780();" statement_identifier : (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" identifier (argument_list "()" ( ))) ;)) (if_statement "if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_16c != local_1f0)" ( (binary_expression "local_16c != local_1f0" identifier != identifier) )) (compound_statement "{\n    FUN_003ae080();\n  }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_184 != local_1ec)" ( (binary_expression "local_184 != local_1ec" identifier != identifier) )) (compound_statement "{\n    FUN_003ae080();\n  }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_19c != local_1e0)" ( (binary_expression "local_19c != local_1e0" identifier != identifier) )) (compound_statement "{\n    FUN_003ae080();\n  }" { (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0023e020();" (call_expression "FUN_0023e020()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_004451f0();" (call_expression "FUN_004451f0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) ) IDENT) + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) * LIT)) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( IDENT , IDENT ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( IDENT , IDENT ))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( IDENT , IDENT ))) )))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_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 IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , IDENT , LIT , LIT , LIT , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , LIT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , IDENT , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "char FUN_00369e80(ushort *param_1)\n\n{\n  ushort uVar1;\n  undefined1 *puVar2;\n  undefined **ppuVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  size_t sVar7;\n  undefined4 *puVar8;\n  undefined4 auStack_220 [4];\n  void *local_210;\n  undefined **local_20c;\n  undefined **local_208;\n  undefined **local_204;\n  undefined **local_200;\n  int local_1fc;\n  byte **local_1f8;\n  undefined1 *local_1f4;\n  undefined1 *local_1f0;\n  undefined1 *local_1ec;\n  uint local_1e8;\n  char local_1e1;\n  byte *local_1e0;\n  undefined1 **local_1dc;\n  int local_1d8;\n  int local_1d4;\n  size_t local_1d0;\n  undefined1 **local_1cc;\n  undefined1 **local_1c8;\n  byte *local_1c4;\n  undefined1 **local_1c0;\n  undefined1 *local_1bc;\n  undefined4 **local_1b8;\n  size_t local_1b4;\n  undefined **local_1b0;\n  undefined4 *local_1a0;\n  byte *local_19c;\n  int local_198;\n  byte local_194 [16];\n  undefined1 *local_184;\n  int local_180;\n  undefined1 local_17c [16];\n  undefined1 *local_16c;\n  int local_168;\n  undefined1 local_164 [16];\n  undefined1 *local_154;\n  int local_150;\n  undefined1 local_14c [16];\n  byte *local_13c;\n  undefined2 local_138;\n  undefined1 uStack_136;\n  undefined1 uStack_135;\n  byte local_134;\n  undefined1 uStack_133;\n  undefined2 uStack_132;\n  undefined2 local_130;\n  undefined2 uStack_12e;\n  undefined1 local_124 [56];\n  int local_ec;\n  undefined1 local_d8 [56];\n  int local_a0;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined1 local_84 [16];\n  undefined4 local_74;\n  undefined1 local_70;\n  undefined4 local_6c;\n  size_t local_68;\n  int local_64;\n  undefined1 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined4 ***local_34;\n  undefined4 ***local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined1 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined1 *puVar9;\n  \n  local_8c = local_84;\n  local_1c0 = &local_8c;\n  uStack_14 = 0x369e94;\n  local_1b0 = &__DT_PLTGOT;\n  local_40 = &local_48;\n  local_34 = &local_34;\n  local_88 = 0;\n  local_84[0] = 0;\n  local_74 = 0xffffffff;\n  local_70 = 0;\n  local_6c = 0;\n  local_68 = 0;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_44 = 0;\n  local_38 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = 1;\n  local_20 = 0;\n  local_3c = local_40;\n  local_30 = local_34;\n                    \n  local_1e1 = FUN_0023cb20();\n  sVar7 = local_68;\n  if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    \n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }\n  local_1b4 = local_68;\n  if (local_64 != 0) {\n                    \n                    \n    FUN_002446e0();\n  }\n  if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }\n  local_1e8 = sVar7 + 3 & 0xfffffffc;\n  local_1e0 = local_194;\n  auStack_220[0] = 0;\n  local_19c = local_1e0;\n  FUN_0014fca0();\n  pbVar4 = local_19c;\n  if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }\n  local_1f8 = &local_13c;\n                    \n  FUN_0014f900();\n  pbVar4 = local_19c;\n  local_1c4 = &local_134;\n  sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n  if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }\n  local_1c4 = pbVar4;\n  local_138 = 0;\n  uStack_136 = 0;\n  uStack_135 = 0;\n  *local_13c = 0;\n  if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }\n  local_1ec = local_17c;\n  local_1c8 = &local_184;\n  local_184 = local_1ec;\n  FUN_0014fca0();\n  if (0x7fffffffU - local_180 < 6) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1f0 = local_164;\n  local_1cc = &local_16c;\n  local_16c = local_1f0;\n                    \n  FUN_0014fca0();\n  if (0x7fffffffU - local_168 < 4) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1f4 = local_14c;\n  local_1dc = &local_154;\n  local_154 = local_1f4;\n                    \n  FUN_0014fca0();\n  if (0x7fffffffU - local_150 < 5) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1bc = local_124;\n                    \n  FUN_00346670();\n                    \n  FUN_00349de0();\n  ppuVar3 = local_1b0;\n  FUN_00349de0();\n  FUN_00349de0();\n  FUN_0034b2b0();\n  FUN_00346670();\n  local_200 = ppuVar3 + -0x57f35;\n                    \n  FUN_00349de0();\n  local_204 = ppuVar3 + -0x57f9c;\n  FUN_00349de0();\n  local_208 = ppuVar3 + -0x57f94;\n  FUN_00349de0();\n  local_20c = ppuVar3 + -0x57f92;\n  FUN_00349de0();\n  FUN_0034b2b0();\n  local_1fc = local_1e8 + 0xfc;\n  local_1d0 = local_1e8 + 0x13c;\n  if (local_ec == 0) {\n                    \n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }\n  FUN_00369780();\nLAB_0036a989:\n  FUN_00369780();\n                    \n  if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }\n  if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }\n  if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }\n  FUN_0023e020();\n                    \n  FUN_004451f0();\n}" (primitive_type "char") (function_declarator "FUN_00369e80(ushort *param_1)" (identifier "FUN_00369e80") (parameter_list "(ushort *param_1)" (( "(") (parameter_declaration "ushort *param_1" (type_identifier "ushort") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  ushort uVar1;\n  undefined1 *puVar2;\n  undefined **ppuVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  size_t sVar7;\n  undefined4 *puVar8;\n  undefined4 auStack_220 [4];\n  void *local_210;\n  undefined **local_20c;\n  undefined **local_208;\n  undefined **local_204;\n  undefined **local_200;\n  int local_1fc;\n  byte **local_1f8;\n  undefined1 *local_1f4;\n  undefined1 *local_1f0;\n  undefined1 *local_1ec;\n  uint local_1e8;\n  char local_1e1;\n  byte *local_1e0;\n  undefined1 **local_1dc;\n  int local_1d8;\n  int local_1d4;\n  size_t local_1d0;\n  undefined1 **local_1cc;\n  undefined1 **local_1c8;\n  byte *local_1c4;\n  undefined1 **local_1c0;\n  undefined1 *local_1bc;\n  undefined4 **local_1b8;\n  size_t local_1b4;\n  undefined **local_1b0;\n  undefined4 *local_1a0;\n  byte *local_19c;\n  int local_198;\n  byte local_194 [16];\n  undefined1 *local_184;\n  int local_180;\n  undefined1 local_17c [16];\n  undefined1 *local_16c;\n  int local_168;\n  undefined1 local_164 [16];\n  undefined1 *local_154;\n  int local_150;\n  undefined1 local_14c [16];\n  byte *local_13c;\n  undefined2 local_138;\n  undefined1 uStack_136;\n  undefined1 uStack_135;\n  byte local_134;\n  undefined1 uStack_133;\n  undefined2 uStack_132;\n  undefined2 local_130;\n  undefined2 uStack_12e;\n  undefined1 local_124 [56];\n  int local_ec;\n  undefined1 local_d8 [56];\n  int local_a0;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined1 local_84 [16];\n  undefined4 local_74;\n  undefined1 local_70;\n  undefined4 local_6c;\n  size_t local_68;\n  int local_64;\n  undefined1 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined4 ***local_34;\n  undefined4 ***local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined1 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  undefined1 *puVar9;\n  \n  local_8c = local_84;\n  local_1c0 = &local_8c;\n  uStack_14 = 0x369e94;\n  local_1b0 = &__DT_PLTGOT;\n  local_40 = &local_48;\n  local_34 = &local_34;\n  local_88 = 0;\n  local_84[0] = 0;\n  local_74 = 0xffffffff;\n  local_70 = 0;\n  local_6c = 0;\n  local_68 = 0;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  local_48 = 0;\n  local_44 = 0;\n  local_38 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = 1;\n  local_20 = 0;\n  local_3c = local_40;\n  local_30 = local_34;\n                    \n  local_1e1 = FUN_0023cb20();\n  sVar7 = local_68;\n  if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    \n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }\n  local_1b4 = local_68;\n  if (local_64 != 0) {\n                    \n                    \n    FUN_002446e0();\n  }\n  if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }\n  local_1e8 = sVar7 + 3 & 0xfffffffc;\n  local_1e0 = local_194;\n  auStack_220[0] = 0;\n  local_19c = local_1e0;\n  FUN_0014fca0();\n  pbVar4 = local_19c;\n  if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }\n  local_1f8 = &local_13c;\n                    \n  FUN_0014f900();\n  pbVar4 = local_19c;\n  local_1c4 = &local_134;\n  sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n  if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }\n  local_1c4 = pbVar4;\n  local_138 = 0;\n  uStack_136 = 0;\n  uStack_135 = 0;\n  *local_13c = 0;\n  if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }\n  local_1ec = local_17c;\n  local_1c8 = &local_184;\n  local_184 = local_1ec;\n  FUN_0014fca0();\n  if (0x7fffffffU - local_180 < 6) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1f0 = local_164;\n  local_1cc = &local_16c;\n  local_16c = local_1f0;\n                    \n  FUN_0014fca0();\n  if (0x7fffffffU - local_168 < 4) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1f4 = local_14c;\n  local_1dc = &local_154;\n  local_154 = local_1f4;\n                    \n  FUN_0014fca0();\n  if (0x7fffffffU - local_150 < 5) {\n                    \n                    \n    FUN_003f3a70();\n  }\n                    \n  FUN_003b7890();\n  local_1bc = local_124;\n                    \n  FUN_00346670();\n                    \n  FUN_00349de0();\n  ppuVar3 = local_1b0;\n  FUN_00349de0();\n  FUN_00349de0();\n  FUN_0034b2b0();\n  FUN_00346670();\n  local_200 = ppuVar3 + -0x57f35;\n                    \n  FUN_00349de0();\n  local_204 = ppuVar3 + -0x57f9c;\n  FUN_00349de0();\n  local_208 = ppuVar3 + -0x57f94;\n  FUN_00349de0();\n  local_20c = ppuVar3 + -0x57f92;\n  FUN_00349de0();\n  FUN_0034b2b0();\n  local_1fc = local_1e8 + 0xfc;\n  local_1d0 = local_1e8 + 0x13c;\n  if (local_ec == 0) {\n                    \n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }\n  FUN_00369780();\nLAB_0036a989:\n  FUN_00369780();\n                    \n  if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }\n  if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }\n  if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }\n  FUN_0023e020();\n                    \n  FUN_004451f0();\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "undefined1 *puVar2;" (type_identifier "undefined1") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined **ppuVar3;" (type_identifier "undefined") (pointer_declarator "**ppuVar3" (* "*") (pointer_declarator "*ppuVar3" (* "*") (identifier "ppuVar3"))) (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 auStack_220 [4];" (type_identifier "undefined4") (array_declarator "auStack_220 [4]" (identifier "auStack_220") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "void *local_210;" (primitive_type "void") (pointer_declarator "*local_210" (* "*") (identifier "local_210")) (; ";")) (declaration "undefined **local_20c;" (type_identifier "undefined") (pointer_declarator "**local_20c" (* "*") (pointer_declarator "*local_20c" (* "*") (identifier "local_20c"))) (; ";")) (declaration "undefined **local_208;" (type_identifier "undefined") (pointer_declarator "**local_208" (* "*") (pointer_declarator "*local_208" (* "*") (identifier "local_208"))) (; ";")) (declaration "undefined **local_204;" (type_identifier "undefined") (pointer_declarator "**local_204" (* "*") (pointer_declarator "*local_204" (* "*") (identifier "local_204"))) (; ";")) (declaration "undefined **local_200;" (type_identifier "undefined") (pointer_declarator "**local_200" (* "*") (pointer_declarator "*local_200" (* "*") (identifier "local_200"))) (; ";")) (declaration "int local_1fc;" (primitive_type "int") (identifier "local_1fc") (; ";")) (declaration "byte **local_1f8;" (type_identifier "byte") (pointer_declarator "**local_1f8" (* "*") (pointer_declarator "*local_1f8" (* "*") (identifier "local_1f8"))) (; ";")) (declaration "undefined1 *local_1f4;" (type_identifier "undefined1") (pointer_declarator "*local_1f4" (* "*") (identifier "local_1f4")) (; ";")) (declaration "undefined1 *local_1f0;" (type_identifier "undefined1") (pointer_declarator "*local_1f0" (* "*") (identifier "local_1f0")) (; ";")) (declaration "undefined1 *local_1ec;" (type_identifier "undefined1") (pointer_declarator "*local_1ec" (* "*") (identifier "local_1ec")) (; ";")) (declaration "uint local_1e8;" (type_identifier "uint") (identifier "local_1e8") (; ";")) (declaration "char local_1e1;" (primitive_type "char") (identifier "local_1e1") (; ";")) (declaration "byte *local_1e0;" (type_identifier "byte") (pointer_declarator "*local_1e0" (* "*") (identifier "local_1e0")) (; ";")) (declaration "undefined1 **local_1dc;" (type_identifier "undefined1") (pointer_declarator "**local_1dc" (* "*") (pointer_declarator "*local_1dc" (* "*") (identifier "local_1dc"))) (; ";")) (declaration "int local_1d8;" (primitive_type "int") (identifier "local_1d8") (; ";")) (declaration "int local_1d4;" (primitive_type "int") (identifier "local_1d4") (; ";")) (declaration "size_t local_1d0;" (primitive_type "size_t") (identifier "local_1d0") (; ";")) (declaration "undefined1 **local_1cc;" (type_identifier "undefined1") (pointer_declarator "**local_1cc" (* "*") (pointer_declarator "*local_1cc" (* "*") (identifier "local_1cc"))) (; ";")) (declaration "undefined1 **local_1c8;" (type_identifier "undefined1") (pointer_declarator "**local_1c8" (* "*") (pointer_declarator "*local_1c8" (* "*") (identifier "local_1c8"))) (; ";")) (declaration "byte *local_1c4;" (type_identifier "byte") (pointer_declarator "*local_1c4" (* "*") (identifier "local_1c4")) (; ";")) (declaration "undefined1 **local_1c0;" (type_identifier "undefined1") (pointer_declarator "**local_1c0" (* "*") (pointer_declarator "*local_1c0" (* "*") (identifier "local_1c0"))) (; ";")) (declaration "undefined1 *local_1bc;" (type_identifier "undefined1") (pointer_declarator "*local_1bc" (* "*") (identifier "local_1bc")) (; ";")) (declaration "undefined4 **local_1b8;" (type_identifier "undefined4") (pointer_declarator "**local_1b8" (* "*") (pointer_declarator "*local_1b8" (* "*") (identifier "local_1b8"))) (; ";")) (declaration "size_t local_1b4;" (primitive_type "size_t") (identifier "local_1b4") (; ";")) (declaration "undefined **local_1b0;" (type_identifier "undefined") (pointer_declarator "**local_1b0" (* "*") (pointer_declarator "*local_1b0" (* "*") (identifier "local_1b0"))) (; ";")) (declaration "undefined4 *local_1a0;" (type_identifier "undefined4") (pointer_declarator "*local_1a0" (* "*") (identifier "local_1a0")) (; ";")) (declaration "byte *local_19c;" (type_identifier "byte") (pointer_declarator "*local_19c" (* "*") (identifier "local_19c")) (; ";")) (declaration "int local_198;" (primitive_type "int") (identifier "local_198") (; ";")) (declaration "byte local_194 [16];" (type_identifier "byte") (array_declarator "local_194 [16]" (identifier "local_194") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 *local_184;" (type_identifier "undefined1") (pointer_declarator "*local_184" (* "*") (identifier "local_184")) (; ";")) (declaration "int local_180;" (primitive_type "int") (identifier "local_180") (; ";")) (declaration "undefined1 local_17c [16];" (type_identifier "undefined1") (array_declarator "local_17c [16]" (identifier "local_17c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 *local_16c;" (type_identifier "undefined1") (pointer_declarator "*local_16c" (* "*") (identifier "local_16c")) (; ";")) (declaration "int local_168;" (primitive_type "int") (identifier "local_168") (; ";")) (declaration "undefined1 local_164 [16];" (type_identifier "undefined1") (array_declarator "local_164 [16]" (identifier "local_164") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 *local_154;" (type_identifier "undefined1") (pointer_declarator "*local_154" (* "*") (identifier "local_154")) (; ";")) (declaration "int local_150;" (primitive_type "int") (identifier "local_150") (; ";")) (declaration "undefined1 local_14c [16];" (type_identifier "undefined1") (array_declarator "local_14c [16]" (identifier "local_14c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte *local_13c;" (type_identifier "byte") (pointer_declarator "*local_13c" (* "*") (identifier "local_13c")) (; ";")) (declaration "undefined2 local_138;" (type_identifier "undefined2") (identifier "local_138") (; ";")) (declaration "undefined1 uStack_136;" (type_identifier "undefined1") (identifier "uStack_136") (; ";")) (declaration "undefined1 uStack_135;" (type_identifier "undefined1") (identifier "uStack_135") (; ";")) (declaration "byte local_134;" (type_identifier "byte") (identifier "local_134") (; ";")) (declaration "undefined1 uStack_133;" (type_identifier "undefined1") (identifier "uStack_133") (; ";")) (declaration "undefined2 uStack_132;" (type_identifier "undefined2") (identifier "uStack_132") (; ";")) (declaration "undefined2 local_130;" (type_identifier "undefined2") (identifier "local_130") (; ";")) (declaration "undefined2 uStack_12e;" (type_identifier "undefined2") (identifier "uStack_12e") (; ";")) (declaration "undefined1 local_124 [56];" (type_identifier "undefined1") (array_declarator "local_124 [56]" (identifier "local_124") ([ "[") (number_literal "56") (] "]")) (; ";")) (declaration "int local_ec;" (primitive_type "int") (identifier "local_ec") (; ";")) (declaration "undefined1 local_d8 [56];" (type_identifier "undefined1") (array_declarator "local_d8 [56]" (identifier "local_d8") ([ "[") (number_literal "56") (] "]")) (; ";")) (declaration "int local_a0;" (primitive_type "int") (identifier "local_a0") (; ";")) (declaration "undefined1 *local_8c;" (type_identifier "undefined1") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "undefined4 local_88;" (type_identifier "undefined4") (identifier "local_88") (; ";")) (declaration "undefined1 local_84 [16];" (type_identifier "undefined1") (array_declarator "local_84 [16]" (identifier "local_84") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_74;" (type_identifier "undefined4") (identifier "local_74") (; ";")) (declaration "undefined1 local_70;" (type_identifier "undefined1") (identifier "local_70") (; ";")) (declaration "undefined4 local_6c;" (type_identifier "undefined4") (identifier "local_6c") (; ";")) (declaration "size_t local_68;" (primitive_type "size_t") (identifier "local_68") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "undefined1 local_60;" (type_identifier "undefined1") (identifier "local_60") (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 *local_40;" (type_identifier "undefined4") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "undefined4 *local_3c;" (type_identifier "undefined4") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 ***local_34;" (type_identifier "undefined4") (pointer_declarator "***local_34" (* "*") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34")))) (; ";")) (declaration "undefined4 ***local_30;" (type_identifier "undefined4") (pointer_declarator "***local_30" (* "*") (pointer_declarator "**local_30" (* "*") (pointer_declarator "*local_30" (* "*") (identifier "local_30")))) (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined1 local_24;" (type_identifier "undefined1") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (declaration "undefined1 *puVar9;" (type_identifier "undefined1") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (expression_statement "local_8c = local_84;" (assignment_expression "local_8c = local_84" (identifier "local_8c") (= "=") (identifier "local_84")) (; ";")) (expression_statement "local_1c0 = &local_8c;" (assignment_expression "local_1c0 = &local_8c" (identifier "local_1c0") (= "=") (pointer_expression "&local_8c" (& "&") (identifier "local_8c"))) (; ";")) (expression_statement "uStack_14 = 0x369e94;" (assignment_expression "uStack_14 = 0x369e94" (identifier "uStack_14") (= "=") (number_literal "0x369e94")) (; ";")) (expression_statement "local_1b0 = &__DT_PLTGOT;" (assignment_expression "local_1b0 = &__DT_PLTGOT" (identifier "local_1b0") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_40 = &local_48;" (assignment_expression "local_40 = &local_48" (identifier "local_40") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "local_34 = &local_34;" (assignment_expression "local_34 = &local_34" (identifier "local_34") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84[0] = 0;" (assignment_expression "local_84[0] = 0" (subscript_expression "local_84[0]" (identifier "local_84") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74 = 0xffffffff;" (assignment_expression "local_74 = 0xffffffff" (identifier "local_74") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" (identifier "local_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 1;" (assignment_expression "local_24 = 1" (identifier "local_24") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = local_40;" (assignment_expression "local_3c = local_40" (identifier "local_3c") (= "=") (identifier "local_40")) (; ";")) (expression_statement "local_30 = local_34;" (assignment_expression "local_30 = local_34" (identifier "local_30") (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_1e1 = FUN_0023cb20();" (assignment_expression "local_1e1 = FUN_0023cb20()" (identifier "local_1e1") (= "=") (call_expression "FUN_0023cb20()" (identifier "FUN_0023cb20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "sVar7 = local_68;" (assignment_expression "sVar7 = local_68" (identifier "sVar7") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (local_1e1 == '\0') {\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    \n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }" (if "if") (parenthesized_expression "(local_1e1 == '\0')" (( "(") (binary_expression "local_1e1 == '\0'" (identifier "local_1e1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    auStack_220[0] = 0x36a85d;\n    piVar6 = __errno_location();\n    puVar9 = &stack0xfffffdd4;\n    strerror(*piVar6);\n    gettext();\n                    \n    FUN_0023b810();\nLAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);\nLAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;\n    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;\n    FUN_0023e020();\n    return local_1e1;\n  }" ({ "{") (expression_statement "auStack_220[0] = 0x36a85d;" (assignment_expression "auStack_220[0] = 0x36a85d" (subscript_expression "auStack_220[0]" (identifier "auStack_220") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x36a85d")) (; ";")) (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" (identifier "piVar6") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar9 = &stack0xfffffdd4;" (assignment_expression "puVar9 = &stack0xfffffdd4" (identifier "puVar9") (= "=") (pointer_expression "&stack0xfffffdd4" (& "&") (identifier "stack0xfffffdd4"))) (; ";")) (expression_statement "strerror(*piVar6);" (call_expression "strerror(*piVar6)" (identifier "strerror") (argument_list "(*piVar6)" (( "(") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) () ")"))) (; ";")) (expression_statement "gettext();" (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0023b810();" (call_expression "FUN_0023b810()" (identifier "FUN_0023b810") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0036a750:\n    puVar8 = (undefined4 *)(puVar9 + 0x10);" (statement_identifier "LAB_0036a750") (: ":") (expression_statement "puVar8 = (undefined4 *)(puVar9 + 0x10);" (assignment_expression "puVar8 = (undefined4 *)(puVar9 + 0x10)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(puVar9 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x10)" (( "(") (binary_expression "puVar9 + 0x10" (identifier "puVar9") (+ "+") (number_literal "0x10")) () ")")))) (; ";"))) (labeled_statement "LAB_0036a753:\n    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;" (statement_identifier "LAB_0036a753") (: ":") (expression_statement "*(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;" (assignment_expression "*(undefined1 ***)((int)puVar8 + -0x10) = local_1c0" (pointer_expression "*(undefined1 ***)((int)puVar8 + -0x10)" (* "*") (cast_expression "(undefined1 ***)((int)puVar8 + -0x10)" (( "(") (type_descriptor "undefined1 ***" (type_identifier "undefined1") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)puVar8 + -0x10)" (( "(") (binary_expression "(int)puVar8 + -0x10" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_1c0")) (; ";"))) (expression_statement "*(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;" (assignment_expression "*(undefined4 *)((int)puVar8 + -0x14) = 0x36a767" (pointer_expression "*(undefined4 *)((int)puVar8 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)puVar8 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + -0x14)" (( "(") (binary_expression "(int)puVar8 + -0x14" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x36a767")) (; ";")) (expression_statement "FUN_0023e020();" (call_expression "FUN_0023e020()" (identifier "FUN_0023e020") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return local_1e1;" (return "return") (identifier "local_1e1") (; ";")) (} "}"))) (expression_statement "local_1b4 = local_68;" (assignment_expression "local_1b4 = local_68" (identifier "local_1b4") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (local_64 != 0) {\n                    \n                    \n    FUN_002446e0();\n  }" (if "if") (parenthesized_expression "(local_64 != 0)" (( "(") (binary_expression "local_64 != 0" (identifier "local_64") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n    FUN_002446e0();\n  }" ({ "{") (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_68 == 0) {\n    local_210 = (void *)0x0;\n  }\n  else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }" (if "if") (parenthesized_expression "(local_68 == 0)" (( "(") (binary_expression "local_68 == 0" (identifier "local_68") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_210 = (void *)0x0;\n  }" ({ "{") (expression_statement "local_210 = (void *)0x0;" (assignment_expression "local_210 = (void *)0x0" (identifier "local_210") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }" (else "else") (compound_statement "{\n    auStack_220[0] = 0;\n    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);\n  }" ({ "{") (expression_statement "auStack_220[0] = 0;" (assignment_expression "auStack_220[0] = 0" (subscript_expression "auStack_220[0]" (identifier "auStack_220") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_210 = (void *)FUN_0023eb50(local_1c0,0,0);" (assignment_expression "local_210 = (void *)FUN_0023eb50(local_1c0,0,0)" (identifier "local_210") (= "=") (cast_expression "(void *)FUN_0023eb50(local_1c0,0,0)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0023eb50(local_1c0,0,0)" (identifier "FUN_0023eb50") (argument_list "(local_1c0,0,0)" (( "(") (identifier "local_1c0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}")))) (expression_statement "local_1e8 = sVar7 + 3 & 0xfffffffc;" (assignment_expression "local_1e8 = sVar7 + 3 & 0xfffffffc" (identifier "local_1e8") (= "=") (binary_expression "sVar7 + 3 & 0xfffffffc" (binary_expression "sVar7 + 3" (identifier "sVar7") (+ "+") (number_literal "3")) (& "&") (number_literal "0xfffffffc"))) (; ";")) (expression_statement "local_1e0 = local_194;" (assignment_expression "local_1e0 = local_194" (identifier "local_1e0") (= "=") (identifier "local_194")) (; ";")) (expression_statement "auStack_220[0] = 0;" (assignment_expression "auStack_220[0] = 0" (subscript_expression "auStack_220[0]" (identifier "auStack_220") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_19c = local_1e0;" (assignment_expression "local_19c = local_1e0" (identifier "local_19c") (= "=") (identifier "local_1e0")) (; ";")) (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" (identifier "FUN_0014fca0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar4 = local_19c;" (assignment_expression "pbVar4 = local_19c" (identifier "pbVar4") (= "=") (identifier "local_19c")) (; ";")) (if_statement "if (local_198 != 0) {\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }" (if "if") (parenthesized_expression "(local_198 != 0)" (( "(") (binary_expression "local_198 != 0" (identifier "local_198") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);\n  }" ({ "{") (do_statement "do {\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    } while (local_19c + local_198 != pbVar4);" (do "do") (compound_statement "{\n      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }\n      pbVar4 = pbVar4 + 1;\n    }" ({ "{") (if_statement "if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {\n        *pbVar4 = 0x5f;\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0" (parenthesized_expression "(*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c)" (( "(") (binary_expression "*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c" (pointer_expression "*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60)" (* "*") (cast_expression "(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60)" (( "(") (binary_expression "(int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60" (binary_expression "(int)local_1b0 + (uint)*pbVar4 * 2" (cast_expression "(int)local_1b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1b0")) (+ "+") (binary_expression "(uint)*pbVar4 * 2" (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar4")) (* "*") (number_literal "2"))) (+ "+") (number_literal "-0x147f60")) () ")")))) (& "&") (number_literal "0x8c")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *pbVar4 = 0x5f;\n      }" ({ "{") (expression_statement "*pbVar4 = 0x5f;" (assignment_expression "*pbVar4 = 0x5f" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (number_literal "0x5f")) (; ";")) (} "}"))) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_19c + local_198 != pbVar4)" (( "(") (binary_expression "local_19c + local_198 != pbVar4" (binary_expression "local_19c + local_198" (identifier "local_19c") (+ "+") (identifier "local_198")) (!= "!=") (identifier "pbVar4")) () ")")) (; ";")) (} "}"))) (expression_statement "local_1f8 = &local_13c;" (assignment_expression "local_1f8 = &local_13c" (identifier "local_1f8") (= "=") (pointer_expression "&local_13c" (& "&") (identifier "local_13c"))) (; ";")) (expression_statement "FUN_0014f900();" (call_expression "FUN_0014f900()" (identifier "FUN_0014f900") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar4 = local_19c;" (assignment_expression "pbVar4 = local_19c" (identifier "pbVar4") (= "=") (identifier "local_19c")) (; ";")) (expression_statement "local_1c4 = &local_134;" (assignment_expression "local_1c4 = &local_134" (identifier "local_1c4") (= "=") (pointer_expression "&local_134" (& "&") (identifier "local_134"))) (; ";")) (expression_statement "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));" (assignment_expression "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" (identifier "sVar7") (= "=") (call_expression "CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" (identifier "CONCAT13") (argument_list "(uStack_135,CONCAT12(uStack_136,local_138))" (( "(") (identifier "uStack_135") (, ",") (call_expression "CONCAT12(uStack_136,local_138)" (identifier "CONCAT12") (argument_list "(uStack_136,local_138)" (( "(") (identifier "uStack_136") (, ",") (identifier "local_138") () ")"))) () ")")))) (; ";")) (if_statement "if (local_13c == local_1c4) {\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }\n  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" (if "if") (parenthesized_expression "(local_13c == local_1c4)" (( "(") (binary_expression "local_13c == local_1c4" (identifier "local_13c") (== "==") (identifier "local_1c4")) () ")")) (compound_statement "{\n    if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }\n    local_19c[sVar7] = 0;\n    pbVar4 = local_1c4;\n  }" ({ "{") (if_statement "if (sVar7 != 0) {\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }" (if "if") (parenthesized_expression "(sVar7 != 0)" (( "(") (binary_expression "sVar7 != 0" (identifier "sVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n    }" ({ "{") (if_statement "if (sVar7 == 1) {\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }\n      else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" (if "if") (parenthesized_expression "(sVar7 == 1)" (( "(") (binary_expression "sVar7 == 1" (identifier "sVar7") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        *local_19c = local_134;\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" ({ "{") (expression_statement "*local_19c = local_134;" (assignment_expression "*local_19c = local_134" (pointer_expression "*local_19c" (* "*") (identifier "local_19c")) (= "=") (identifier "local_134")) (; ";")) (expression_statement "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));" (assignment_expression "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" (identifier "sVar7") (= "=") (call_expression "CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" (identifier "CONCAT13") (argument_list "(uStack_135,CONCAT12(uStack_136,local_138))" (( "(") (identifier "uStack_135") (, ",") (call_expression "CONCAT12(uStack_136,local_138)" (identifier "CONCAT12") (argument_list "(uStack_136,local_138)" (( "(") (identifier "uStack_136") (, ",") (identifier "local_138") () ")"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" (else "else") (compound_statement "{\n        memcpy(local_19c,local_1c4,sVar7);\n        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));\n      }" ({ "{") (expression_statement "memcpy(local_19c,local_1c4,sVar7);" (call_expression "memcpy(local_19c,local_1c4,sVar7)" (identifier "memcpy") (argument_list "(local_19c,local_1c4,sVar7)" (( "(") (identifier "local_19c") (, ",") (identifier "local_1c4") (, ",") (identifier "sVar7") () ")"))) (; ";")) (expression_statement "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));" (assignment_expression "sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" (identifier "sVar7") (= "=") (call_expression "CONCAT13(uStack_135,CONCAT12(uStack_136,local_138))" (identifier "CONCAT13") (argument_list "(uStack_135,CONCAT12(uStack_136,local_138))" (( "(") (identifier "uStack_135") (, ",") (call_expression "CONCAT12(uStack_136,local_138)" (identifier "CONCAT12") (argument_list "(uStack_136,local_138)" (( "(") (identifier "uStack_136") (, ",") (identifier "local_138") () ")"))) () ")")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_19c[sVar7] = 0;" (assignment_expression "local_19c[sVar7] = 0" (subscript_expression "local_19c[sVar7]" (identifier "local_19c") ([ "[") (identifier "sVar7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar4 = local_1c4;" (assignment_expression "pbVar4 = local_1c4" (identifier "pbVar4") (= "=") (identifier "local_1c4")) (; ";")) (} "}")) (else_clause "else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" (else "else") (if_statement "if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }\n  else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" (if "if") (parenthesized_expression "((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0))" (( "(") (binary_expression "(local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)" (parenthesized_expression "(local_19c == local_1e0)" (( "(") (binary_expression "local_19c == local_1e0" (identifier "local_19c") (== "==") (identifier "local_1e0")) () ")")) (|| "||") (parenthesized_expression "(local_19c = local_13c, pbVar4 == (byte *)0x0)" (( "(") (comma_expression "local_19c = local_13c, pbVar4 == (byte *)0x0" (assignment_expression "local_19c = local_13c" (identifier "local_19c") (= "=") (identifier "local_13c")) (, ",") (binary_expression "pbVar4 == (byte *)0x0" (identifier "pbVar4") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    local_19c = local_13c;\n    pbVar4 = &local_134;\n    local_13c = local_1c4;\n  }" ({ "{") (expression_statement "local_19c = local_13c;" (assignment_expression "local_19c = local_13c" (identifier "local_19c") (= "=") (identifier "local_13c")) (; ";")) (expression_statement "pbVar4 = &local_134;" (assignment_expression "pbVar4 = &local_134" (identifier "pbVar4") (= "=") (pointer_expression "&local_134" (& "&") (identifier "local_134"))) (; ";")) (expression_statement "local_13c = local_1c4;" (assignment_expression "local_13c = local_1c4" (identifier "local_13c") (= "=") (identifier "local_1c4")) (; ";")) (} "}")) (else_clause "else {\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" (else "else") (compound_statement "{\n    local_13c = pbVar4;\n    local_134 = (byte)local_194._0_4_;\n    uStack_133 = SUB41(local_194._0_4_,1);\n    uStack_132 = SUB42(local_194._0_4_,2);\n    pbVar4 = local_1c4;\n  }" ({ "{") (expression_statement "local_13c = pbVar4;" (assignment_expression "local_13c = pbVar4" (identifier "local_13c") (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "local_134 = (byte)local_194._0_4_;" (assignment_expression "local_134 = (byte)local_194._0_4_" (identifier "local_134") (= "=") (cast_expression "(byte)local_194._0_4_" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (field_expression "local_194._0_4_" (identifier "local_194") (. ".") (field_identifier "_0_4_")))) (; ";")) (expression_statement "uStack_133 = SUB41(local_194._0_4_,1);" (assignment_expression "uStack_133 = SUB41(local_194._0_4_,1)" (identifier "uStack_133") (= "=") (call_expression "SUB41(local_194._0_4_,1)" (identifier "SUB41") (argument_list "(local_194._0_4_,1)" (( "(") (field_expression "local_194._0_4_" (identifier "local_194") (. ".") (field_identifier "_0_4_")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "uStack_132 = SUB42(local_194._0_4_,2);" (assignment_expression "uStack_132 = SUB42(local_194._0_4_,2)" (identifier "uStack_132") (= "=") (call_expression "SUB42(local_194._0_4_,2)" (identifier "SUB42") (argument_list "(local_194._0_4_,2)" (( "(") (field_expression "local_194._0_4_" (identifier "local_194") (. ".") (field_identifier "_0_4_")) (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "pbVar4 = local_1c4;" (assignment_expression "pbVar4 = local_1c4" (identifier "pbVar4") (= "=") (identifier "local_1c4")) (; ";")) (} "}")))))) (expression_statement "local_1c4 = pbVar4;" (assignment_expression "local_1c4 = pbVar4" (identifier "local_1c4") (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" (identifier "local_138") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_136 = 0;" (assignment_expression "uStack_136 = 0" (identifier "uStack_136") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_135 = 0;" (assignment_expression "uStack_135 = 0" (identifier "uStack_135") (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_13c = 0;" (assignment_expression "*local_13c = 0" (pointer_expression "*local_13c" (* "*") (identifier "local_13c")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_13c != local_1c4) {\n    FUN_003ae080();\n  }" (if "if") (parenthesized_expression "(local_13c != local_1c4)" (( "(") (binary_expression "local_13c != local_1c4" (identifier "local_13c") (!= "!=") (identifier "local_1c4")) () ")")) (compound_statement "{\n    FUN_003ae080();\n  }" ({ "{") (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_1ec = local_17c;" (assignment_expression "local_1ec = local_17c" (identifier "local_1ec") (= "=") (identifier "local_17c")) (; ";")) (expression_statement "local_1c8 = &local_184;" (assignment_expression "local_1c8 = &local_184" (identifier "local_1c8") (= "=") (pointer_expression "&local_184" (& "&") (identifier "local_184"))) (; ";")) (expression_statement "local_184 = local_1ec;" (assignment_expression "local_184 = local_1ec" (identifier "local_184") (= "=") (identifier "local_1ec")) (; ";")) (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" (identifier "FUN_0014fca0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (0x7fffffffU - local_180 < 6) {\n                    \n                    \n    FUN_003f3a70();\n  }" (if "if") (parenthesized_expression "(0x7fffffffU - local_180 < 6)" (( "(") (binary_expression "0x7fffffffU - local_180 < 6" (binary_expression "0x7fffffffU - local_180" (number_literal "0x7fffffffU") (- "-") (identifier "local_180")) (< "<") (number_literal "6")) () ")")) (compound_statement "{\n                    \n                    \n    FUN_003f3a70();\n  }" ({ "{") (expression_statement "FUN_003f3a70();" (call_expression "FUN_003f3a70()" (identifier "FUN_003f3a70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_003b7890();" (call_expression "FUN_003b7890()" (identifier "FUN_003b7890") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_1f0 = local_164;" (assignment_expression "local_1f0 = local_164" (identifier "local_1f0") (= "=") (identifier "local_164")) (; ";")) (expression_statement "local_1cc = &local_16c;" (assignment_expression "local_1cc = &local_16c" (identifier "local_1cc") (= "=") (pointer_expression "&local_16c" (& "&") (identifier "local_16c"))) (; ";")) (expression_statement "local_16c = local_1f0;" (assignment_expression "local_16c = local_1f0" (identifier "local_16c") (= "=") (identifier "local_1f0")) (; ";")) (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" (identifier "FUN_0014fca0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (0x7fffffffU - local_168 < 4) {\n                    \n                    \n    FUN_003f3a70();\n  }" (if "if") (parenthesized_expression "(0x7fffffffU - local_168 < 4)" (( "(") (binary_expression "0x7fffffffU - local_168 < 4" (binary_expression "0x7fffffffU - local_168" (number_literal "0x7fffffffU") (- "-") (identifier "local_168")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n                    \n                    \n    FUN_003f3a70();\n  }" ({ "{") (expression_statement "FUN_003f3a70();" (call_expression "FUN_003f3a70()" (identifier "FUN_003f3a70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_003b7890();" (call_expression "FUN_003b7890()" (identifier "FUN_003b7890") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_1f4 = local_14c;" (assignment_expression "local_1f4 = local_14c" (identifier "local_1f4") (= "=") (identifier "local_14c")) (; ";")) (expression_statement "local_1dc = &local_154;" (assignment_expression "local_1dc = &local_154" (identifier "local_1dc") (= "=") (pointer_expression "&local_154" (& "&") (identifier "local_154"))) (; ";")) (expression_statement "local_154 = local_1f4;" (assignment_expression "local_154 = local_1f4" (identifier "local_154") (= "=") (identifier "local_1f4")) (; ";")) (expression_statement "FUN_0014fca0();" (call_expression "FUN_0014fca0()" (identifier "FUN_0014fca0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (0x7fffffffU - local_150 < 5) {\n                    \n                    \n    FUN_003f3a70();\n  }" (if "if") (parenthesized_expression "(0x7fffffffU - local_150 < 5)" (( "(") (binary_expression "0x7fffffffU - local_150 < 5" (binary_expression "0x7fffffffU - local_150" (number_literal "0x7fffffffU") (- "-") (identifier "local_150")) (< "<") (number_literal "5")) () ")")) (compound_statement "{\n                    \n                    \n    FUN_003f3a70();\n  }" ({ "{") (expression_statement "FUN_003f3a70();" (call_expression "FUN_003f3a70()" (identifier "FUN_003f3a70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_003b7890();" (call_expression "FUN_003b7890()" (identifier "FUN_003b7890") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_1bc = local_124;" (assignment_expression "local_1bc = local_124" (identifier "local_1bc") (= "=") (identifier "local_124")) (; ";")) (expression_statement "FUN_00346670();" (call_expression "FUN_00346670()" (identifier "FUN_00346670") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" (identifier "FUN_00349de0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar3 = local_1b0;" (assignment_expression "ppuVar3 = local_1b0" (identifier "ppuVar3") (= "=") (identifier "local_1b0")) (; ";")) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" (identifier "FUN_00349de0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" (identifier "FUN_00349de0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0034b2b0();" (call_expression "FUN_0034b2b0()" (identifier "FUN_0034b2b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00346670();" (call_expression "FUN_00346670()" (identifier "FUN_00346670") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_200 = ppuVar3 + -0x57f35;" (assignment_expression "local_200 = ppuVar3 + -0x57f35" (identifier "local_200") (= "=") (binary_expression "ppuVar3 + -0x57f35" (identifier "ppuVar3") (+ "+") (number_literal "-0x57f35"))) (; ";")) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" (identifier "FUN_00349de0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_204 = ppuVar3 + -0x57f9c;" (assignment_expression "local_204 = ppuVar3 + -0x57f9c" (identifier "local_204") (= "=") (binary_expression "ppuVar3 + -0x57f9c" (identifier "ppuVar3") (+ "+") (number_literal "-0x57f9c"))) (; ";")) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" (identifier "FUN_00349de0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_208 = ppuVar3 + -0x57f94;" (assignment_expression "local_208 = ppuVar3 + -0x57f94" (identifier "local_208") (= "=") (binary_expression "ppuVar3 + -0x57f94" (identifier "ppuVar3") (+ "+") (number_literal "-0x57f94"))) (; ";")) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" (identifier "FUN_00349de0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_20c = ppuVar3 + -0x57f92;" (assignment_expression "local_20c = ppuVar3 + -0x57f92" (identifier "local_20c") (= "=") (binary_expression "ppuVar3 + -0x57f92" (identifier "ppuVar3") (+ "+") (number_literal "-0x57f92"))) (; ";")) (expression_statement "FUN_00349de0();" (call_expression "FUN_00349de0()" (identifier "FUN_00349de0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0034b2b0();" (call_expression "FUN_0034b2b0()" (identifier "FUN_0034b2b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_1fc = local_1e8 + 0xfc;" (assignment_expression "local_1fc = local_1e8 + 0xfc" (identifier "local_1fc") (= "=") (binary_expression "local_1e8 + 0xfc" (identifier "local_1e8") (+ "+") (number_literal "0xfc"))) (; ";")) (expression_statement "local_1d0 = local_1e8 + 0x13c;" (assignment_expression "local_1d0 = local_1e8 + 0x13c" (identifier "local_1d0") (= "=") (binary_expression "local_1e8 + 0x13c" (identifier "local_1e8") (+ "+") (number_literal "0x13c"))) (; ";")) (if_statement "if (local_ec == 0) {\n                    \n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }\n  else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }" (if "if") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00369780();\nLAB_0036a970:\n    FUN_00369780();\nLAB_0036a975:\n    FUN_00369780();\nLAB_0036a97a:\n    FUN_00369780();\nLAB_0036a97f:\n    FUN_00369780();\n  }" ({ "{") (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" (identifier "FUN_00369780") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0036a970:\n    FUN_00369780();" (statement_identifier "LAB_0036a970") (: ":") (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" (identifier "FUN_00369780") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_0036a975:\n    FUN_00369780();" (statement_identifier "LAB_0036a975") (: ":") (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" (identifier "FUN_00369780") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_0036a97a:\n    FUN_00369780();" (statement_identifier "LAB_0036a97a") (: ":") (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" (identifier "FUN_00369780") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_0036a97f:\n    FUN_00369780();" (statement_identifier "LAB_0036a97f") (: ":") (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" (identifier "FUN_00369780") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }" (else "else") (compound_statement "{\n    local_1d4 = local_ec + local_1d0;\n    if (local_a0 == 0) goto LAB_0036a970;\n    local_1d8 = local_a0 + local_1d4;\n    puVar5 = (undefined4 *)FUN_003ac450();\n    uStack_135 = 0;\n    local_134 = 0;\n    uStack_133 = 0;\n    local_138 = 0x201;\n    uStack_136 = 1;\n    uStack_132 = 0;\n    local_130 = 0;\n    puVar5[1] = 0x10201;\n    uStack_12e = 0;\n    local_1b8 = &local_1a0;\n    puVar5[2] = 0;\n    *puVar5 = 0x464c457f;\n    puVar5[3] = 0;\n    *(undefined2 *)(puVar5 + 4) = 0x100;\n    uVar1 = *param_1;\n    puVar5[5] = 0x1000000;\n    puVar5[6] = 0;\n    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;\n    local_1a0 = puVar5 + 0xd;\n    puVar5[7] = 0;\n    puVar5[8] = 0x34000000;\n    puVar5[9] = 0;\n    puVar5[10] = 0x3400;\n    puVar5[0xb] = 0x28000000;\n    puVar5[0xc] = 0x4000500;\n    local_13c = (byte *)0x464c457f;\n    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);\n    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);\n    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);\n    if (local_ec == 0) goto LAB_0036a975;\n    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);\n    if (local_a0 == 0) goto LAB_0036a97a;\n    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);\n    if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }\n    pbVar4 = local_1c4;\n    puVar8 = auStack_220;\n    local_13c = local_1c4;\n    local_138 = 0;\n    uStack_136 = 0;\n    uStack_135 = 0;\n    local_134 = 0;\n                    \n    FUN_003699e0(param_1,local_1f8,local_1bc,0);\n    if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }\n    puVar2 = local_1bc;\n                    \n    FUN_003699e0(param_1,local_1c8,local_1bc,0);\n    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);\n    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);\n    if (local_ec == 0) goto LAB_0036a97f;\n    FUN_00346850();\n    if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }\n  }" ({ "{") (expression_statement "local_1d4 = local_ec + local_1d0;" (assignment_expression "local_1d4 = local_ec + local_1d0" (identifier "local_1d4") (= "=") (binary_expression "local_ec + local_1d0" (identifier "local_ec") (+ "+") (identifier "local_1d0"))) (; ";")) (if_statement "if (local_a0 == 0) goto LAB_0036a970;" (if "if") (parenthesized_expression "(local_a0 == 0)" (( "(") (binary_expression "local_a0 == 0" (identifier "local_a0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0036a970;" (goto "goto") (statement_identifier "LAB_0036a970") (; ";"))) (expression_statement "local_1d8 = local_a0 + local_1d4;" (assignment_expression "local_1d8 = local_a0 + local_1d4" (identifier "local_1d8") (= "=") (binary_expression "local_a0 + local_1d4" (identifier "local_a0") (+ "+") (identifier "local_1d4"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)FUN_003ac450();" (assignment_expression "puVar5 = (undefined4 *)FUN_003ac450()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_003ac450()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac450()" (identifier "FUN_003ac450") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uStack_135 = 0;" (assignment_expression "uStack_135 = 0" (identifier "uStack_135") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" (identifier "local_134") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_133 = 0;" (assignment_expression "uStack_133 = 0" (identifier "uStack_133") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_138 = 0x201;" (assignment_expression "local_138 = 0x201" (identifier "local_138") (= "=") (number_literal "0x201")) (; ";")) (expression_statement "uStack_136 = 1;" (assignment_expression "uStack_136 = 1" (identifier "uStack_136") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_132 = 0;" (assignment_expression "uStack_132 = 0" (identifier "uStack_132") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" (identifier "local_130") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[1] = 0x10201;" (assignment_expression "puVar5[1] = 0x10201" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x10201")) (; ";")) (expression_statement "uStack_12e = 0;" (assignment_expression "uStack_12e = 0" (identifier "uStack_12e") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_1b8 = &local_1a0;" (assignment_expression "local_1b8 = &local_1a0" (identifier "local_1b8") (= "=") (pointer_expression "&local_1a0" (& "&") (identifier "local_1a0"))) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar5 = 0x464c457f;" (assignment_expression "*puVar5 = 0x464c457f" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0x464c457f")) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar5 + 4) = 0x100;" (assignment_expression "*(undefined2 *)(puVar5 + 4) = 0x100" (pointer_expression "*(undefined2 *)(puVar5 + 4)" (* "*") (cast_expression "(undefined2 *)(puVar5 + 4)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 4)" (( "(") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0x100")) (; ";")) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" (identifier "uVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar5[5] = 0x1000000;" (assignment_expression "puVar5[5] = 0x1000000" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0x1000000")) (; ";")) (expression_statement "puVar5[6] = 0;" (assignment_expression "puVar5[6] = 0" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;" (assignment_expression "*(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8" (pointer_expression "*(ushort *)((int)puVar5 + 0x12)" (* "*") (cast_expression "(ushort *)((int)puVar5 + 0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + 0x12)" (( "(") (binary_expression "(int)puVar5 + 0x12" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (binary_expression "uVar1 << 8 | uVar1 >> 8" (binary_expression "uVar1 << 8" (identifier "uVar1") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar1 >> 8" (identifier "uVar1") (>> ">>") (number_literal "8")))) (; ";")) (expression_statement "local_1a0 = puVar5 + 0xd;" (assignment_expression "local_1a0 = puVar5 + 0xd" (identifier "local_1a0") (= "=") (binary_expression "puVar5 + 0xd" (identifier "puVar5") (+ "+") (number_literal "0xd"))) (; ";")) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[8] = 0x34000000;" (assignment_expression "puVar5[8] = 0x34000000" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0x34000000")) (; ";")) (expression_statement "puVar5[9] = 0;" (assignment_expression "puVar5[9] = 0" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[10] = 0x3400;" (assignment_expression "puVar5[10] = 0x3400" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0x3400")) (; ";")) (expression_statement "puVar5[0xb] = 0x28000000;" (assignment_expression "puVar5[0xb] = 0x28000000" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0x28000000")) (; ";")) (expression_statement "puVar5[0xc] = 0x4000500;" (assignment_expression "puVar5[0xc] = 0x4000500" (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0x4000500")) (; ";")) (expression_statement "local_13c = (byte *)0x464c457f;" (assignment_expression "local_13c = (byte *)0x464c457f" (identifier "local_13c") (= "=") (cast_expression "(byte *)0x464c457f" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x464c457f"))) (; ";")) (expression_statement "FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);" (call_expression "FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0)" (identifier "FUN_00369940") (argument_list "(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0)" (( "(") (identifier "param_1") (, ",") (binary_expression "(int)local_1b0 + -0x14c4ea" (cast_expression "(int)local_1b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1b0")) (+ "+") (number_literal "-0x14c4ea")) (, ",") (identifier "local_d8") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);" (call_expression "FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0)" (identifier "FUN_00369940") (argument_list "(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0)" (( "(") (identifier "param_1") (, ",") (identifier "local_200") (, ",") (identifier "local_d8") (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (number_literal "0xfc") (, ",") (identifier "local_1b4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);" (call_expression "FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3)" (identifier "FUN_00369940") (argument_list "(param_1,local_204,local_d8,2,0,local_1fc,0x40,3)" (( "(") (identifier "param_1") (, ",") (identifier "local_204") (, ",") (identifier "local_d8") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (identifier "local_1fc") (, ",") (number_literal "0x40") (, ",") (number_literal "3") () ")"))) (; ";")) (if_statement "if (local_ec == 0) goto LAB_0036a975;" (if "if") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0036a975;" (goto "goto") (statement_identifier "LAB_0036a975") (; ";"))) (expression_statement "FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);" (call_expression "FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0)" (identifier "FUN_00369940") (argument_list "(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0)" (( "(") (identifier "param_1") (, ",") (identifier "local_208") (, ",") (identifier "local_d8") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "local_1d0") (, ",") (identifier "local_ec") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (local_a0 == 0) goto LAB_0036a97a;" (if "if") (parenthesized_expression "(local_a0 == 0)" (( "(") (binary_expression "local_a0 == 0" (identifier "local_a0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0036a97a;" (goto "goto") (statement_identifier "LAB_0036a97a") (; ";"))) (expression_statement "FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);" (call_expression "FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0)" (identifier "FUN_00369940") (argument_list "(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0)" (( "(") (identifier "param_1") (, ",") (identifier "local_20c") (, ",") (identifier "local_d8") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "local_1d4") (, ",") (identifier "local_a0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (local_1b4 != 0) {\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }" (if "if") (parenthesized_expression "(local_1b4 != 0)" (( "(") (binary_expression "local_1b4 != 0" (identifier "local_1b4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      memcpy(local_1a0,local_210,local_1b4);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);\n      local_1d0 = local_1e8 - local_1b4;\n      memset(local_1a0,0,local_1d0);\n      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);\n    }" ({ "{") (expression_statement "memcpy(local_1a0,local_210,local_1b4);" (call_expression "memcpy(local_1a0,local_210,local_1b4)" (identifier "memcpy") (argument_list "(local_1a0,local_210,local_1b4)" (( "(") (identifier "local_1a0") (, ",") (identifier "local_210") (, ",") (identifier "local_1b4") () ")"))) (; ";")) (expression_statement "local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);" (assignment_expression "local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4)" (identifier "local_1a0") (= "=") (cast_expression "(undefined4 *)((int)local_1a0 + local_1b4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_1a0 + local_1b4)" (( "(") (binary_expression "(int)local_1a0 + local_1b4" (cast_expression "(int)local_1a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a0")) (+ "+") (identifier "local_1b4")) () ")")))) (; ";")) (expression_statement "local_1d0 = local_1e8 - local_1b4;" (assignment_expression "local_1d0 = local_1e8 - local_1b4" (identifier "local_1d0") (= "=") (binary_expression "local_1e8 - local_1b4" (identifier "local_1e8") (- "-") (identifier "local_1b4"))) (; ";")) (expression_statement "memset(local_1a0,0,local_1d0);" (call_expression "memset(local_1a0,0,local_1d0)" (identifier "memset") (argument_list "(local_1a0,0,local_1d0)" (( "(") (identifier "local_1a0") (, ",") (number_literal "0") (, ",") (identifier "local_1d0") () ")"))) (; ";")) (expression_statement "local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);" (assignment_expression "local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0)" (identifier "local_1a0") (= "=") (cast_expression "(undefined4 *)((int)local_1a0 + local_1d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_1a0 + local_1d0)" (( "(") (binary_expression "(int)local_1a0 + local_1d0" (cast_expression "(int)local_1a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a0")) (+ "+") (identifier "local_1d0")) () ")")))) (; ";")) (} "}"))) (expression_statement "pbVar4 = local_1c4;" (assignment_expression "pbVar4 = local_1c4" (identifier "pbVar4") (= "=") (identifier "local_1c4")) (; ";")) (expression_statement "puVar8 = auStack_220;" (assignment_expression "puVar8 = auStack_220" (identifier "puVar8") (= "=") (identifier "auStack_220")) (; ";")) (expression_statement "local_13c = local_1c4;" (assignment_expression "local_13c = local_1c4" (identifier "local_13c") (= "=") (identifier "local_1c4")) (; ";")) (expression_statement "local_138 = 0;" (assignment_expression "local_138 = 0" (identifier "local_138") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_136 = 0;" (assignment_expression "uStack_136 = 0" (identifier "uStack_136") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_135 = 0;" (assignment_expression "uStack_135 = 0" (identifier "uStack_135") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" (identifier "local_134") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_003699e0(param_1,local_1f8,local_1bc,0);" (call_expression "FUN_003699e0(param_1,local_1f8,local_1bc,0)" (identifier "FUN_003699e0") (argument_list "(param_1,local_1f8,local_1bc,0)" (( "(") (identifier "param_1") (, ",") (identifier "local_1f8") (, ",") (identifier "local_1bc") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (local_13c != pbVar4) {\n      FUN_003ae080();\n    }" (if "if") (parenthesized_expression "(local_13c != pbVar4)" (( "(") (binary_expression "local_13c != pbVar4" (identifier "local_13c") (!= "!=") (identifier "pbVar4")) () ")")) (compound_statement "{\n      FUN_003ae080();\n    }" ({ "{") (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar2 = local_1bc;" (assignment_expression "puVar2 = local_1bc" (identifier "puVar2") (= "=") (identifier "local_1bc")) (; ";")) (expression_statement "FUN_003699e0(param_1,local_1c8,local_1bc,0);" (call_expression "FUN_003699e0(param_1,local_1c8,local_1bc,0)" (identifier "FUN_003699e0") (argument_list "(param_1,local_1c8,local_1bc,0)" (( "(") (identifier "param_1") (, ",") (identifier "local_1c8") (, ",") (identifier "local_1bc") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);" (call_expression "FUN_003699e0(param_1,local_1cc,puVar2,local_1b4)" (identifier "FUN_003699e0") (argument_list "(param_1,local_1cc,puVar2,local_1b4)" (( "(") (identifier "param_1") (, ",") (identifier "local_1cc") (, ",") (identifier "puVar2") (, ",") (identifier "local_1b4") () ")"))) (; ";")) (expression_statement "FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);" (call_expression "FUN_003699e0(param_1,local_1dc,puVar2,local_1b4)" (identifier "FUN_003699e0") (argument_list "(param_1,local_1dc,puVar2,local_1b4)" (( "(") (identifier "param_1") (, ",") (identifier "local_1dc") (, ",") (identifier "puVar2") (, ",") (identifier "local_1b4") () ")"))) (; ";")) (if_statement "if (local_ec == 0) goto LAB_0036a97f;" (if "if") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0036a97f;" (goto "goto") (statement_identifier "LAB_0036a97f") (; ";"))) (expression_statement "FUN_00346850();" (call_expression "FUN_00346850()" (identifier "FUN_00346850") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_ec != 0) {\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }" (if "if") (parenthesized_expression "(local_ec != 0)" (( "(") (binary_expression "local_ec != 0" (identifier "local_ec") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);\n      if (local_a0 == 0) goto LAB_0036a989;\n      FUN_00346850();\n      if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }\n      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);\n      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;\n      *(undefined4 **)(param_1 + 0x12) = puVar5;\n      *(int *)(param_1 + 0x14) = local_1d8;\n      FUN_0023dd30();\n      FUN_00347ed0();\n      FUN_00347ed0();\n      if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }\n      if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }\n      if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }\n      if (local_19c == local_1e0) goto LAB_0036a753;\n      puVar9 = &stack0xfffffdd0;\n      FUN_003ae080();\n      goto LAB_0036a750;\n    }" ({ "{") (expression_statement "local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);" (assignment_expression "local_1a0 = (undefined4 *)(local_ec + (int)local_1a0)" (identifier "local_1a0") (= "=") (cast_expression "(undefined4 *)(local_ec + (int)local_1a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + (int)local_1a0)" (( "(") (binary_expression "local_ec + (int)local_1a0" (identifier "local_ec") (+ "+") (cast_expression "(int)local_1a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a0"))) () ")")))) (; ";")) (if_statement "if (local_a0 == 0) goto LAB_0036a989;" (if "if") (parenthesized_expression "(local_a0 == 0)" (( "(") (binary_expression "local_a0 == 0" (identifier "local_a0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0036a989;" (goto "goto") (statement_identifier "LAB_0036a989") (; ";"))) (expression_statement "FUN_00346850();" (call_expression "FUN_00346850()" (identifier "FUN_00346850") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_a0 == 0) {\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "(local_a0 == 0)" (( "(") (binary_expression "local_a0 == 0" (identifier "local_a0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_00369780();\nLAB_0036a918:\n                    \n        FUN_002446e0();\n      }" ({ "{") (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" (identifier "FUN_00369780") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0036a918:\n                    \n        FUN_002446e0();" (statement_identifier "LAB_0036a918") (: ":") (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);" (assignment_expression "local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0)" (identifier "local_1a0") (= "=") (cast_expression "(undefined4 *)(local_a0 + (int)local_1a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a0 + (int)local_1a0)" (( "(") (binary_expression "local_a0 + (int)local_1a0" (identifier "local_a0") (+ "+") (cast_expression "(int)local_1a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a0"))) () ")")))) (; ";")) (if_statement "if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;" (if "if") (parenthesized_expression "((int)local_1a0 - (int)puVar5 != local_1d8)" (( "(") (binary_expression "(int)local_1a0 - (int)puVar5 != local_1d8" (binary_expression "(int)local_1a0 - (int)puVar5" (cast_expression "(int)local_1a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a0")) (- "-") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) (!= "!=") (identifier "local_1d8")) () ")")) (goto_statement "goto LAB_0036a918;" (goto "goto") (statement_identifier "LAB_0036a918") (; ";"))) (expression_statement "*(undefined4 **)(param_1 + 0x12) = puVar5;" (assignment_expression "*(undefined4 **)(param_1 + 0x12) = puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x12)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x12)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x12)" (( "(") (binary_expression "param_1 + 0x12" (identifier "param_1") (+ "+") (number_literal "0x12")) () ")")))) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "*(int *)(param_1 + 0x14) = local_1d8;" (assignment_expression "*(int *)(param_1 + 0x14) = local_1d8" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "local_1d8")) (; ";")) (expression_statement "FUN_0023dd30();" (call_expression "FUN_0023dd30()" (identifier "FUN_0023dd30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00347ed0();" (call_expression "FUN_00347ed0()" (identifier "FUN_00347ed0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00347ed0();" (call_expression "FUN_00347ed0()" (identifier "FUN_00347ed0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_154 != local_1f4) {\n        FUN_003ae080();\n      }" (if "if") (parenthesized_expression "(local_154 != local_1f4)" (( "(") (binary_expression "local_154 != local_1f4" (identifier "local_154") (!= "!=") (identifier "local_1f4")) () ")")) (compound_statement "{\n        FUN_003ae080();\n      }" ({ "{") (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_16c != local_1f0) {\n        FUN_003ae080();\n      }" (if "if") (parenthesized_expression "(local_16c != local_1f0)" (( "(") (binary_expression "local_16c != local_1f0" (identifier "local_16c") (!= "!=") (identifier "local_1f0")) () ")")) (compound_statement "{\n        FUN_003ae080();\n      }" ({ "{") (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_184 != local_1ec) {\n        FUN_003ae080();\n      }" (if "if") (parenthesized_expression "(local_184 != local_1ec)" (( "(") (binary_expression "local_184 != local_1ec" (identifier "local_184") (!= "!=") (identifier "local_1ec")) () ")")) (compound_statement "{\n        FUN_003ae080();\n      }" ({ "{") (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_19c == local_1e0) goto LAB_0036a753;" (if "if") (parenthesized_expression "(local_19c == local_1e0)" (( "(") (binary_expression "local_19c == local_1e0" (identifier "local_19c") (== "==") (identifier "local_1e0")) () ")")) (goto_statement "goto LAB_0036a753;" (goto "goto") (statement_identifier "LAB_0036a753") (; ";"))) (expression_statement "puVar9 = &stack0xfffffdd0;" (assignment_expression "puVar9 = &stack0xfffffdd0" (identifier "puVar9") (= "=") (pointer_expression "&stack0xfffffdd0" (& "&") (identifier "stack0xfffffdd0"))) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0036a750;" (goto "goto") (statement_identifier "LAB_0036a750") (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" (identifier "FUN_00369780") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0036a989:\n  FUN_00369780();" (statement_identifier "LAB_0036a989") (: ":") (expression_statement "FUN_00369780();" (call_expression "FUN_00369780()" (identifier "FUN_00369780") (argument_list "()" (( "(") () ")"))) (; ";"))) (if_statement "if (local_16c != local_1f0) {\n    FUN_003ae080();\n  }" (if "if") (parenthesized_expression "(local_16c != local_1f0)" (( "(") (binary_expression "local_16c != local_1f0" (identifier "local_16c") (!= "!=") (identifier "local_1f0")) () ")")) (compound_statement "{\n    FUN_003ae080();\n  }" ({ "{") (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_184 != local_1ec) {\n    FUN_003ae080();\n  }" (if "if") (parenthesized_expression "(local_184 != local_1ec)" (( "(") (binary_expression "local_184 != local_1ec" (identifier "local_184") (!= "!=") (identifier "local_1ec")) () ")")) (compound_statement "{\n    FUN_003ae080();\n  }" ({ "{") (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_19c != local_1e0) {\n    FUN_003ae080();\n  }" (if "if") (parenthesized_expression "(local_19c != local_1e0)" (( "(") (binary_expression "local_19c != local_1e0" (identifier "local_19c") (!= "!=") (identifier "local_1e0")) () ")")) (compound_statement "{\n    FUN_003ae080();\n  }" ({ "{") (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0023e020();" (call_expression "FUN_0023e020()" (identifier "FUN_0023e020") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_004451f0();" (call_expression "FUN_004451f0()" (identifier "FUN_004451f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original name: sized_convert<32, true>
   DWARF original prototype: bool sized_convert<32,_true>(Binary_to_elf * this, Task * task) */

bool __thiscall gold::Binary_to_elf::sized_convert<32,_true>(Binary_to_elf *this,Task *task)

{
  type_2 *pout;
  type_1 mangled_name;
  type_1 start_symbol_name;
  type_1 end_symbol_name;
  type_1 size_symbol_name;
  type_2 e_ident [16];
  type_3 strtab;
  type_3 shstrtab;
  type_4 f;
  
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

char MASKED(ushort *param_1)

{
  ushort uVar1;
  undefined1 *puVar2;
  undefined **ppuVar3;
  byte *pbVar4;
  undefined4 *puVar5;
  int *piVar6;
  size_t sVar7;
  undefined4 *puVar8;
  undefined4 auStack_220 [4];
  void *local_210;
  undefined **local_20c;
  undefined **local_208;
  undefined **local_204;
  undefined **local_200;
  int local_1fc;
  byte **local_1f8;
  undefined1 *local_1f4;
  undefined1 *local_1f0;
  undefined1 *local_1ec;
  uint local_1e8;
  char local_1e1;
  byte *local_1e0;
  undefined1 **local_1dc;
  int local_1d8;
  int local_1d4;
  size_t local_1d0;
  undefined1 **local_1cc;
  undefined1 **local_1c8;
  byte *local_1c4;
  undefined1 **local_1c0;
  undefined1 *local_1bc;
  undefined4 **local_1b8;
  size_t local_1b4;
  undefined **local_1b0;
  undefined4 *local_1a0;
  byte *local_19c;
  int local_198;
  byte local_194 [16];
  undefined1 *local_184;
  int local_180;
  undefined1 local_17c [16];
  undefined1 *local_16c;
  int local_168;
  undefined1 local_164 [16];
  undefined1 *local_154;
  int local_150;
  undefined1 local_14c [16];
  byte *local_13c;
  undefined2 local_138;
  undefined1 uStack_136;
  undefined1 uStack_135;
  byte local_134;
  undefined1 uStack_133;
  undefined2 uStack_132;
  undefined2 local_130;
  undefined2 uStack_12e;
  undefined1 local_124 [56];
  int local_ec;
  undefined1 local_d8 [56];
  int local_a0;
  undefined1 *local_8c;
  undefined4 local_88;
  undefined1 local_84 [16];
  undefined4 local_74;
  undefined1 local_70;
  undefined4 local_6c;
  size_t local_68;
  int local_64;
  undefined1 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 *local_40;
  undefined4 *local_3c;
  undefined4 local_38;
  undefined4 ***local_34;
  undefined4 ***local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined1 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  undefined1 *puVar9;
  
  local_8c = local_84;
  local_1c0 = &local_8c;
  uStack_14 = 0x369e94;
  local_1b0 = &__DT_PLTGOT;
  local_40 = &local_48;
  local_34 = &local_34;
  local_88 = 0;
  local_84[0] = 0;
  local_74 = 0xffffffff;
  local_70 = 0;
  local_6c = 0;
  local_68 = 0;
  local_64 = 0;
  local_60 = 0;
  local_5c = 0;
  local_58 = 0;
  local_54 = 0;
  local_50 = 0;
  local_48 = 0;
  local_44 = 0;
  local_38 = 0;
  local_2c = 0;
  local_28 = 0;
  local_24 = 1;
  local_20 = 0;
  local_3c = local_40;
  local_30 = local_34;
                    /* try { // try from 00369f4b to 00369fe9 has its CatchHandler @ 0036a996 */
  local_1e1 = FUN_0023cb20();
  sVar7 = local_68;
  if (local_1e1 == '\0') {
    auStack_220[0] = 0x36a85d;
    piVar6 = __errno_location();
    puVar9 = &stack0xfffffdd4;
    strerror(*piVar6);
    gettext();
                    /* try { // try from 0036a891 to 0036a895 has its CatchHandler @ 0036a996 */
    FUN_0023b810();
LAB_0036a750:
    puVar8 = (undefined4 *)(puVar9 + 0x10);
LAB_0036a753:
    *(undefined1 ***)((int)puVar8 + -0x10) = local_1c0;
    *(undefined4 *)((int)puVar8 + -0x14) = 0x36a767;
    FUN_0023e020();
    return local_1e1;
  }
  local_1b4 = local_68;
  if (local_64 != 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0036a951 to 0036a955 has its CatchHandler @ 0036a996 */
    FUN_002446e0();
  }
  if (local_68 == 0) {
    local_210 = (void *)0x0;
  }
  else {
    auStack_220[0] = 0;
    local_210 = (void *)FUN_0023eb50(local_1c0,0,0);
  }
  local_1e8 = sVar7 + 3 & 0xfffffffc;
  local_1e0 = local_194;
  auStack_220[0] = 0;
  local_19c = local_1e0;
  FUN_0014fca0();
  pbVar4 = local_19c;
  if (local_198 != 0) {
    do {
      if ((*(byte *)((int)local_1b0 + (uint)*pbVar4 * 2 + -0x147f60) & 0x8c) == 0) {
        *pbVar4 = 0x5f;
      }
      pbVar4 = pbVar4 + 1;
    } while (local_19c + local_198 != pbVar4);
  }
  local_1f8 = &local_13c;
                    /* try { // try from 0036a04f to 0036a11d has its CatchHandler @ 0036aa9f */
  FUN_0014f900();
  pbVar4 = local_19c;
  local_1c4 = &local_134;
  sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));
  if (local_13c == local_1c4) {
    if (sVar7 != 0) {
      if (sVar7 == 1) {
        *local_19c = local_134;
        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));
      }
      else {
        memcpy(local_19c,local_1c4,sVar7);
        sVar7 = CONCAT13(uStack_135,CONCAT12(uStack_136,local_138));
      }
    }
    local_19c[sVar7] = 0;
    pbVar4 = local_1c4;
  }
  else if ((local_19c == local_1e0) || (local_19c = local_13c, pbVar4 == (byte *)0x0)) {
    local_19c = local_13c;
    pbVar4 = &local_134;
    local_13c = local_1c4;
  }
  else {
    local_13c = pbVar4;
    local_134 = (byte)local_194._0_4_;
    uStack_133 = SUB41(local_194._0_4_,1);
    uStack_132 = SUB42(local_194._0_4_,2);
    pbVar4 = local_1c4;
  }
  local_1c4 = pbVar4;
  local_138 = 0;
  uStack_136 = 0;
  uStack_135 = 0;
  *local_13c = 0;
  if (local_13c != local_1c4) {
    FUN_003ae080();
  }
  local_1ec = local_17c;
  local_1c8 = &local_184;
  local_184 = local_1ec;
  FUN_0014fca0();
  if (0x7fffffffU - local_180 < 6) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0036a966 to 0036a96a has its CatchHandler @ 0036aa94 */
    FUN_003f3a70();
  }
                    /* try { // try from 0036a14d to 0036a151 has its CatchHandler @ 0036aa94 */
  FUN_003b7890();
  local_1f0 = local_164;
  local_1cc = &local_16c;
  local_16c = local_1f0;
                    /* try { // try from 0036a186 to 0036a18a has its CatchHandler @ 0036aaa3 */
  FUN_0014fca0();
  if (0x7fffffffU - local_168 < 4) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0036a8f9 to 0036a8fd has its CatchHandler @ 0036a98e */
    FUN_003f3a70();
  }
                    /* try { // try from 0036a1ba to 0036a1be has its CatchHandler @ 0036a98e */
  FUN_003b7890();
  local_1f4 = local_14c;
  local_1dc = &local_154;
  local_154 = local_1f4;
                    /* try { // try from 0036a1f3 to 0036a1f7 has its CatchHandler @ 0036a992 */
  FUN_0014fca0();
  if (0x7fffffffU - local_150 < 5) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0036a90e to 0036a912 has its CatchHandler @ 0036aa86 */
    FUN_003f3a70();
  }
                    /* try { // try from 0036a229 to 0036a22d has its CatchHandler @ 0036aa86 */
  FUN_003b7890();
  local_1bc = local_124;
                    /* try { // try from 0036a242 to 0036a246 has its CatchHandler @ 0036aa8d */
  FUN_00346670();
                    /* try { // try from 0036a255 to 0036a2a8 has its CatchHandler @ 0036aa98 */
  FUN_00349de0();
  ppuVar3 = local_1b0;
  FUN_00349de0();
  FUN_00349de0();
  FUN_0034b2b0();
  FUN_00346670();
  local_200 = ppuVar3 + -0x57f35;
                    /* try { // try from 0036a2be to 0036a527 has its CatchHandler @ 0036aaa7 */
  FUN_00349de0();
  local_204 = ppuVar3 + -0x57f9c;
  FUN_00349de0();
  local_208 = ppuVar3 + -0x57f94;
  FUN_00349de0();
  local_20c = ppuVar3 + -0x57f92;
  FUN_00349de0();
  FUN_0034b2b0();
  local_1fc = local_1e8 + 0xfc;
  local_1d0 = local_1e8 + 0x13c;
  if (local_ec == 0) {
                    /* try { // try from 0036a96b to 0036a98d has its CatchHandler @ 0036aaa7 */
    FUN_00369780();
LAB_0036a970:
    FUN_00369780();
LAB_0036a975:
    FUN_00369780();
LAB_0036a97a:
    FUN_00369780();
LAB_0036a97f:
    FUN_00369780();
  }
  else {
    local_1d4 = local_ec + local_1d0;
    if (local_a0 == 0) goto LAB_0036a970;
    local_1d8 = local_a0 + local_1d4;
    puVar5 = (undefined4 *)FUN_003ac450();
    uStack_135 = 0;
    local_134 = 0;
    uStack_133 = 0;
    local_138 = 0x201;
    uStack_136 = 1;
    uStack_132 = 0;
    local_130 = 0;
    puVar5[1] = 0x10201;
    uStack_12e = 0;
    local_1b8 = &local_1a0;
    puVar5[2] = 0;
    *puVar5 = 0x464c457f;
    puVar5[3] = 0;
    *(undefined2 *)(puVar5 + 4) = 0x100;
    uVar1 = *param_1;
    puVar5[5] = 0x1000000;
    puVar5[6] = 0;
    *(ushort *)((int)puVar5 + 0x12) = uVar1 << 8 | uVar1 >> 8;
    local_1a0 = puVar5 + 0xd;
    puVar5[7] = 0;
    puVar5[8] = 0x34000000;
    puVar5[9] = 0;
    puVar5[10] = 0x3400;
    puVar5[0xb] = 0x28000000;
    puVar5[0xc] = 0x4000500;
    local_13c = (byte *)0x464c457f;
    FUN_00369940(param_1,(int)local_1b0 + -0x14c4ea,local_d8,0,0,0,0,0);
    FUN_00369940(param_1,local_200,local_d8,1,3,0xfc,local_1b4,0);
    FUN_00369940(param_1,local_204,local_d8,2,0,local_1fc,0x40,3);
    if (local_ec == 0) goto LAB_0036a975;
    FUN_00369940(param_1,local_208,local_d8,3,0,local_1d0,local_ec,0);
    if (local_a0 == 0) goto LAB_0036a97a;
    FUN_00369940(param_1,local_20c,local_d8,3,0,local_1d4,local_a0,0);
    if (local_1b4 != 0) {
      memcpy(local_1a0,local_210,local_1b4);
      local_1a0 = (undefined4 *)((int)local_1a0 + local_1b4);
      local_1d0 = local_1e8 - local_1b4;
      memset(local_1a0,0,local_1d0);
      local_1a0 = (undefined4 *)((int)local_1a0 + local_1d0);
    }
    pbVar4 = local_1c4;
    puVar8 = auStack_220;
    local_13c = local_1c4;
    local_138 = 0;
    uStack_136 = 0;
    uStack_135 = 0;
    local_134 = 0;
                    /* try { // try from 0036a574 to 0036a578 has its CatchHandler @ 0036aaae */
    FUN_003699e0(param_1,local_1f8,local_1bc,0);
    if (local_13c != pbVar4) {
      FUN_003ae080();
    }
    puVar2 = local_1bc;
                    /* try { // try from 0036a5bb to 0036a6c1 has its CatchHandler @ 0036aaa7 */
    FUN_003699e0(param_1,local_1c8,local_1bc,0);
    FUN_003699e0(param_1,local_1cc,puVar2,local_1b4);
    FUN_003699e0(param_1,local_1dc,puVar2,local_1b4);
    if (local_ec == 0) goto LAB_0036a97f;
    FUN_00346850();
    if (local_ec != 0) {
      local_1a0 = (undefined4 *)(local_ec + (int)local_1a0);
      if (local_a0 == 0) goto LAB_0036a989;
      FUN_00346850();
      if (local_a0 == 0) {
                    /* try { // try from 0036a913 to 0036a936 has its CatchHandler @ 0036aaa7 */
        FUN_00369780();
LAB_0036a918:
                    /* WARNING: Subroutine does not return */
        FUN_002446e0();
      }
      local_1a0 = (undefined4 *)(local_a0 + (int)local_1a0);
      if ((int)local_1a0 - (int)puVar5 != local_1d8) goto LAB_0036a918;
      *(undefined4 **)(param_1 + 0x12) = puVar5;
      *(int *)(param_1 + 0x14) = local_1d8;
      FUN_0023dd30();
      FUN_00347ed0();
      FUN_00347ed0();
      if (local_154 != local_1f4) {
        FUN_003ae080();
      }
      if (local_16c != local_1f0) {
        FUN_003ae080();
      }
      if (local_184 != local_1ec) {
        FUN_003ae080();
      }
      if (local_19c == local_1e0) goto LAB_0036a753;
      puVar9 = &stack0xfffffdd0;
      FUN_003ae080();
      goto LAB_0036a750;
    }
  }
  FUN_00369780();
LAB_0036a989:
  FUN_00369780();
                    /* catch() { ... } // from try @ 0036a1ba with catch @ 0036a98e
                       catch() { ... } // from try @ 0036a8f9 with catch @ 0036a98e */
  if (local_16c != local_1f0) {
    FUN_003ae080();
  }
  if (local_184 != local_1ec) {
    FUN_003ae080();
  }
  if (local_19c != local_1e0) {
    FUN_003ae080();
  }
  FUN_0023e020();
                    /* WARNING: Subroutine does not return */
  FUN_004451f0();
}

