
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void create_dynamic_symtab(Layout * this, Input_objects *
   input_objects, Symbol_table * symtab, Output_section * * pdynstr, uint * plocal_dynamic_count,
   uint * pforced_local_dynamic_count, vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *
   pdynamic_symbols, Versions * pversions) */

void __thiscall
gold::Layout::create_dynamic_symtab
          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,Output_section **pdynstr,
          uint *plocal_dynamic_count,uint *pforced_local_dynamic_count,
          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *pdynamic_symbols,
          Versions *pversions)

{
  uint forced_local_count;
  uchar *phash;
  uint hashlen;
  uchar *phash_1;
  uint hashlen_1;
  
}



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

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

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int *piVar4;
  undefined4 *puVar5;
  int *piVar6;
  int iVar7;
  int *piVar8;
  undefined4 *puVar9;
  byte *pbVar10;
  undefined4 extraout_ECX;
  int extraout_ECX_00;
  int extraout_ECX_01;
  int extraout_ECX_02;
  int extraout_ECX_03;
  int extraout_ECX_04;
  int extraout_ECX_05;
  int *piVar11;
  undefined4 *puVar12;
  int iVar13;
  uint uVar14;
  byte *pbVar15;
  byte *pbVar16;
  bool bVar17;
  bool bVar18;
  bool bVar19;
  byte bVar20;
  int local_5c;
  int *local_58;
  int local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  int *local_2c;
  int local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar20 = 0;
  iVar13 = 1;
  uStack_14 = 0x11220e;
  piVar4 = *(int **)(param_1 + 0x130);
  if (piVar4 != *(int **)(param_1 + 0x134)) {
    do {
      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {
        if (iVar13 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");
        }
        *(int *)(iVar3 + 0x68) = iVar13;
        piVar4 = piVar4 + 1;
        iVar13 = iVar13 + 1;
        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;
      }
      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;
      piVar4 = piVar4 + 1;
    } while (*(int **)(param_1 + 0x134) != piVar4);
  }
LAB_0011226e:
  puVar5 = (undefined4 *)*param_2;
  if (puVar5 != (undefined4 *)param_2[1]) {
    do {
      piVar4 = (int *)*puVar5;
      puVar5 = puVar5 + 1;
      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);
    } while ((undefined4 *)param_2[1] != puVar5);
  }
  local_40 = 0;
  iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);
  *param_5 = iVar13;
  *param_6 = local_40;
  if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;
  iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);
  if (iVar1 == 0x20) {
    local_5c = 4;
    local_58 = (int *)0x10;
  }
  else {
    if (iVar1 != 0x40) {
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);
    }
    local_5c = 8;
    local_58 = (int *)0x18;
  }
  piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);
  if (piVar4 != (int *)0x0) {
    puVar5 = (undefined4 *)FUN_00246670(0x30);
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = (int)local_58 * iVar3;
    puVar5[8] = 0;
    puVar5[9] = local_5c;
    puVar5[10] = 0;
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
    *puVar5 = &PTR_FUN_0040f01c;
    puVar5[4] = 0;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[0xb] = "** dynsym";
    FUN_00160da0(piVar4,puVar5);
    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||
       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);
    }
    piVar4[0x13] = local_40 + iVar13;
    FUN_0015cc30(piVar4,local_58,0);
    piVar4[9] = local_5c;
    piVar4[10] = 0;
    *(int **)(param_1 + 0x17c) = piVar4;
  }
  iVar1 = *(int *)(param_1 + 0x18c);
  if (iVar1 != 0) {
    piVar8 = *(int **)(iVar1 + 0x30);
    local_24 = 6;
    piVar11 = *(int **)(iVar1 + 0x34);
    local_20 = 0;
    local_28 = 0;
    if (piVar8 == piVar11) {
      local_2c = piVar4;
      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);
      piVar6 = *(int **)(iVar1 + 0x30);
      piVar11 = *(int **)(iVar1 + 0x34);
    }
    else {
      *piVar8 = (int)piVar4;
      piVar6 = piVar8 + 4;
      piVar8[1] = 0;
      piVar8[2] = 6;
      piVar8[3] = 0;
      *(int **)(iVar1 + 0x30) = piVar6;
    }
    local_24 = 0xb;
    local_20 = 0xffffffff;
    local_2c = local_58;
    if (piVar11 == piVar6) {
      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);
    }
    else {
      *piVar6 = (int)local_58;
      piVar6[1] = local_28;
      piVar6[2] = 0xb;
      piVar6[3] = -1;
      *(int **)(iVar1 + 0x30) = piVar6 + 4;
    }
  }
  puVar5 = *(undefined4 **)(param_1 + 0x124);
  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {
    uVar14 = 0;
    do {
      uVar2 = *puVar5;
      puVar5 = puVar5 + 1;
      iVar7 = FUN_0015f9c0(uVar2);
      uVar14 = uVar14 + iVar7;
    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);
    if ((0xfeff < uVar14) &&
       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {
      puVar5 = (undefined4 *)FUN_00246670(0x38);
      puVar5[1] = 0;
      puVar5[2] = 0;
      puVar5[3] = iVar3 << 2;
      puVar5[8] = 0;
      puVar5[9] = 4;
      puVar5[10] = 0;
      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
      puVar5[4] = 0;
      puVar5[5] = 0xffffffff;
      puVar5[6] = 0xffffffff;
      *puVar5 = &PTR_FUN_00407694;
      puVar5[0xb] = 0;
      puVar5[0xc] = 0;
      puVar5[0xd] = 0;
      *(undefined4 **)(param_1 + 0x180) = puVar5;
      FUN_00160da0(iVar7,puVar5);
      if ((*(int *)(iVar7 + 0x40) != 0) ||
         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))
      goto LAB_00112cb1;
      *(undefined4 *)(iVar7 + 0x24) = 4;
      *(undefined4 *)(iVar7 + 0x28) = 0;
      *(int **)(iVar7 + 0x3c) = piVar4;
      FUN_0015cc30(iVar7,4,0);
      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;
      *(undefined1 *)(param_1 + 0x1ca) = 1;
    }
  }
  piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);
  *param_4 = piVar8;
  iVar3 = extraout_ECX_00;
  if (piVar8 != (int *)0x0) {
    puVar5 = (undefined4 *)FUN_00246670(0x30);
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;
    puVar5[0xb] = param_1 + 0xa0;
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = 0;
    puVar5[4] = 0;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[8] = 0;
    puVar5[9] = 1;
    puVar5[10] = 0;
    *puVar5 = &PTR_FUN_004075bc;
    FUN_00160da0(piVar8,puVar5);
    if (piVar4 != (int *)0x0) {
      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||
         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;
      piVar4[0xf] = (int)piVar8;
    }
    iVar3 = *(int *)(param_1 + 0x184);
    if (iVar3 != 0) {
      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||
         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;
      *(int **)(iVar3 + 0x3c) = piVar8;
    }
    iVar3 = iVar1;
    if (iVar1 != 0) {
      puVar5 = *(undefined4 **)(iVar1 + 0x30);
      puVar12 = *(undefined4 **)(iVar1 + 0x34);
      local_24 = 5;
      local_20 = 0;
      local_28 = 0;
      if (puVar5 == puVar12) {
        local_2c = piVar8;
        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);
        puVar9 = *(undefined4 **)(iVar1 + 0x30);
        puVar12 = *(undefined4 **)(iVar1 + 0x34);
      }
      else {
        *puVar5 = piVar8;
        puVar9 = puVar5 + 4;
        puVar5[1] = 0;
        puVar5[2] = 5;
        puVar5[3] = 0;
        *(undefined4 **)(iVar1 + 0x30) = puVar9;
      }
      local_24 = 10;
      local_20 = 0xfffffffe;
      local_28 = 0;
      if (puVar9 == puVar12) {
        local_2c = piVar8;
        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);
        iVar3 = extraout_ECX_04;
      }
      else {
        *puVar9 = piVar8;
        puVar9[1] = 0;
        puVar9[2] = 10;
        puVar9[3] = 0xfffffffe;
        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;
        local_2c = piVar8;
      }
    }
  }
  bVar17 = false;
  bVar19 = *(int *)(DAT_004144e8 + 8) == 0;
  if (bVar19) goto LAB_00112ccc;
  pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);
  iVar3 = 4;
  pbVar15 = pbVar10;
  pbVar16 = &DAT_002e2035;
  do {
    if (iVar3 == 0) break;
    iVar3 = iVar3 + -1;
    bVar17 = *pbVar15 < *pbVar16;
    bVar19 = *pbVar15 == *pbVar16;
    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
  } while (bVar19);
  bVar18 = false;
  bVar17 = (!bVar17 && !bVar19) == bVar17;
  if (bVar17) {
LAB_00112880:
    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);
    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);
    puVar5 = (undefined4 *)FUN_00246670(0x34);
    puVar5[1] = 0;
    puVar5[9] = local_5c;
    puVar5[2] = 0;
    puVar5[8] = 0;
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
    puVar5[10] = 0;
    puVar5[3] = local_38;
    *puVar5 = &PTR_FUN_00407550;
    puVar5[4] = 0;
    puVar5[0xb] = local_3c;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[0xc] = "** hash";
    iVar3 = extraout_ECX_01;
    if (param_2 != (int *)0x0) {
      FUN_00160da0(param_2,puVar5);
      if (piVar4 != (int *)0x0) {
        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||
           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;
        param_2[0xf] = (int)piVar4;
      }
      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;
      iVar3 = extraout_ECX_02;
      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {
        FUN_0015cc30(param_2,4,0);
        iVar3 = extraout_ECX_03;
      }
      if (iVar1 != 0) {
        local_24 = 0x6ffffef5;
        puVar5 = *(undefined4 **)(iVar1 + 0x30);
        local_20 = 0;
        local_28 = 0;
        local_2c = param_2;
        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {
          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);
          iVar3 = extraout_ECX_05;
        }
        else {
          *puVar5 = param_2;
          puVar5[1] = 0;
          puVar5[2] = 0x6ffffef5;
          puVar5[3] = 0;
          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;
        }
      }
    }
    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;
    if (bVar17) {
LAB_00112ccc:
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);
    }
    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);
  }
  else {
    iVar3 = 5;
    pbVar15 = pbVar10;
    pbVar16 = &DAT_002e2048;
    do {
      if (iVar3 == 0) break;
      iVar3 = iVar3 + -1;
      bVar18 = *pbVar15 < *pbVar16;
      bVar17 = *pbVar15 == *pbVar16;
      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
    } while (bVar17);
    bVar17 = (!bVar18 && !bVar17) == bVar18;
    if (bVar17) goto LAB_00112880;
  }
  bVar19 = false;
  iVar3 = 5;
  pbVar15 = pbVar10;
  pbVar16 = &DAT_002e2043;
  do {
    if (iVar3 == 0) break;
    iVar3 = iVar3 + -1;
    bVar19 = *pbVar15 < *pbVar16;
    bVar17 = *pbVar15 == *pbVar16;
    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
  } while (bVar17);
  bVar18 = false;
  bVar17 = (!bVar19 && !bVar17) == bVar19;
  if (!bVar17) {
    iVar3 = 5;
    pbVar15 = &DAT_002e2048;
    do {
      if (iVar3 == 0) break;
      iVar3 = iVar3 + -1;
      bVar18 = *pbVar10 < *pbVar15;
      bVar17 = *pbVar10 == *pbVar15;
      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;
      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    } while (bVar17);
    if ((!bVar18 && !bVar17) != bVar18) {
      return;
    }
  }
  FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);
  param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);
  puVar5 = (undefined4 *)FUN_00246670(0x34);
  puVar5[1] = 0;
  puVar5[9] = local_5c;
  puVar5[2] = 0;
  puVar5[8] = 0;
  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
  puVar5[10] = 0;
  puVar5[3] = local_30;
  *puVar5 = &PTR_FUN_00407550;
  puVar5[4] = 0;
  puVar5[0xb] = local_34;
  puVar5[5] = 0xffffffff;
  puVar5[6] = 0xffffffff;
  puVar5[0xc] = "** hash";
  if (param_2 != (int *)0x0) {
    FUN_00160da0(param_2,puVar5);
    if (piVar4 != (int *)0x0) {
      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||
         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {
LAB_00112cb1:
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");
      }
      param_2[0xf] = (int)piVar4;
    }
    if (*(int *)(DAT_004144e8 + 0xc) == 0) {
LAB_00112d14:
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);
    }
    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);
    iVar3 = iVar13 + 7;
    if (-1 < iVar13) {
      iVar3 = iVar13;
    }
    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);
  }
  if (iVar1 != 0) {
    local_24 = 4;
    puVar5 = *(undefined4 **)(iVar1 + 0x30);
    local_20 = 0;
    local_28 = 0;
    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {
      local_2c = param_2;
      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);
    }
    else {
      *puVar5 = param_2;
      puVar5[1] = 0;
      puVar5[2] = 4;
      puVar5[3] = 0;
      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;
    }
  }
  return;
}


PUSH EBP
MOV EBP,0x1
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0003a210
ADD EBX,0x301df2
SUB ESP,0x5c
MOV EAX,dword ptr [ESP + 0x70]
MOV EDI,dword ptr [ESP + 0x70]
MOV ESI,dword ptr [ESP + 0x74]
MOV EAX,dword ptr [EAX + 0x130]
CMP EAX,dword ptr [EDI + 0x134]
JZ 0x0011226e
MOV ECX,EDI
JMP 0x0011224a
MOV dword ptr [EDX + 0x68],0xffffffff
ADD EAX,0x4
CMP dword ptr [ECX + 0x134],EAX
JZ 0x0011226e
MOV EDX,dword ptr [EAX]
TEST byte ptr [EDX + 0x90],0x2
JZ 0x00112238
TEST EBP,EBP
JZ 0x00112c96
MOV dword ptr [EDX + 0x68],EBP
ADD EAX,0x4
ADD EBP,0x1
CMP dword ptr [ECX + 0x134],EAX
JNZ 0x0011224a
MOV EDI,dword ptr [ESI]
CMP EDI,dword ptr [ESI + 0x4]
JZ 0x0011229c
MOV EAX,EBP
LEA ESI,[ESI]
NOP
MOV EDX,dword ptr [EDI]
SUB ESP,0x8
ADD EDI,0x4
MOV ECX,dword ptr [EDX]
PUSH EAX
PUSH EDX
CALL dword ptr [ECX + 0xd0]
ADD ESP,0x10
CMP dword ptr [ESI + 0x4],EDI
JNZ 0x00112280
MOV EBP,EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x2c],0x0
SUB ESP,0x8
ADD EAX,0xa0
MOV dword ptr [ESP + 0x24],EAX
PUSH dword ptr [ESP + 0x94]
PUSH EAX
PUSH dword ptr [ESP + 0x98]
LEA EAX,[ESP + 0x40]
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x94]
CALL 0x001e8490
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0xa0]
MOV dword ptr [EAX],EBP
MOV EAX,dword ptr [ESP + 0xa4]
MOV dword ptr [EAX],EDX
LEA EAX,[EBX + 0x4e8]
MOV dword ptr [ESP + 0x2c],EAX
MOV EAX,dword ptr [EAX]
ADD ESP,0x20
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x00112d14
MOV EAX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
CMP EAX,0x20
JZ 0x00112bc0
CMP EAX,0x40
JNZ 0x00112cfb
MOV dword ptr [ESP + 0x10],0x8
MOV dword ptr [ESP + 0x14],0x18
SUB ESP,0x4
LEA EAX,[EBX + 0xffee9663]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0xb
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x9c]
CALL 0x00110ae0
ADD ESP,0x30
MOV dword ptr [ESP + 0x4],EAX
TEST EAX,EAX
JZ 0x00112444
SUB ESP,0xc
XOR EDI,EDI
PUSH 0x30
CALL 0x00246670
MOV EDX,dword ptr [ESP + 0x24]
IMUL EDX,dword ptr [ESP + 0x28]
MOV ESI,dword ptr [ESP + 0x20]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],EDX
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x20],0x0
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x24],ESI
OR EDX,0xa
MOV dword ptr [EAX + 0x28],EDI
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[EBX + 0xffffb01c]
MOV dword ptr [EAX],EDX
LEA EDX,[EBX + 0xffee966b]
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x2c],EDX
POP ECX
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x10]
CALL 0x00160da0
MOV EAX,dword ptr [ESP + 0x3c]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [ECX + 0x44]
ADD EAX,EBP
TEST EDX,EDX
JNZ 0x00112ce2
MOV EDX,dword ptr [ECX + 0x48]
TEST EDX,EDX
JNZ 0x00112ce2
MOV EDX,dword ptr [ECX + 0x4c]
CMP EAX,EDX
JZ 0x0011240f
TEST EDX,EDX
JNZ 0x00112ce2
MOV ECX,dword ptr [ESP + 0x4]
SUB ESP,0x4
MOV dword ptr [ECX + 0x4c],EAX
MOV EAX,dword ptr [ESP + 0x18]
CDQ
PUSH EDX
PUSH EAX
MOV dword ptr [ESP + 0x10],ECX
PUSH ECX
CALL 0x0015cc30
MOV ECX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESP + 0x80]
ADD ESP,0x10
MOV dword ptr [ECX + 0x24],ESI
MOV dword ptr [ECX + 0x28],EDI
MOV dword ptr [EAX + 0x17c],ECX
MOV EAX,dword ptr [ESP + 0x70]
MOV ESI,dword ptr [EAX + 0x18c]
MOV dword ptr [ESP + 0x8],ESI
TEST ESI,ESI
JZ 0x001124e9
MOV ECX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [ESI + 0x30]
MOV dword ptr [ESP + 0x48],0x6
LEA EDI,[ESI + 0x2c]
MOV EDX,dword ptr [ESI + 0x34]
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x40],ECX
MOV dword ptr [ESP + 0x44],0x0
CMP EAX,EDX
JZ 0x00112bd5
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],ECX
MOV ECX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],ECX
MOV ECX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],ECX
MOV dword ptr [ESI + 0x30],EAX
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x48],0xb
MOV dword ptr [ESP + 0x4c],0xffffffff
MOV dword ptr [ESP + 0x40],ECX
CMP EDX,EAX
JZ 0x00112c0b
MOV dword ptr [EAX],ECX
MOV EDX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV ESI,dword ptr [ESP + 0x8]
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [ESI + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x70]
XOR ESI,ESI
MOV EDI,dword ptr [EAX + 0x124]
CMP EDI,dword ptr [EAX + 0x128]
JZ 0x00112533
MOV dword ptr [ESP + 0x14],EBP
MOV EBP,EDI
MOV EDI,EAX
LEA ESI,[ESI]
SUB ESP,0xc
PUSH dword ptr [EBP]
ADD EBP,0x4
CALL 0x0015f9c0
ADD ESP,0x10
ADD ESI,EAX
CMP dword ptr [EDI + 0x128],EBP
JNZ 0x00112508
MOV EBP,dword ptr [ESP + 0x14]
CMP ESI,0xfeff
JA 0x00112a98
SUB ESP,0x4
LEA EAX,[EBX + 0xffee9fa6]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x3
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x9c]
CALL 0x00110ae0
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0xac]
ADD ESP,0x30
MOV dword ptr [EAX],ESI
TEST ESI,ESI
JZ 0x001126dd
SUB ESP,0xc
PUSH 0x30
CALL 0x00246670
LEA EDX,[EBX + 0xffff35b4]
MOV EDI,dword ptr [ESP + 0x2c]
AND byte ptr [EAX + 0x1c],0xe0
ADD EDX,0x8
MOV dword ptr [EAX + 0x2c],EDI
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x24],0x1
MOV dword ptr [EAX + 0x28],0x0
MOV dword ptr [EAX],EDX
POP EDX
POP ECX
PUSH EAX
PUSH ESI
CALL 0x00160da0
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x4]
TEST EDI,EDI
JZ 0x00112609
MOV EAX,dword ptr [EDI + 0x40]
TEST EAX,EAX
JNZ 0x00112cb1
MOVZX EAX,byte ptr [EDI + 0x90]
TEST AL,0x4
JNZ 0x00112cb1
TEST AL,0x8
JNZ 0x00112cb1
MOV dword ptr [EDI + 0x3c],ESI
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX + 0x184]
TEST EAX,EAX
JZ 0x0011263e
MOV EDI,dword ptr [EAX + 0x40]
TEST EDI,EDI
JNZ 0x00112cb1
MOVZX EDX,byte ptr [EAX + 0x90]
TEST DL,0x4
JNZ 0x00112cb1
AND EDX,0x8
JNZ 0x00112cb1
MOV dword ptr [EAX + 0x3c],ESI
MOV ECX,dword ptr [ESP + 0x8]
TEST ECX,ECX
JZ 0x001126dd
MOV EAX,dword ptr [ECX + 0x30]
MOV EDX,dword ptr [ECX + 0x34]
MOV dword ptr [ESP + 0x40],ESI
LEA EDI,[ECX + 0x2c]
MOV dword ptr [ESP + 0x48],0x5
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x44],0x0
CMP EAX,EDX
JZ 0x00112c40
MOV dword ptr [EAX],ESI
MOV ECX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],ECX
MOV ECX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],ECX
MOV ECX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],ECX
MOV ECX,dword ptr [ESP + 0x8]
MOV dword ptr [ECX + 0x30],EAX
MOV dword ptr [ESP + 0x48],0xa
MOV dword ptr [ESP + 0x4c],0xfffffffe
MOV dword ptr [ESP + 0x40],ESI
MOV dword ptr [ESP + 0x44],0x0
CMP EAX,EDX
JZ 0x00112c61
MOV dword ptr [EAX],ESI
MOV EDX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV ESI,dword ptr [ESP + 0x8]
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [ESI + 0x30],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x00112ccc
MOV EAX,dword ptr [EAX + 0x1b30]
MOV ECX,0x4
LEA EDI,[EBX + 0xffece035]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00112880
MOV ECX,0x5
LEA EDI,[EBX + 0xffece048]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00112880
MOV ECX,0x5
LEA EDI,[EBX + 0xffece043]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00112763
MOV ESI,EAX
MOV ECX,0x5
LEA EDI,[EBX + 0xffece048]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00112871
LEA EAX,[ESP + 0x3c]
PUSH EAX
LEA EAX,[ESP + 0x3c]
PUSH EAX
ADD EBP,dword ptr [ESP + 0x34]
PUSH EBP
PUSH dword ptr [ESP + 0x94]
CALL 0x000c4aa0
ADD ESP,0xc
LEA EAX,[EBX + 0xffee9687]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x5
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x9c]
CALL 0x00110ae0
ADD ESP,0x24
PUSH 0x34
MOV ESI,EAX
CALL 0x00246670
MOV EDI,dword ptr [ESP + 0x20]
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x24],EDI
MOV EDI,dword ptr [ESP + 0x4c]
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x8],0x0
OR EDX,0xa
MOV dword ptr [EAX + 0x20],0x0
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[EBX + 0xffff3548]
MOV dword ptr [EAX + 0x28],0x0
ADD EDX,0x8
MOV dword ptr [EAX + 0xc],EDI
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESP + 0x48]
ADD ESP,0x10
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x2c],EDX
LEA EDX,[EBX + 0xffee968d]
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x30],EDX
TEST ESI,ESI
JNZ 0x00112968
MOV EBX,dword ptr [ESP + 0x8]
TEST EBX,EBX
JZ 0x00112871
MOV dword ptr [ESP + 0x48],0x4
MOV EAX,dword ptr [EBX + 0x30]
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x40],ESI
MOV dword ptr [ESP + 0x44],0x0
CMP EAX,dword ptr [EBX + 0x34]
JZ 0x00112c22
MOV dword ptr [EAX],ESI
MOV EDX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [EBX + 0x30],EAX
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[ESP + 0x34]
PUSH EAX
LEA EAX,[ESP + 0x34]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x34]
ADD EAX,EBP
PUSH EAX
PUSH dword ptr [ESP + 0x94]
CALL 0x000c5590
ADD ESP,0xc
LEA EAX,[EBX + 0xffee9683]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x6ffffff6
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x9c]
CALL 0x00110ae0
ADD ESP,0x24
PUSH 0x34
MOV ESI,EAX
CALL 0x00246670
MOV EDI,dword ptr [ESP + 0x20]
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x24],EDI
MOV EDI,dword ptr [ESP + 0x44]
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x8],0x0
OR EDX,0xa
MOV dword ptr [EAX + 0x20],0x0
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[EBX + 0xffff3548]
MOV dword ptr [EAX + 0x28],0x0
ADD EDX,0x8
MOV dword ptr [EAX + 0xc],EDI
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESP + 0x40]
ADD ESP,0x10
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x2c],EDX
LEA EDX,[EBX + 0xffee968d]
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x30],EDX
TEST ESI,ESI
JNZ 0x001129e8
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x00112ccc
MOV EAX,dword ptr [EAX + 0x1b30]
JMP 0x0011272e
SUB ESP,0x8
PUSH EAX
PUSH ESI
CALL 0x00160da0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x4]
TEST ECX,ECX
JZ 0x001129a2
MOV EAX,dword ptr [ESI + 0x40]
TEST EAX,EAX
JNZ 0x00112cb1
MOVZX EAX,byte ptr [ESI + 0x90]
TEST AL,0x4
JNZ 0x00112cb1
TEST AL,0x8
JNZ 0x00112cb1
MOV dword ptr [ESI + 0x3c],ECX
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x00112d14
MOV EAX,dword ptr [EAX + 0x4]
SUB ESP,0x4
MOV EDX,dword ptr [EAX + 0x5c]
TEST EDX,EDX
LEA EAX,[EDX + 0x7]
CMOVNS EAX,EDX
SAR EAX,0x3
CDQ
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x0015cc30
ADD ESP,0x10
MOV EBX,dword ptr [ESP + 0x8]
TEST EBX,EBX
JNZ 0x0011282c
JMP 0x00112871
SUB ESP,0x8
PUSH EAX
PUSH ESI
CALL 0x00160da0
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x4]
TEST EDI,EDI
JZ 0x00112a22
MOV EDX,dword ptr [ESI + 0x40]
TEST EDX,EDX
JNZ 0x00112cb1
MOVZX EAX,byte ptr [ESI + 0x90]
TEST AL,0x4
JNZ 0x00112cb1
TEST AL,0x8
JNZ 0x00112cb1
MOV dword ptr [ESI + 0x3c],EDI
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x00112d14
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX],0x20
JZ 0x00112bf6
MOV EDI,dword ptr [ESP + 0x8]
TEST EDI,EDI
JZ 0x00112946
MOV dword ptr [ESP + 0x48],0x6ffffef5
MOV EAX,dword ptr [EDI + 0x30]
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x40],ESI
MOV dword ptr [ESP + 0x44],0x0
CMP EAX,dword ptr [EDI + 0x34]
JZ 0x00112c78
MOV dword ptr [EAX],ESI
MOV EDX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [EDI + 0x30],EAX
JMP 0x00112946
SUB ESP,0x4
LEA EAX,[EBX + 0xffee9675]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x12
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x9c]
CALL 0x00110ae0
ADD ESP,0x30
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00112533
SUB ESP,0xc
PUSH 0x38
CALL 0x00246670
MOV EDX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x80]
MOV dword ptr [EAX + 0x4],0x0
SHL EDX,0x2
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],EDX
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x20],0x0
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x24],0x4
OR EDX,0xa
MOV dword ptr [EAX + 0x28],0x0
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[EBX + 0xffff368c]
MOV dword ptr [EAX + 0x10],0x0
ADD EDX,0x8
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x2c],0x0
MOV dword ptr [EAX + 0x30],0x0
MOV dword ptr [EAX + 0x34],0x0
MOV dword ptr [EDI + 0x180],EAX
POP EDI
POP EDX
PUSH EAX
PUSH ESI
CALL 0x00160da0
MOV ECX,dword ptr [ESI + 0x40]
ADD ESP,0x10
TEST ECX,ECX
JNZ 0x00112cb1
MOVZX EAX,byte ptr [ESI + 0x90]
TEST AL,0x4
JNZ 0x00112cb1
TEST AL,0x8
JNZ 0x00112cb1
MOV EAX,dword ptr [ESP + 0x4]
SUB ESP,0x4
MOV dword ptr [ESI + 0x24],0x4
MOV dword ptr [ESI + 0x28],0x0
MOV dword ptr [ESI + 0x3c],EAX
PUSH 0x0
PUSH 0x4
PUSH ESI
CALL 0x0015cc30
MOV EAX,dword ptr [ESP + 0x80]
ADD ESP,0x10
OR byte ptr [ESI + 0x90],0x10
MOV byte ptr [EAX + 0x1ca],0x1
JMP 0x00112533
MOV dword ptr [ESP + 0x10],0x4
MOV dword ptr [ESP + 0x14],0x10
JMP 0x00112330
SUB ESP,0x4
LEA EAX,[ESP + 0x44]
PUSH EAX
PUSH EDX
PUSH EDI
CALL 0x000a8410
MOV ESI,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x30]
MOV EDX,dword ptr [ESI + 0x34]
JMP 0x001124a8
SUB ESP,0x4
PUSH 0x0
PUSH 0x4
PUSH ESI
CALL 0x0015cc30
ADD ESP,0x10
JMP 0x00112a3f
SUB ESP,0x4
LEA EAX,[ESP + 0x44]
PUSH EAX
PUSH EDX
PUSH EDI
CALL 0x000a8410
ADD ESP,0x10
JMP 0x001124e9
SUB ESP,0x4
LEA EDX,[ESP + 0x44]
PUSH EDX
PUSH EAX
MOV EAX,dword ptr [ESP + 0x14]
ADD EAX,0x2c
PUSH EAX
CALL 0x000a8410
ADD ESP,0x10
JMP 0x00112871
SUB ESP,0x4
LEA EAX,[ESP + 0x44]
PUSH EAX
PUSH EDX
PUSH EDI
CALL 0x000a8410
MOV ECX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EAX,dword ptr [ECX + 0x30]
MOV EDX,dword ptr [ECX + 0x34]
JMP 0x00112698
SUB ESP,0x4
LEA EDX,[ESP + 0x44]
PUSH EDX
PUSH EAX
PUSH EDI
CALL 0x000a8410
ADD ESP,0x10
JMP 0x001126dd
SUB ESP,0x4
LEA EDX,[ESP + 0x44]
PUSH EDX
PUSH EAX
MOV EAX,dword ptr [ESP + 0x14]
ADD EAX,0x2c
PUSH EAX
CALL 0x000a8410
ADD ESP,0x10
JMP 0x00112946
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea474]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0xda3
PUSH EAX
CALL 0x000da200
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea5e4]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0xd07
PUSH EAX
CALL 0x000da200
LEA EAX,[EBX + 0xffeea868]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
LEA EAX,[EBX + 0xffeea4a0]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0xd5e
PUSH EAX
CALL 0x000da200
LEA EAX,[EBX + 0xffeea488]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xffee933e]
PUSH 0x1232
PUSH EAX
CALL 0x000da200
LEA EAX,[EBX + 0xffeea818]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x69
PUSH EAX
CALL 0x000da200
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00112200(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0x11220e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n  iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_004144e8 + 8) == 0;\n  if (bVar19) goto LAB_00112ccc;\n  pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2035;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2043;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_00246670(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00407550;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00112200(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0x11220e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n  iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_004144e8 + 8) == 0;\n  if (bVar19) goto LAB_00112ccc;\n  pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2035;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2043;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_00246670(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00407550;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00112200(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0x11220e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n  iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_004144e8 + 8) == 0;\n  if (bVar19) goto LAB_00112ccc;\n  pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2035;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2043;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_00246670(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00407550;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "int extraout_ECX_01;" primitive_type identifier ;) (declaration "int extraout_ECX_02;" primitive_type identifier ;) (declaration "int extraout_ECX_03;" primitive_type identifier ;) (declaration "int extraout_ECX_04;" primitive_type identifier ;) (declaration "int extraout_ECX_05;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x11220e;" (assignment_expression "uStack_14 = 0x11220e" identifier = number_literal) ;) (expression_statement "piVar4 = *(int **)(param_1 + 0x130);" (assignment_expression "piVar4 = *(int **)(param_1 + 0x130)" identifier = (pointer_expression "*(int **)(param_1 + 0x130)" * (cast_expression "(int **)(param_1 + 0x130)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x130)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" if (parenthesized_expression "(piVar4 != *(int **)(param_1 + 0x134))" ( (binary_expression "piVar4 != *(int **)(param_1 + 0x134)" identifier != (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" { (do_statement "do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);" do (compound_statement "{\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    }" { (while_statement "while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }" while (parenthesized_expression "(iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0)" ( (comma_expression "iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) , (binary_expression "(*(byte *)(iVar3 + 0x90) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 2)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 2" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal)) )) (compound_statement "{\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }" { (if_statement "if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" { comment (expression_statement "FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");" (call_expression "FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index")" identifier (argument_list "("../../gold/output.h",0xda3,"set_dynsym_index")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_dynsym_index"" " string_content ") ))) ;) })) (expression_statement "*(int *)(iVar3 + 0x68) = iVar13;" (assignment_expression "*(int *)(iVar3 + 0x68) = iVar13" (pointer_expression "*(int *)(iVar3 + 0x68)" * (cast_expression "(int *)(iVar3 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;" if (parenthesized_expression "(*(int **)(param_1 + 0x134) == piVar4)" ( (binary_expression "*(int **)(param_1 + 0x134) == piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0011226e;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + 0x68)" * (cast_expression "(undefined4 *)(iVar3 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x134) != piVar4)" ( (binary_expression "*(int **)(param_1 + 0x134) != piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) != identifier) )) ;) })) (labeled_statement "LAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;" statement_identifier : (expression_statement "puVar5 = (undefined4 *)*param_2;" (assignment_expression "puVar5 = (undefined4 *)*param_2" identifier = (cast_expression "(undefined4 *)*param_2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) (if_statement "if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" if (parenthesized_expression "(puVar5 != (undefined4 *)param_2[1])" ( (binary_expression "puVar5 != (undefined4 *)param_2[1]" identifier != (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" { (do_statement "do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);" do (compound_statement "{\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    }" { (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);" (assignment_expression "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" identifier = (call_expression "(**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" (parenthesized_expression "(**(code **)(*piVar4 + 0xd0))" ( (pointer_expression "**(code **)(*piVar4 + 0xd0)" * (pointer_expression "*(code **)(*piVar4 + 0xd0)" * (cast_expression "(code **)(*piVar4 + 0xd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xd0)" ( (binary_expression "*piVar4 + 0xd0" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4,iVar13)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "((undefined4 *)param_2[1] != puVar5)" ( (binary_expression "(undefined4 *)param_2[1] != puVar5" (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);" (assignment_expression "iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" identifier = (call_expression "FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" identifier (argument_list "(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) , identifier , (binary_expression "param_1 + 0xa0" identifier + number_literal) , identifier )))) ;) (expression_statement "*param_5 = iVar13;" (assignment_expression "*param_5 = iVar13" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "*param_6 = local_40;" (assignment_expression "*param_6 = local_40" (pointer_expression "*param_6" * identifier) = identifier) ;) (if_statement "if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00112d14;" goto statement_identifier ;)) (expression_statement "iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" if (parenthesized_expression "(iVar1 == 0x20)" ( (binary_expression "iVar1 == 0x20" identifier == number_literal) )) (compound_statement "{\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }" { (expression_statement "local_5c = 4;" (assignment_expression "local_5c = 4" identifier = number_literal) ;) (expression_statement "local_58 = (int *)0x10;" (assignment_expression "local_58 = (int *)0x10" identifier = (cast_expression "(int *)0x10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" else (compound_statement "{\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" { (if_statement "if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" if (parenthesized_expression "(iVar1 != 0x40)" ( (binary_expression "iVar1 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" { comment (expression_statement "FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);" (call_expression "FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" identifier (argument_list "("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_dynamic_symtab"" " string_content ") , identifier ))) ;) })) (expression_statement "local_5c = 8;" (assignment_expression "local_5c = 8" identifier = number_literal) ;) (expression_statement "local_58 = (int *)0x18;" (assignment_expression "local_58 = (int *)0x18" identifier = (cast_expression "(int *)0x18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);" (assignment_expression "piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynsym"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" { (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x30)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = (int)local_58 * iVar3;" (assignment_expression "puVar5[3] = (int)local_58 * iVar3" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (binary_expression "(int)local_58 * iVar3" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*puVar5 = &PTR_FUN_0040f01c;" (assignment_expression "*puVar5 = &PTR_FUN_0040f01c" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_0040f01c" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = "** dynsym";" (assignment_expression "puVar5[0xb] = "** dynsym"" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = (string_literal ""** dynsym"" " string_content ")) ;) (expression_statement "FUN_00160da0(piVar4,puVar5);" (call_expression "FUN_00160da0(piVar4,puVar5)" identifier (argument_list "(piVar4,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" if (parenthesized_expression "(((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))))" ( (binary_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" (parenthesized_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0))" ( (binary_expression "(piVar4[0x11] != 0) || (piVar4[0x12] != 0)" (parenthesized_expression "(piVar4[0x11] != 0)" ( (binary_expression "piVar4[0x11] != 0" (subscript_expression "piVar4[0x11]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(piVar4[0x12] != 0)" ( (binary_expression "piVar4[0x12] != 0" (subscript_expression "piVar4[0x12]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" ( (parenthesized_expression "(local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))" ( (binary_expression "local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)" (binary_expression "local_40 + iVar13 != piVar4[0x13]" (binary_expression "local_40 + iVar13" identifier + identifier) != (subscript_expression "piVar4[0x13]" identifier [ number_literal ])) && (parenthesized_expression "(piVar4[0x13] != 0)" ( (binary_expression "piVar4[0x13] != 0" (subscript_expression "piVar4[0x13]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" { comment (expression_statement "FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);" (call_expression "FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c)" identifier (argument_list "("../../gold/output.h",0xd5e,"set_info",local_5c)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info"" " string_content ") , identifier ))) ;) })) (expression_statement "piVar4[0x13] = local_40 + iVar13;" (assignment_expression "piVar4[0x13] = local_40 + iVar13" (subscript_expression "piVar4[0x13]" identifier [ number_literal ]) = (binary_expression "local_40 + iVar13" identifier + identifier)) ;) (expression_statement "FUN_0015cc30(piVar4,local_58,0);" (call_expression "FUN_0015cc30(piVar4,local_58,0)" identifier (argument_list "(piVar4,local_58,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "piVar4[9] = local_5c;" (assignment_expression "piVar4[9] = local_5c" (subscript_expression "piVar4[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[10] = 0;" (assignment_expression "piVar4[10] = 0" (subscript_expression "piVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(param_1 + 0x17c) = piVar4;" (assignment_expression "*(int **)(param_1 + 0x17c) = piVar4" (pointer_expression "*(int **)(param_1 + 0x17c)" * (cast_expression "(int **)(param_1 + 0x17c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x17c)" ( (binary_expression "param_1 + 0x17c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x18c)" identifier = (pointer_expression "*(int *)(param_1 + 0x18c)" * (cast_expression "(int *)(param_1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" { (expression_statement "piVar8 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar8 = *(int **)(iVar1 + 0x30)" identifier = (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 6;" (assignment_expression "local_24 = 6" identifier = number_literal) ;) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" identifier = (pointer_expression "*(int **)(iVar1 + 0x34)" * (cast_expression "(int **)(iVar1 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" if (parenthesized_expression "(piVar8 == piVar11)" ( (binary_expression "piVar8 == piVar11" identifier == identifier) )) (compound_statement "{\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }" { (expression_statement "local_2c = piVar4;" (assignment_expression "local_2c = piVar4" identifier = identifier) ;) (expression_statement "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "piVar6 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar6 = *(int **)(iVar1 + 0x30)" identifier = (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" identifier = (pointer_expression "*(int **)(iVar1 + 0x34)" * (cast_expression "(int **)(iVar1 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" else (compound_statement "{\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" { (expression_statement "*piVar8 = (int)piVar4;" (assignment_expression "*piVar8 = (int)piVar4" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6 = piVar8 + 4;" (assignment_expression "piVar6 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[2] = 6;" (assignment_expression "piVar8[2] = 6" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6" (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 0xb;" (assignment_expression "local_24 = 0xb" identifier = number_literal) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c = local_58;" (assignment_expression "local_2c = local_58" identifier = identifier) ;) (if_statement "if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" if (parenthesized_expression "(piVar11 == piVar6)" ( (binary_expression "piVar11 == piVar6" identifier == identifier) )) (compound_statement "{\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }" { (expression_statement "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" else (compound_statement "{\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" { (expression_statement "*piVar6 = (int)local_58;" (assignment_expression "*piVar6 = (int)local_58" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6[1] = local_28;" (assignment_expression "piVar6[1] = local_28" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[2] = 0xb;" (assignment_expression "piVar6[2] = 0xb" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[3] = -1;" (assignment_expression "piVar6[3] = -1" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6 + 4;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6 + 4" (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "piVar6 + 4" identifier + number_literal)) ;) }))) })) (expression_statement "puVar5 = *(undefined4 **)(param_1 + 0x124);" (assignment_expression "puVar5 = *(undefined4 **)(param_1 + 0x124)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x124)" * (cast_expression "(undefined4 **)(param_1 + 0x124)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" if (parenthesized_expression "(puVar5 != *(undefined4 **)(param_1 + 0x128))" ( (binary_expression "puVar5 != *(undefined4 **)(param_1 + 0x128)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 0x128)" * (cast_expression "(undefined4 **)(param_1 + 0x128)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);" do (compound_statement "{\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    }" { (expression_statement "uVar2 = *puVar5;" (assignment_expression "uVar2 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = FUN_0015f9c0(uVar2);" (assignment_expression "iVar7 = FUN_0015f9c0(uVar2)" identifier = (call_expression "FUN_0015f9c0(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "uVar14 = uVar14 + iVar7;" (assignment_expression "uVar14 = uVar14 + iVar7" identifier = (binary_expression "uVar14 + iVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_1 + 0x128) != puVar5)" ( (binary_expression "*(undefined4 **)(param_1 + 0x128) != puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x128)" * (cast_expression "(undefined4 **)(param_1 + 0x128)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) (if_statement "if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" if (parenthesized_expression "((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0))" ( (binary_expression "(0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" (parenthesized_expression "(0xfeff < uVar14)" ( (binary_expression "0xfeff < uVar14" number_literal < identifier) )) && (parenthesized_expression "(iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0" (assignment_expression "iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" identifier = (call_expression "FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynsym_shndx"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" { (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x38);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x38)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x38)" identifier (argument_list "(0x38)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = iVar3 << 2;" (assignment_expression "puVar5[3] = iVar3 << 2" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (binary_expression "iVar3 << 2" identifier << number_literal)) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = 4;" (assignment_expression "puVar5[9] = 4" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = &PTR_FUN_00407694;" (assignment_expression "*puVar5 = &PTR_FUN_00407694" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00407694" & identifier)) ;) (expression_statement "puVar5[0xb] = 0;" (assignment_expression "puVar5[0xb] = 0" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = 0;" (assignment_expression "puVar5[0xc] = 0" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xd] = 0;" (assignment_expression "puVar5[0xd] = 0" (subscript_expression "puVar5[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(param_1 + 0x180) = puVar5;" (assignment_expression "*(undefined4 **)(param_1 + 0x180) = puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x180)" * (cast_expression "(undefined4 **)(param_1 + 0x180)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x180)" ( (binary_expression "param_1 + 0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00160da0(iVar7,puVar5);" (call_expression "FUN_00160da0(iVar7,puVar5)" identifier (argument_list "(iVar7,puVar5)" ( identifier , identifier ))) ;) (if_statement "if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;" if (parenthesized_expression "((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))" ( (binary_expression "(*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x40) != 0" (pointer_expression "*(int *)(iVar7 + 0x40)" * (cast_expression "(int *)(iVar7 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x40)" ( (binary_expression "iVar7 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" ( (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))" ( (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)" (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar7 + 0x90) & 4" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar7 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar7 + 0x90) & 8" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00112cb1;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar7 + 0x24) = 4;" (assignment_expression "*(undefined4 *)(iVar7 + 0x24) = 4" (pointer_expression "*(undefined4 *)(iVar7 + 0x24)" * (cast_expression "(undefined4 *)(iVar7 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x24)" ( (binary_expression "iVar7 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x28) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x28)" * (cast_expression "(undefined4 *)(iVar7 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x3c) = piVar4;" (assignment_expression "*(int **)(iVar7 + 0x3c) = piVar4" (pointer_expression "*(int **)(iVar7 + 0x3c)" * (cast_expression "(int **)(iVar7 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3c)" ( (binary_expression "iVar7 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0015cc30(iVar7,4,0);" (call_expression "FUN_0015cc30(iVar7,4,0)" identifier (argument_list "(iVar7,4,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;" (assignment_expression "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + 0x1ca) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x1ca) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x1ca)" * (cast_expression "(undefined1 *)(param_1 + 0x1ca)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1ca)" ( (binary_expression "param_1 + 0x1ca" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);" (assignment_expression "piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynstr"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "*param_4 = piVar8;" (assignment_expression "*param_4 = piVar8" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "iVar3 = extraout_ECX_00;" (assignment_expression "iVar3 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" { (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x30)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar5[0xb] = param_1 + 0xa0;" (assignment_expression "puVar5[0xb] = param_1 + 0xa0" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = (binary_expression "param_1 + 0xa0" identifier + number_literal)) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = 1;" (assignment_expression "puVar5[9] = 1" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = &PTR_FUN_004075bc;" (assignment_expression "*puVar5 = &PTR_FUN_004075bc" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_004075bc" & identifier)) ;) (expression_statement "FUN_00160da0(piVar8,puVar5);" (call_expression "FUN_00160da0(piVar8,puVar5)" identifier (argument_list "(piVar8,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }" { (if_statement "if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;" if (parenthesized_expression "(((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0))" ( (binary_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)" (parenthesized_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0))" ( (binary_expression "(piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)" (parenthesized_expression "(piVar4[0x10] != 0)" ( (binary_expression "piVar4[0x10] != 0" (subscript_expression "piVar4[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(piVar4 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 4)" ( (binary_expression "*(byte *)(piVar4 + 0x24) & 4" (pointer_expression "*(byte *)(piVar4 + 0x24)" * (cast_expression "(byte *)(piVar4 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x24)" ( (binary_expression "piVar4 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(piVar4 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 8)" ( (binary_expression "*(byte *)(piVar4 + 0x24) & 8" (pointer_expression "*(byte *)(piVar4 + 0x24)" * (cast_expression "(byte *)(piVar4 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x24)" ( (binary_expression "piVar4 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00112cb1;" goto statement_identifier ;)) (expression_statement "piVar4[0xf] = (int)piVar8;" (assignment_expression "piVar4[0xf] = (int)piVar8" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 0x184);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x184)" identifier = (pointer_expression "*(int *)(param_1 + 0x184)" * (cast_expression "(int *)(param_1 + 0x184)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x184)" ( (binary_expression "param_1 + 0x184" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" { (if_statement "if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;" if (parenthesized_expression "(((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0))" ( (binary_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0))" ( (binary_expression "(*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" * (cast_expression "(int *)(iVar3 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 4" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 8" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00112cb1;" goto statement_identifier ;)) (expression_statement "*(int **)(iVar3 + 0x3c) = piVar8;" (assignment_expression "*(int **)(iVar3 + 0x3c) = piVar8" (pointer_expression "*(int **)(iVar3 + 0x3c)" * (cast_expression "(int **)(iVar3 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x3c)" ( (binary_expression "iVar3 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" { (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 5;" (assignment_expression "local_24 = 5" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" if (parenthesized_expression "(puVar5 == puVar12)" ( (binary_expression "puVar5 == puVar12" identifier == identifier) )) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }" { (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar12,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar9 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" else (compound_statement "{\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" { (expression_statement "*puVar5 = piVar8;" (assignment_expression "*puVar5 = piVar8" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar5 + 4;" (assignment_expression "puVar9 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 5;" (assignment_expression "puVar5[2] = 5" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 10;" (assignment_expression "local_24 = 10" identifier = number_literal) ;) (expression_statement "local_20 = 0xfffffffe;" (assignment_expression "local_20 = 0xfffffffe" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" if (parenthesized_expression "(puVar9 == puVar12)" ( (binary_expression "puVar9 == puVar12" identifier == identifier) )) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }" { (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar9,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "iVar3 = extraout_ECX_04;" (assignment_expression "iVar3 = extraout_ECX_04" identifier = identifier) ;) }) (else_clause "else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" else (compound_statement "{\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" { (expression_statement "*puVar9 = piVar8;" (assignment_expression "*puVar9 = piVar8" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[2] = 10;" (assignment_expression "puVar9[2] = 10" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0xfffffffe;" (assignment_expression "puVar9[3] = 0xfffffffe" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) }))) })) })) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar19 = *(int *)(DAT_004144e8 + 8) == 0;" (assignment_expression "bVar19 = *(int *)(DAT_004144e8 + 8) == 0" identifier = (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (bVar19) goto LAB_00112ccc;" if (parenthesized_expression "(bVar19)" ( identifier )) (goto_statement "goto LAB_00112ccc;" goto statement_identifier ;)) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" identifier = (pointer_expression "*(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" * (cast_expression "(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1b30)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_002e2035;" (assignment_expression "pbVar16 = &DAT_002e2035" identifier = (pointer_expression "&DAT_002e2035" & identifier)) ;) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);" do (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar15 < *pbVar16;" (assignment_expression "bVar17 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar19 = *pbVar15 == *pbVar16;" (assignment_expression "bVar19 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar17 = (!bVar17 && !bVar19) == bVar17;" (assignment_expression "bVar17 = (!bVar17 && !bVar19) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar19) == bVar17" (parenthesized_expression "(!bVar17 && !bVar19)" ( (binary_expression "!bVar17 && !bVar19" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }" { (labeled_statement "LAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);" statement_identifier : (expression_statement "FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);" (call_expression "FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38)" identifier (argument_list "(param_7,local_40 + iVar13,&local_3c,&local_38)" ( identifier , (binary_expression "local_40 + iVar13" identifier + identifier) , (pointer_expression "&local_3c" & identifier) , (pointer_expression "&local_38" & identifier) ))) ;)) (expression_statement "param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".gnu.hash"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x34)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = local_38;" (assignment_expression "puVar5[3] = local_38" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = &PTR_FUN_00407550;" (assignment_expression "*puVar5 = &PTR_FUN_00407550" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00407550" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = local_3c;" (assignment_expression "puVar5[0xb] = local_3c" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = (string_literal ""** hash"" " string_content ")) ;) (expression_statement "iVar3 = extraout_ECX_01;" (assignment_expression "iVar3 = extraout_ECX_01" identifier = identifier) ;) (if_statement "if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" { (expression_statement "FUN_00160da0(param_2,puVar5);" (call_expression "FUN_00160da0(param_2,puVar5)" identifier (argument_list "(param_2,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }" { (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;" if (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0))" ( (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" ( (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" ( (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00112cb1;" goto statement_identifier ;)) (expression_statement "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00112d14;" goto statement_identifier ;)) (expression_statement "iVar3 = extraout_ECX_02;" (assignment_expression "iVar3 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" if (parenthesized_expression "(**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20)" ( (binary_expression "**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20" (pointer_expression "**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) + number_literal) ))))) == number_literal) )) (compound_statement "{\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" { (expression_statement "FUN_0015cc30(param_2,4,0);" (call_expression "FUN_0015cc30(param_2,4,0)" identifier (argument_list "(param_2,4,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "iVar3 = extraout_ECX_03;" (assignment_expression "iVar3 = extraout_ECX_03" identifier = identifier) ;) })) (if_statement "if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" { (expression_statement "local_24 = 0x6ffffef5;" (assignment_expression "local_24 = 0x6ffffef5" identifier = number_literal) ;) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" identifier = identifier) ;) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" if (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" ( (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" identifier == (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }" { (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "iVar3 = extraout_ECX_05;" (assignment_expression "iVar3 = extraout_ECX_05" identifier = identifier) ;) }) (else_clause "else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" else (compound_statement "{\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" { (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0x6ffffef5;" (assignment_expression "puVar5[2] = 0x6ffffef5" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }))) })) })) (expression_statement "bVar17 = *(int *)(DAT_004144e8 + 8) == 0;" (assignment_expression "bVar17 = *(int *)(DAT_004144e8 + 8) == 0" identifier = (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (bVar17) {\nLAB_00112ccc:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\nLAB_00112ccc:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" { (labeled_statement "LAB_00112ccc:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);" statement_identifier : comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar3)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" identifier = (pointer_expression "*(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" * (cast_expression "(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1b30)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }" else (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_002e2048;" (assignment_expression "pbVar16 = &DAT_002e2048" identifier = (pointer_expression "&DAT_002e2048" & identifier)) ;) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" do (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar15 < *pbVar16;" (assignment_expression "bVar18 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "bVar17 = (!bVar18 && !bVar17) == bVar18;" (assignment_expression "bVar17 = (!bVar18 && !bVar17) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar17) == bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" ( (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar17) goto LAB_00112880;" if (parenthesized_expression "(bVar17)" ( identifier )) (goto_statement "goto LAB_00112880;" goto statement_identifier ;)) }))) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_002e2043;" (assignment_expression "pbVar16 = &DAT_002e2043" identifier = (pointer_expression "&DAT_002e2043" & identifier)) ;) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);" do (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar15 < *pbVar16;" (assignment_expression "bVar19 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar17 = (!bVar19 && !bVar17) == bVar19;" (assignment_expression "bVar17 = (!bVar19 && !bVar17) == bVar19" identifier = (binary_expression "(!bVar19 && !bVar17) == bVar19" (parenthesized_expression "(!bVar19 && !bVar17)" ( (binary_expression "!bVar19 && !bVar17" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = &DAT_002e2048;" (assignment_expression "pbVar15 = &DAT_002e2048" identifier = (pointer_expression "&DAT_002e2048" & identifier)) ;) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" do (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar15;" (assignment_expression "bVar18 = *pbVar10 < *pbVar15" identifier = (binary_expression "*pbVar10 < *pbVar15" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar17 = *pbVar10 == *pbVar15;" (assignment_expression "bVar17 = *pbVar10 == *pbVar15" identifier = (binary_expression "*pbVar10 == *pbVar15" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }" if (parenthesized_expression "((!bVar18 && !bVar17) != bVar18)" ( (binary_expression "(!bVar18 && !bVar17) != bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" ( (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) != identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (expression_statement "FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);" (call_expression "FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30)" identifier (argument_list "(param_7,iVar13 + local_40,&local_34,&local_30)" ( identifier , (binary_expression "iVar13 + local_40" identifier + identifier) , (pointer_expression "&local_34" & identifier) , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".hash",5,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".hash"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x34)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = local_30;" (assignment_expression "puVar5[3] = local_30" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = &PTR_FUN_00407550;" (assignment_expression "*puVar5 = &PTR_FUN_00407550" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00407550" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = local_34;" (assignment_expression "puVar5[0xb] = local_34" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = (string_literal ""** hash"" " string_content ")) ;) (if_statement "if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" { (expression_statement "FUN_00160da0(param_2,puVar5);" (call_expression "FUN_00160da0(param_2,puVar5)" identifier (argument_list "(param_2,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" { (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }" if (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0))" ( (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" ( (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" ( (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_00112cb1:\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }" { (labeled_statement "LAB_00112cb1:\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");" statement_identifier : comment (expression_statement "FUN_000da200("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_000da200("../../gold/output.h",0xd07,"set_link_section")" identifier (argument_list "("../../gold/output.h",0xd07,"set_link_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_link_section"" " string_content ") ))) ;)) })) (expression_statement "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00112d14:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }" { (labeled_statement "LAB_00112d14:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);" statement_identifier : comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);" (call_expression "FUN_000da200("../../gold/parameters.h",0x69,"target",param_2)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",param_2)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;)) })) (expression_statement "iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);" (assignment_expression "iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" * (cast_expression "(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" ( (binary_expression "*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c" (pointer_expression "*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar3 = iVar13 + 7;" (assignment_expression "iVar3 = iVar13 + 7" identifier = (binary_expression "iVar13 + 7" identifier + number_literal)) ;) (if_statement "if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }" if (parenthesized_expression "(-1 < iVar13)" ( (binary_expression "-1 < iVar13" number_literal < identifier) )) (compound_statement "{\n      iVar3 = iVar13;\n    }" { (expression_statement "iVar3 = iVar13;" (assignment_expression "iVar3 = iVar13" identifier = identifier) ;) })) (expression_statement "FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);" (call_expression "FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f)" identifier (argument_list "(param_2,iVar3 >> 3,iVar3 >> 0x1f)" ( identifier , (binary_expression "iVar3 >> 3" identifier >> number_literal) , (binary_expression "iVar3 >> 0x1f" identifier >> number_literal) ))) ;) })) (if_statement "if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" { (expression_statement "local_24 = 4;" (assignment_expression "local_24 = 4" identifier = number_literal) ;) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" if (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" ( (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" identifier == (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }" { (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" identifier = identifier) ;) (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" else (compound_statement "{\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" { (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 4;" (assignment_expression "puVar5[2] = 4" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void create_dynamic_symtab(Layout * this, Input_objects *\n   input_objects, Symbol_table * symtab, Output_section * * pdynstr, uint * plocal_dynamic_count,\n   uint * pforced_local_dynamic_count, vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *\n   pdynamic_symbols, Versions * pversions) */\n\nvoid __thiscall\ngold::Layout::create_dynamic_symtab\n          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,Output_section **pdynstr,\n          uint *plocal_dynamic_count,uint *pforced_local_dynamic_count,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *pdynamic_symbols,\n          Versions *pversions)\n\n{\n  uint forced_local_count;\n  uchar *phash;\n  uint hashlen;\n  uchar *phash_1;\n  uint hashlen_1;\n  \n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Layout::create_dynamic_symtab\n          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,Output_section **pdynstr,\n          uint *plocal_dynamic_count,uint *pforced_local_dynamic_count,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *pdynamic_symbols,\n          Versions *pversions)\n\n{\n  uint forced_local_count;\n  uchar *phash;\n  uint hashlen;\n  uchar *phash_1;\n  uint hashlen_1;\n  \n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "create_dynamic_symtab\n          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,Output_section **pdynstr,\n          uint *plocal_dynamic_count,uint *pforced_local_dynamic_count,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *pdynamic_symbols,\n          Versions *pversions)" identifier (parameter_list "(Layout *this,Input_objects *input_objects,Symbol_table *symtab,Output_section **pdynstr,\n          uint *plocal_dynamic_count,uint *pforced_local_dynamic_count,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *pdynamic_symbols,\n          Versions *pversions)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Input_objects *input_objects" type_identifier (pointer_declarator "*input_objects" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Output_section **pdynstr" type_identifier (pointer_declarator "**pdynstr" * (pointer_declarator "*pdynstr" * identifier))) , (parameter_declaration "uint *plocal_dynamic_count" type_identifier (pointer_declarator "*plocal_dynamic_count" * identifier)) , (parameter_declaration "uint *pforced_local_dynamic_count" type_identifier (pointer_declarator "*pforced_local_dynamic_count" * identifier)) , (parameter_declaration "vector<gold::Symbol*" type_identifier (ERROR "<gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Symbol*>_> *pdynamic_symbols" type_identifier (ERROR "::allocator<gold::Symbol*>_>" : : identifier < identifier : : identifier * > identifier >) (pointer_declarator "*pdynamic_symbols" * identifier)) , (parameter_declaration "Versions *pversions" type_identifier (pointer_declarator "*pversions" * identifier)) ))) (compound_statement "{\n  uint forced_local_count;\n  uchar *phash;\n  uint hashlen;\n  uchar *phash_1;\n  uint hashlen_1;\n  \n}" { (declaration "uint forced_local_count;" type_identifier identifier ;) (declaration "uchar *phash;" type_identifier (pointer_declarator "*phash" * identifier) ;) (declaration "uint hashlen;" type_identifier identifier ;) (declaration "uchar *phash_1;" type_identifier (pointer_declarator "*phash_1" * identifier) ;) (declaration "uint hashlen_1;" type_identifier identifier ;) })))
(translation_unit "void FUN_00112200(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0x11220e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n  iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_004144e8 + 8) == 0;\n  if (bVar19) goto LAB_00112ccc;\n  pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2035;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2043;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_00246670(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00407550;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00112200(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0x11220e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n  iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_004144e8 + 8) == 0;\n  if (bVar19) goto LAB_00112ccc;\n  pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2035;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2043;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_00246670(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00407550;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00112200(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0x11220e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n  iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_004144e8 + 8) == 0;\n  if (bVar19) goto LAB_00112ccc;\n  pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2035;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2043;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_00246670(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00407550;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "int extraout_ECX_01;" primitive_type identifier ;) (declaration "int extraout_ECX_02;" primitive_type identifier ;) (declaration "int extraout_ECX_03;" primitive_type identifier ;) (declaration "int extraout_ECX_04;" primitive_type identifier ;) (declaration "int extraout_ECX_05;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x11220e;" (assignment_expression "uStack_14 = 0x11220e" identifier = number_literal) ;) (expression_statement "piVar4 = *(int **)(param_1 + 0x130);" (assignment_expression "piVar4 = *(int **)(param_1 + 0x130)" identifier = (pointer_expression "*(int **)(param_1 + 0x130)" * (cast_expression "(int **)(param_1 + 0x130)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x130)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" if (parenthesized_expression "(piVar4 != *(int **)(param_1 + 0x134))" ( (binary_expression "piVar4 != *(int **)(param_1 + 0x134)" identifier != (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" { (do_statement "do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);" do (compound_statement "{\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    }" { (while_statement "while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }" while (parenthesized_expression "(iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0)" ( (comma_expression "iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) , (binary_expression "(*(byte *)(iVar3 + 0x90) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 2)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 2" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal)) )) (compound_statement "{\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }" { (if_statement "if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" { (expression_statement "FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");" (call_expression "FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index")" identifier (argument_list "("../../gold/output.h",0xda3,"set_dynsym_index")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_dynsym_index"" " string_content ") ))) ;) })) (expression_statement "*(int *)(iVar3 + 0x68) = iVar13;" (assignment_expression "*(int *)(iVar3 + 0x68) = iVar13" (pointer_expression "*(int *)(iVar3 + 0x68)" * (cast_expression "(int *)(iVar3 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;" if (parenthesized_expression "(*(int **)(param_1 + 0x134) == piVar4)" ( (binary_expression "*(int **)(param_1 + 0x134) == piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0011226e;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + 0x68)" * (cast_expression "(undefined4 *)(iVar3 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x134) != piVar4)" ( (binary_expression "*(int **)(param_1 + 0x134) != piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) != identifier) )) ;) })) (labeled_statement "LAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;" statement_identifier : (expression_statement "puVar5 = (undefined4 *)*param_2;" (assignment_expression "puVar5 = (undefined4 *)*param_2" identifier = (cast_expression "(undefined4 *)*param_2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) (if_statement "if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" if (parenthesized_expression "(puVar5 != (undefined4 *)param_2[1])" ( (binary_expression "puVar5 != (undefined4 *)param_2[1]" identifier != (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" { (do_statement "do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);" do (compound_statement "{\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    }" { (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);" (assignment_expression "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" identifier = (call_expression "(**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" (parenthesized_expression "(**(code **)(*piVar4 + 0xd0))" ( (pointer_expression "**(code **)(*piVar4 + 0xd0)" * (pointer_expression "*(code **)(*piVar4 + 0xd0)" * (cast_expression "(code **)(*piVar4 + 0xd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xd0)" ( (binary_expression "*piVar4 + 0xd0" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4,iVar13)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "((undefined4 *)param_2[1] != puVar5)" ( (binary_expression "(undefined4 *)param_2[1] != puVar5" (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);" (assignment_expression "iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" identifier = (call_expression "FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" identifier (argument_list "(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) , identifier , (binary_expression "param_1 + 0xa0" identifier + number_literal) , identifier )))) ;) (expression_statement "*param_5 = iVar13;" (assignment_expression "*param_5 = iVar13" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "*param_6 = local_40;" (assignment_expression "*param_6 = local_40" (pointer_expression "*param_6" * identifier) = identifier) ;) (if_statement "if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00112d14;" goto statement_identifier ;)) (expression_statement "iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" if (parenthesized_expression "(iVar1 == 0x20)" ( (binary_expression "iVar1 == 0x20" identifier == number_literal) )) (compound_statement "{\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }" { (expression_statement "local_5c = 4;" (assignment_expression "local_5c = 4" identifier = number_literal) ;) (expression_statement "local_58 = (int *)0x10;" (assignment_expression "local_58 = (int *)0x10" identifier = (cast_expression "(int *)0x10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" else (compound_statement "{\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" { (if_statement "if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" if (parenthesized_expression "(iVar1 != 0x40)" ( (binary_expression "iVar1 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" { (expression_statement "FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);" (call_expression "FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" identifier (argument_list "("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_dynamic_symtab"" " string_content ") , identifier ))) ;) })) (expression_statement "local_5c = 8;" (assignment_expression "local_5c = 8" identifier = number_literal) ;) (expression_statement "local_58 = (int *)0x18;" (assignment_expression "local_58 = (int *)0x18" identifier = (cast_expression "(int *)0x18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);" (assignment_expression "piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynsym"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" { (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x30)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = (int)local_58 * iVar3;" (assignment_expression "puVar5[3] = (int)local_58 * iVar3" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (binary_expression "(int)local_58 * iVar3" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*puVar5 = &PTR_FUN_0040f01c;" (assignment_expression "*puVar5 = &PTR_FUN_0040f01c" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_0040f01c" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = "** dynsym";" (assignment_expression "puVar5[0xb] = "** dynsym"" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = (string_literal ""** dynsym"" " string_content ")) ;) (expression_statement "FUN_00160da0(piVar4,puVar5);" (call_expression "FUN_00160da0(piVar4,puVar5)" identifier (argument_list "(piVar4,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" if (parenthesized_expression "(((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))))" ( (binary_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" (parenthesized_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0))" ( (binary_expression "(piVar4[0x11] != 0) || (piVar4[0x12] != 0)" (parenthesized_expression "(piVar4[0x11] != 0)" ( (binary_expression "piVar4[0x11] != 0" (subscript_expression "piVar4[0x11]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(piVar4[0x12] != 0)" ( (binary_expression "piVar4[0x12] != 0" (subscript_expression "piVar4[0x12]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" ( (parenthesized_expression "(local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))" ( (binary_expression "local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)" (binary_expression "local_40 + iVar13 != piVar4[0x13]" (binary_expression "local_40 + iVar13" identifier + identifier) != (subscript_expression "piVar4[0x13]" identifier [ number_literal ])) && (parenthesized_expression "(piVar4[0x13] != 0)" ( (binary_expression "piVar4[0x13] != 0" (subscript_expression "piVar4[0x13]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" { (expression_statement "FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);" (call_expression "FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c)" identifier (argument_list "("../../gold/output.h",0xd5e,"set_info",local_5c)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info"" " string_content ") , identifier ))) ;) })) (expression_statement "piVar4[0x13] = local_40 + iVar13;" (assignment_expression "piVar4[0x13] = local_40 + iVar13" (subscript_expression "piVar4[0x13]" identifier [ number_literal ]) = (binary_expression "local_40 + iVar13" identifier + identifier)) ;) (expression_statement "FUN_0015cc30(piVar4,local_58,0);" (call_expression "FUN_0015cc30(piVar4,local_58,0)" identifier (argument_list "(piVar4,local_58,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "piVar4[9] = local_5c;" (assignment_expression "piVar4[9] = local_5c" (subscript_expression "piVar4[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[10] = 0;" (assignment_expression "piVar4[10] = 0" (subscript_expression "piVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(param_1 + 0x17c) = piVar4;" (assignment_expression "*(int **)(param_1 + 0x17c) = piVar4" (pointer_expression "*(int **)(param_1 + 0x17c)" * (cast_expression "(int **)(param_1 + 0x17c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x17c)" ( (binary_expression "param_1 + 0x17c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x18c)" identifier = (pointer_expression "*(int *)(param_1 + 0x18c)" * (cast_expression "(int *)(param_1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" { (expression_statement "piVar8 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar8 = *(int **)(iVar1 + 0x30)" identifier = (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 6;" (assignment_expression "local_24 = 6" identifier = number_literal) ;) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" identifier = (pointer_expression "*(int **)(iVar1 + 0x34)" * (cast_expression "(int **)(iVar1 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" if (parenthesized_expression "(piVar8 == piVar11)" ( (binary_expression "piVar8 == piVar11" identifier == identifier) )) (compound_statement "{\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }" { (expression_statement "local_2c = piVar4;" (assignment_expression "local_2c = piVar4" identifier = identifier) ;) (expression_statement "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "piVar6 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar6 = *(int **)(iVar1 + 0x30)" identifier = (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" identifier = (pointer_expression "*(int **)(iVar1 + 0x34)" * (cast_expression "(int **)(iVar1 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" else (compound_statement "{\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" { (expression_statement "*piVar8 = (int)piVar4;" (assignment_expression "*piVar8 = (int)piVar4" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6 = piVar8 + 4;" (assignment_expression "piVar6 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[2] = 6;" (assignment_expression "piVar8[2] = 6" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6" (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 0xb;" (assignment_expression "local_24 = 0xb" identifier = number_literal) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c = local_58;" (assignment_expression "local_2c = local_58" identifier = identifier) ;) (if_statement "if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" if (parenthesized_expression "(piVar11 == piVar6)" ( (binary_expression "piVar11 == piVar6" identifier == identifier) )) (compound_statement "{\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }" { (expression_statement "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" else (compound_statement "{\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" { (expression_statement "*piVar6 = (int)local_58;" (assignment_expression "*piVar6 = (int)local_58" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6[1] = local_28;" (assignment_expression "piVar6[1] = local_28" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[2] = 0xb;" (assignment_expression "piVar6[2] = 0xb" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[3] = -1;" (assignment_expression "piVar6[3] = -1" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6 + 4;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6 + 4" (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "piVar6 + 4" identifier + number_literal)) ;) }))) })) (expression_statement "puVar5 = *(undefined4 **)(param_1 + 0x124);" (assignment_expression "puVar5 = *(undefined4 **)(param_1 + 0x124)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x124)" * (cast_expression "(undefined4 **)(param_1 + 0x124)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" if (parenthesized_expression "(puVar5 != *(undefined4 **)(param_1 + 0x128))" ( (binary_expression "puVar5 != *(undefined4 **)(param_1 + 0x128)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 0x128)" * (cast_expression "(undefined4 **)(param_1 + 0x128)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);" do (compound_statement "{\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    }" { (expression_statement "uVar2 = *puVar5;" (assignment_expression "uVar2 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = FUN_0015f9c0(uVar2);" (assignment_expression "iVar7 = FUN_0015f9c0(uVar2)" identifier = (call_expression "FUN_0015f9c0(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "uVar14 = uVar14 + iVar7;" (assignment_expression "uVar14 = uVar14 + iVar7" identifier = (binary_expression "uVar14 + iVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_1 + 0x128) != puVar5)" ( (binary_expression "*(undefined4 **)(param_1 + 0x128) != puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x128)" * (cast_expression "(undefined4 **)(param_1 + 0x128)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) (if_statement "if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" if (parenthesized_expression "((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0))" ( (binary_expression "(0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" (parenthesized_expression "(0xfeff < uVar14)" ( (binary_expression "0xfeff < uVar14" number_literal < identifier) )) && (parenthesized_expression "(iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0" (assignment_expression "iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" identifier = (call_expression "FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynsym_shndx"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" { (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x38);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x38)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x38)" identifier (argument_list "(0x38)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = iVar3 << 2;" (assignment_expression "puVar5[3] = iVar3 << 2" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (binary_expression "iVar3 << 2" identifier << number_literal)) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = 4;" (assignment_expression "puVar5[9] = 4" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = &PTR_FUN_00407694;" (assignment_expression "*puVar5 = &PTR_FUN_00407694" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00407694" & identifier)) ;) (expression_statement "puVar5[0xb] = 0;" (assignment_expression "puVar5[0xb] = 0" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = 0;" (assignment_expression "puVar5[0xc] = 0" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xd] = 0;" (assignment_expression "puVar5[0xd] = 0" (subscript_expression "puVar5[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(param_1 + 0x180) = puVar5;" (assignment_expression "*(undefined4 **)(param_1 + 0x180) = puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x180)" * (cast_expression "(undefined4 **)(param_1 + 0x180)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x180)" ( (binary_expression "param_1 + 0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00160da0(iVar7,puVar5);" (call_expression "FUN_00160da0(iVar7,puVar5)" identifier (argument_list "(iVar7,puVar5)" ( identifier , identifier ))) ;) (if_statement "if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;" if (parenthesized_expression "((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))" ( (binary_expression "(*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x40) != 0" (pointer_expression "*(int *)(iVar7 + 0x40)" * (cast_expression "(int *)(iVar7 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x40)" ( (binary_expression "iVar7 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" ( (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))" ( (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)" (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar7 + 0x90) & 4" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar7 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar7 + 0x90) & 8" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00112cb1;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar7 + 0x24) = 4;" (assignment_expression "*(undefined4 *)(iVar7 + 0x24) = 4" (pointer_expression "*(undefined4 *)(iVar7 + 0x24)" * (cast_expression "(undefined4 *)(iVar7 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x24)" ( (binary_expression "iVar7 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x28) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x28)" * (cast_expression "(undefined4 *)(iVar7 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x3c) = piVar4;" (assignment_expression "*(int **)(iVar7 + 0x3c) = piVar4" (pointer_expression "*(int **)(iVar7 + 0x3c)" * (cast_expression "(int **)(iVar7 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3c)" ( (binary_expression "iVar7 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0015cc30(iVar7,4,0);" (call_expression "FUN_0015cc30(iVar7,4,0)" identifier (argument_list "(iVar7,4,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;" (assignment_expression "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + 0x1ca) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x1ca) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x1ca)" * (cast_expression "(undefined1 *)(param_1 + 0x1ca)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1ca)" ( (binary_expression "param_1 + 0x1ca" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);" (assignment_expression "piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynstr"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "*param_4 = piVar8;" (assignment_expression "*param_4 = piVar8" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "iVar3 = extraout_ECX_00;" (assignment_expression "iVar3 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" { (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x30)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar5[0xb] = param_1 + 0xa0;" (assignment_expression "puVar5[0xb] = param_1 + 0xa0" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = (binary_expression "param_1 + 0xa0" identifier + number_literal)) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = 1;" (assignment_expression "puVar5[9] = 1" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = &PTR_FUN_004075bc;" (assignment_expression "*puVar5 = &PTR_FUN_004075bc" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_004075bc" & identifier)) ;) (expression_statement "FUN_00160da0(piVar8,puVar5);" (call_expression "FUN_00160da0(piVar8,puVar5)" identifier (argument_list "(piVar8,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }" { (if_statement "if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;" if (parenthesized_expression "(((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0))" ( (binary_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)" (parenthesized_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0))" ( (binary_expression "(piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)" (parenthesized_expression "(piVar4[0x10] != 0)" ( (binary_expression "piVar4[0x10] != 0" (subscript_expression "piVar4[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(piVar4 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 4)" ( (binary_expression "*(byte *)(piVar4 + 0x24) & 4" (pointer_expression "*(byte *)(piVar4 + 0x24)" * (cast_expression "(byte *)(piVar4 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x24)" ( (binary_expression "piVar4 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(piVar4 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 8)" ( (binary_expression "*(byte *)(piVar4 + 0x24) & 8" (pointer_expression "*(byte *)(piVar4 + 0x24)" * (cast_expression "(byte *)(piVar4 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x24)" ( (binary_expression "piVar4 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00112cb1;" goto statement_identifier ;)) (expression_statement "piVar4[0xf] = (int)piVar8;" (assignment_expression "piVar4[0xf] = (int)piVar8" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 0x184);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x184)" identifier = (pointer_expression "*(int *)(param_1 + 0x184)" * (cast_expression "(int *)(param_1 + 0x184)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x184)" ( (binary_expression "param_1 + 0x184" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" { (if_statement "if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;" if (parenthesized_expression "(((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0))" ( (binary_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0))" ( (binary_expression "(*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" * (cast_expression "(int *)(iVar3 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 4" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 8" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00112cb1;" goto statement_identifier ;)) (expression_statement "*(int **)(iVar3 + 0x3c) = piVar8;" (assignment_expression "*(int **)(iVar3 + 0x3c) = piVar8" (pointer_expression "*(int **)(iVar3 + 0x3c)" * (cast_expression "(int **)(iVar3 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x3c)" ( (binary_expression "iVar3 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" { (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 5;" (assignment_expression "local_24 = 5" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" if (parenthesized_expression "(puVar5 == puVar12)" ( (binary_expression "puVar5 == puVar12" identifier == identifier) )) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }" { (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar12,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar9 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" else (compound_statement "{\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" { (expression_statement "*puVar5 = piVar8;" (assignment_expression "*puVar5 = piVar8" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar5 + 4;" (assignment_expression "puVar9 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 5;" (assignment_expression "puVar5[2] = 5" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 10;" (assignment_expression "local_24 = 10" identifier = number_literal) ;) (expression_statement "local_20 = 0xfffffffe;" (assignment_expression "local_20 = 0xfffffffe" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" if (parenthesized_expression "(puVar9 == puVar12)" ( (binary_expression "puVar9 == puVar12" identifier == identifier) )) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }" { (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar9,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "iVar3 = extraout_ECX_04;" (assignment_expression "iVar3 = extraout_ECX_04" identifier = identifier) ;) }) (else_clause "else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" else (compound_statement "{\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" { (expression_statement "*puVar9 = piVar8;" (assignment_expression "*puVar9 = piVar8" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[2] = 10;" (assignment_expression "puVar9[2] = 10" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0xfffffffe;" (assignment_expression "puVar9[3] = 0xfffffffe" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) }))) })) })) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar19 = *(int *)(DAT_004144e8 + 8) == 0;" (assignment_expression "bVar19 = *(int *)(DAT_004144e8 + 8) == 0" identifier = (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (bVar19) goto LAB_00112ccc;" if (parenthesized_expression "(bVar19)" ( identifier )) (goto_statement "goto LAB_00112ccc;" goto statement_identifier ;)) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" identifier = (pointer_expression "*(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" * (cast_expression "(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1b30)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_002e2035;" (assignment_expression "pbVar16 = &DAT_002e2035" identifier = (pointer_expression "&DAT_002e2035" & identifier)) ;) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);" do (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar15 < *pbVar16;" (assignment_expression "bVar17 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar19 = *pbVar15 == *pbVar16;" (assignment_expression "bVar19 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar17 = (!bVar17 && !bVar19) == bVar17;" (assignment_expression "bVar17 = (!bVar17 && !bVar19) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar19) == bVar17" (parenthesized_expression "(!bVar17 && !bVar19)" ( (binary_expression "!bVar17 && !bVar19" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }" { (labeled_statement "LAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);" statement_identifier : (expression_statement "FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);" (call_expression "FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38)" identifier (argument_list "(param_7,local_40 + iVar13,&local_3c,&local_38)" ( identifier , (binary_expression "local_40 + iVar13" identifier + identifier) , (pointer_expression "&local_3c" & identifier) , (pointer_expression "&local_38" & identifier) ))) ;)) (expression_statement "param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".gnu.hash"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x34)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = local_38;" (assignment_expression "puVar5[3] = local_38" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = &PTR_FUN_00407550;" (assignment_expression "*puVar5 = &PTR_FUN_00407550" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00407550" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = local_3c;" (assignment_expression "puVar5[0xb] = local_3c" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = (string_literal ""** hash"" " string_content ")) ;) (expression_statement "iVar3 = extraout_ECX_01;" (assignment_expression "iVar3 = extraout_ECX_01" identifier = identifier) ;) (if_statement "if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" { (expression_statement "FUN_00160da0(param_2,puVar5);" (call_expression "FUN_00160da0(param_2,puVar5)" identifier (argument_list "(param_2,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }" { (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;" if (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0))" ( (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" ( (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" ( (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00112cb1;" goto statement_identifier ;)) (expression_statement "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00112d14;" goto statement_identifier ;)) (expression_statement "iVar3 = extraout_ECX_02;" (assignment_expression "iVar3 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" if (parenthesized_expression "(**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20)" ( (binary_expression "**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20" (pointer_expression "**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) + number_literal) ))))) == number_literal) )) (compound_statement "{\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" { (expression_statement "FUN_0015cc30(param_2,4,0);" (call_expression "FUN_0015cc30(param_2,4,0)" identifier (argument_list "(param_2,4,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "iVar3 = extraout_ECX_03;" (assignment_expression "iVar3 = extraout_ECX_03" identifier = identifier) ;) })) (if_statement "if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" { (expression_statement "local_24 = 0x6ffffef5;" (assignment_expression "local_24 = 0x6ffffef5" identifier = number_literal) ;) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" identifier = identifier) ;) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" if (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" ( (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" identifier == (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }" { (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "iVar3 = extraout_ECX_05;" (assignment_expression "iVar3 = extraout_ECX_05" identifier = identifier) ;) }) (else_clause "else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" else (compound_statement "{\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" { (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0x6ffffef5;" (assignment_expression "puVar5[2] = 0x6ffffef5" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }))) })) })) (expression_statement "bVar17 = *(int *)(DAT_004144e8 + 8) == 0;" (assignment_expression "bVar17 = *(int *)(DAT_004144e8 + 8) == 0" identifier = (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" { (labeled_statement "LAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);" statement_identifier : (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar3)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" identifier = (pointer_expression "*(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" * (cast_expression "(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1b30)" ( (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }" else (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_002e2048;" (assignment_expression "pbVar16 = &DAT_002e2048" identifier = (pointer_expression "&DAT_002e2048" & identifier)) ;) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" do (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar15 < *pbVar16;" (assignment_expression "bVar18 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "bVar17 = (!bVar18 && !bVar17) == bVar18;" (assignment_expression "bVar17 = (!bVar18 && !bVar17) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar17) == bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" ( (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar17) goto LAB_00112880;" if (parenthesized_expression "(bVar17)" ( identifier )) (goto_statement "goto LAB_00112880;" goto statement_identifier ;)) }))) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_002e2043;" (assignment_expression "pbVar16 = &DAT_002e2043" identifier = (pointer_expression "&DAT_002e2043" & identifier)) ;) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);" do (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar15 < *pbVar16;" (assignment_expression "bVar19 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar17 = (!bVar19 && !bVar17) == bVar19;" (assignment_expression "bVar17 = (!bVar19 && !bVar17) == bVar19" identifier = (binary_expression "(!bVar19 && !bVar17) == bVar19" (parenthesized_expression "(!bVar19 && !bVar17)" ( (binary_expression "!bVar19 && !bVar17" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = &DAT_002e2048;" (assignment_expression "pbVar15 = &DAT_002e2048" identifier = (pointer_expression "&DAT_002e2048" & identifier)) ;) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" do (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar15;" (assignment_expression "bVar18 = *pbVar10 < *pbVar15" identifier = (binary_expression "*pbVar10 < *pbVar15" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar17 = *pbVar10 == *pbVar15;" (assignment_expression "bVar17 = *pbVar10 == *pbVar15" identifier = (binary_expression "*pbVar10 == *pbVar15" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }" if (parenthesized_expression "((!bVar18 && !bVar17) != bVar18)" ( (binary_expression "(!bVar18 && !bVar17) != bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" ( (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) != identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (expression_statement "FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);" (call_expression "FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30)" identifier (argument_list "(param_7,iVar13 + local_40,&local_34,&local_30)" ( identifier , (binary_expression "iVar13 + local_40" identifier + identifier) , (pointer_expression "&local_34" & identifier) , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".hash",5,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".hash"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x34)" identifier = (cast_expression "(undefined4 *)FUN_00246670(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = local_30;" (assignment_expression "puVar5[3] = local_30" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = &PTR_FUN_00407550;" (assignment_expression "*puVar5 = &PTR_FUN_00407550" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00407550" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = local_34;" (assignment_expression "puVar5[0xb] = local_34" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = (string_literal ""** hash"" " string_content ")) ;) (if_statement "if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" { (expression_statement "FUN_00160da0(param_2,puVar5);" (call_expression "FUN_00160da0(param_2,puVar5)" identifier (argument_list "(param_2,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" { (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }" if (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0))" ( (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" ( (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" ( (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }" { (labeled_statement "LAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");" statement_identifier : (expression_statement "FUN_000da200("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_000da200("../../gold/output.h",0xd07,"set_link_section")" identifier (argument_list "("../../gold/output.h",0xd07,"set_link_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_link_section"" " string_content ") ))) ;)) })) (expression_statement "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }" if (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }" { (labeled_statement "LAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);" statement_identifier : (expression_statement "FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);" (call_expression "FUN_000da200("../../gold/parameters.h",0x69,"target",param_2)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",param_2)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;)) })) (expression_statement "iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);" (assignment_expression "iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" * (cast_expression "(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" ( (binary_expression "*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c" (pointer_expression "*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_004144e8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" * (cast_expression "(int *)(DAT_004144e8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 0xc)" ( (binary_expression "DAT_004144e8 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar3 = iVar13 + 7;" (assignment_expression "iVar3 = iVar13 + 7" identifier = (binary_expression "iVar13 + 7" identifier + number_literal)) ;) (if_statement "if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }" if (parenthesized_expression "(-1 < iVar13)" ( (binary_expression "-1 < iVar13" number_literal < identifier) )) (compound_statement "{\n      iVar3 = iVar13;\n    }" { (expression_statement "iVar3 = iVar13;" (assignment_expression "iVar3 = iVar13" identifier = identifier) ;) })) (expression_statement "FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);" (call_expression "FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f)" identifier (argument_list "(param_2,iVar3 >> 3,iVar3 >> 0x1f)" ( identifier , (binary_expression "iVar3 >> 3" identifier >> number_literal) , (binary_expression "iVar3 >> 0x1f" identifier >> number_literal) ))) ;) })) (if_statement "if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" { (expression_statement "local_24 = 4;" (assignment_expression "local_24 = 4" identifier = number_literal) ;) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" if (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" ( (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" identifier == (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }" { (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" identifier = identifier) ;) (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" else (compound_statement "{\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" { (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 4;" (assignment_expression "puVar5[2] = 4" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (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 = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , IDENT , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( 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 ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (pointer_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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) != (subscript_expression IDENT [ LIT ])) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( 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 ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (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 IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (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 (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (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 IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (return_statement return ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 ]) = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT >> LIT) , (binary_expression IDENT >> LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) (return_statement return ;) })))
(function_definition "void FUN_00112200(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0x11220e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n  iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_004144e8 + 8) == 0;\n  if (bVar19) goto LAB_00112ccc;\n  pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2035;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2043;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_00246670(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00407550;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00112200(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" (identifier "FUN_00112200") (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0x11220e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n  iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_004144e8 + 8) == 0;\n  if (bVar19) goto LAB_00112ccc;\n  pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2035;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002e2043;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_00246670(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00407550;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "int extraout_ECX_00;" (primitive_type "int") (identifier "extraout_ECX_00") (; ";")) (declaration "int extraout_ECX_01;" (primitive_type "int") (identifier "extraout_ECX_01") (; ";")) (declaration "int extraout_ECX_02;" (primitive_type "int") (identifier "extraout_ECX_02") (; ";")) (declaration "int extraout_ECX_03;" (primitive_type "int") (identifier "extraout_ECX_03") (; ";")) (declaration "int extraout_ECX_04;" (primitive_type "int") (identifier "extraout_ECX_04") (; ";")) (declaration "int extraout_ECX_05;" (primitive_type "int") (identifier "extraout_ECX_05") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "bool bVar19;" (primitive_type "bool") (identifier "bVar19") (; ";")) (declaration "byte bVar20;" (type_identifier "byte") (identifier "bVar20") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "int *local_58;" (primitive_type "int") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int *local_2c;" (primitive_type "int") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" (identifier "bVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" (identifier "iVar13") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_14 = 0x11220e;" (assignment_expression "uStack_14 = 0x11220e" (identifier "uStack_14") (= "=") (number_literal "0x11220e")) (; ";")) (expression_statement "piVar4 = *(int **)(param_1 + 0x130);" (assignment_expression "piVar4 = *(int **)(param_1 + 0x130)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(param_1 + 0x130)" (* "*") (cast_expression "(int **)(param_1 + 0x130)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x130)" (( "(") (binary_expression "param_1 + 0x130" (identifier "param_1") (+ "+") (number_literal "0x130")) () ")"))))) (; ";")) (if_statement "if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" (if "if") (parenthesized_expression "(piVar4 != *(int **)(param_1 + 0x134))" (( "(") (binary_expression "piVar4 != *(int **)(param_1 + 0x134)" (identifier "piVar4") (!= "!=") (pointer_expression "*(int **)(param_1 + 0x134)" (* "*") (cast_expression "(int **)(param_1 + 0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x134)" (( "(") (binary_expression "param_1 + 0x134" (identifier "param_1") (+ "+") (number_literal "0x134")) () ")"))))) () ")")) (compound_statement "{\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" ({ "{") (do_statement "do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);" (do "do") (compound_statement "{\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    }" ({ "{") (while_statement "while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }" (while "while") (parenthesized_expression "(iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0)" (( "(") (comma_expression "iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0" (assignment_expression "iVar3 = *piVar4" (identifier "iVar3") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (, ",") (binary_expression "(*(byte *)(iVar3 + 0x90) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 2)" (( "(") (binary_expression "*(byte *)(iVar3 + 0x90) & 2" (pointer_expression "*(byte *)(iVar3 + 0x90)" (* "*") (cast_expression "(byte *)(iVar3 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x90)" (( "(") (binary_expression "iVar3 + 0x90" (identifier "iVar3") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;\n      }" ({ "{") (if_statement "if (iVar13 == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" ({ "{") (expression_statement "FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");" (call_expression "FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index")" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0xda3,"set_dynsym_index")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xda3") (, ",") (string_literal ""set_dynsym_index"" (" """) (string_content "set_dynsym_index") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar3 + 0x68) = iVar13;" (assignment_expression "*(int *)(iVar3 + 0x68) = iVar13" (pointer_expression "*(int *)(iVar3 + 0x68)" (* "*") (cast_expression "(int *)(iVar3 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x68)" (( "(") (binary_expression "iVar3 + 0x68" (identifier "iVar3") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" (identifier "piVar4") (= "=") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;" (if "if") (parenthesized_expression "(*(int **)(param_1 + 0x134) == piVar4)" (( "(") (binary_expression "*(int **)(param_1 + 0x134) == piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" (* "*") (cast_expression "(int **)(param_1 + 0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x134)" (( "(") (binary_expression "param_1 + 0x134" (identifier "param_1") (+ "+") (number_literal "0x134")) () ")")))) (== "==") (identifier "piVar4")) () ")")) (goto_statement "goto LAB_0011226e;" (goto "goto") (statement_identifier "LAB_0011226e") (; ";"))) (} "}"))) (expression_statement "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + 0x68)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x68)" (( "(") (binary_expression "iVar3 + 0x68" (identifier "iVar3") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" (identifier "piVar4") (= "=") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_1 + 0x134) != piVar4)" (( "(") (binary_expression "*(int **)(param_1 + 0x134) != piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" (* "*") (cast_expression "(int **)(param_1 + 0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x134)" (( "(") (binary_expression "param_1 + 0x134" (identifier "param_1") (+ "+") (number_literal "0x134")) () ")")))) (!= "!=") (identifier "piVar4")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0011226e:\n  puVar5 = (undefined4 *)*param_2;" (statement_identifier "LAB_0011226e") (: ":") (expression_statement "puVar5 = (undefined4 *)*param_2;" (assignment_expression "puVar5 = (undefined4 *)*param_2" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*param_2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";"))) (if_statement "if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" (if "if") (parenthesized_expression "(puVar5 != (undefined4 *)param_2[1])" (( "(") (binary_expression "puVar5 != (undefined4 *)param_2[1]" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)param_2[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" ({ "{") (do_statement "do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);" (do "do") (compound_statement "{\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    }" ({ "{") (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" (identifier "piVar4") (= "=") (cast_expression "(int *)*puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";")) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);" (assignment_expression "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" (parenthesized_expression "(**(code **)(*piVar4 + 0xd0))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0xd0)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0xd0)" (* "*") (cast_expression "(code **)(*piVar4 + 0xd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0xd0)" (( "(") (binary_expression "*piVar4 + 0xd0" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0xd0")) () ")"))))) () ")")) (argument_list "(piVar4,iVar13)" (( "(") (identifier "piVar4") (, ",") (identifier "iVar13") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined4 *)param_2[1] != puVar5)" (( "(") (binary_expression "(undefined4 *)param_2[1] != puVar5" (cast_expression "(undefined4 *)param_2[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "puVar5")) () ")")) (; ";")) (} "}"))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);" (assignment_expression "iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" (identifier "iVar3") (= "=") (call_expression "FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" (identifier "FUN_001e8490") (argument_list "(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" (( "(") (identifier "param_3") (, ",") (identifier "iVar13") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "param_7") (, ",") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) (, ",") (identifier "param_8") () ")")))) (; ";")) (expression_statement "*param_5 = iVar13;" (assignment_expression "*param_5 = iVar13" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "*param_6 = local_40;" (assignment_expression "*param_6 = local_40" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "local_40")) (; ";")) (if_statement "if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;" (if "if") (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 0xc)" (( "(") (binary_expression "DAT_004144e8 + 0xc" (identifier "DAT_004144e8") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00112d14;" (goto "goto") (statement_identifier "LAB_00112d14") (; ";"))) (expression_statement "iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" (identifier "iVar1") (= "=") (pointer_expression "**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 0xc)" (( "(") (binary_expression "DAT_004144e8 + 0xc" (identifier "DAT_004144e8") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0x20)" (( "(") (binary_expression "iVar1 == 0x20" (identifier "iVar1") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }" ({ "{") (expression_statement "local_5c = 4;" (assignment_expression "local_5c = 4" (identifier "local_5c") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_58 = (int *)0x10;" (assignment_expression "local_58 = (int *)0x10" (identifier "local_58") (= "=") (cast_expression "(int *)0x10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) (; ";")) (} "}")) (else_clause "else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" (else "else") (compound_statement "{\n    if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" ({ "{") (if_statement "if (iVar1 != 0x40) {\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" (if "if") (parenthesized_expression "(iVar1 != 0x40)" (( "(") (binary_expression "iVar1 != 0x40" (identifier "iVar1") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n                    \n      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" ({ "{") (expression_statement "FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);" (call_expression "FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" (identifier "FUN_000da200") (argument_list "("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0x1232") (, ",") (string_literal ""create_dynamic_symtab"" (" """) (string_content "create_dynamic_symtab") (" """)) (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (} "}"))) (expression_statement "local_5c = 8;" (assignment_expression "local_5c = 8" (identifier "local_5c") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_58 = (int *)0x18;" (assignment_expression "local_58 = (int *)0x18" (identifier "local_58") (= "=") (cast_expression "(int *)0x18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x18"))) (; ";")) (} "}")))) (expression_statement "piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);" (assignment_expression "piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" (identifier "FUN_00110ae0") (argument_list "(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".dynsym"" (" """) (string_content ".dynsym") (" """)) (, ",") (number_literal "0xb") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_0040f01c;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_00160da0(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_0015cc30(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" ({ "{") (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x30)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_00246670(0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x30)" (identifier "FUN_00246670") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (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[3] = (int)local_58 * iVar3;" (assignment_expression "puVar5[3] = (int)local_58 * iVar3" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(int)local_58 * iVar3" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (* "*") (identifier "iVar3"))) (; ";")) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "*puVar5 = &PTR_FUN_0040f01c;" (assignment_expression "*puVar5 = &PTR_FUN_0040f01c" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "&PTR_FUN_0040f01c" (& "&") (identifier "PTR_FUN_0040f01c"))) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[0xb] = "** dynsym";" (assignment_expression "puVar5[0xb] = "** dynsym"" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (string_literal ""** dynsym"" (" """) (string_content "** dynsym") (" """))) (; ";")) (expression_statement "FUN_00160da0(piVar4,puVar5);" (call_expression "FUN_00160da0(piVar4,puVar5)" (identifier "FUN_00160da0") (argument_list "(piVar4,puVar5)" (( "(") (identifier "piVar4") (, ",") (identifier "puVar5") () ")"))) (; ";")) (if_statement "if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" (if "if") (parenthesized_expression "(((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))))" (( "(") (binary_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" (parenthesized_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0))" (( "(") (binary_expression "(piVar4[0x11] != 0) || (piVar4[0x12] != 0)" (parenthesized_expression "(piVar4[0x11] != 0)" (( "(") (binary_expression "piVar4[0x11] != 0" (subscript_expression "piVar4[0x11]" (identifier "piVar4") ([ "[") (number_literal "0x11") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(piVar4[0x12] != 0)" (( "(") (binary_expression "piVar4[0x12] != 0" (subscript_expression "piVar4[0x12]" (identifier "piVar4") ([ "[") (number_literal "0x12") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" (( "(") (parenthesized_expression "(local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))" (( "(") (binary_expression "local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)" (binary_expression "local_40 + iVar13 != piVar4[0x13]" (binary_expression "local_40 + iVar13" (identifier "local_40") (+ "+") (identifier "iVar13")) (!= "!=") (subscript_expression "piVar4[0x13]" (identifier "piVar4") ([ "[") (number_literal "0x13") (] "]"))) (&& "&&") (parenthesized_expression "(piVar4[0x13] != 0)" (( "(") (binary_expression "piVar4[0x13] != 0" (subscript_expression "piVar4[0x13]" (identifier "piVar4") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                    \n      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" ({ "{") (expression_statement "FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);" (call_expression "FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c)" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0xd5e,"set_info",local_5c)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xd5e") (, ",") (string_literal ""set_info"" (" """) (string_content "set_info") (" """)) (, ",") (identifier "local_5c") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar4[0x13] = local_40 + iVar13;" (assignment_expression "piVar4[0x13] = local_40 + iVar13" (subscript_expression "piVar4[0x13]" (identifier "piVar4") ([ "[") (number_literal "0x13") (] "]")) (= "=") (binary_expression "local_40 + iVar13" (identifier "local_40") (+ "+") (identifier "iVar13"))) (; ";")) (expression_statement "FUN_0015cc30(piVar4,local_58,0);" (call_expression "FUN_0015cc30(piVar4,local_58,0)" (identifier "FUN_0015cc30") (argument_list "(piVar4,local_58,0)" (( "(") (identifier "piVar4") (, ",") (identifier "local_58") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar4[9] = local_5c;" (assignment_expression "piVar4[9] = local_5c" (subscript_expression "piVar4[9]" (identifier "piVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "piVar4[10] = 0;" (assignment_expression "piVar4[10] = 0" (subscript_expression "piVar4[10]" (identifier "piVar4") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(param_1 + 0x17c) = piVar4;" (assignment_expression "*(int **)(param_1 + 0x17c) = piVar4" (pointer_expression "*(int **)(param_1 + 0x17c)" (* "*") (cast_expression "(int **)(param_1 + 0x17c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x17c)" (( "(") (binary_expression "param_1 + 0x17c" (identifier "param_1") (+ "+") (number_literal "0x17c")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x18c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x18c)" (* "*") (cast_expression "(int *)(param_1 + 0x18c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18c)" (( "(") (binary_expression "param_1 + 0x18c" (identifier "param_1") (+ "+") (number_literal "0x18c")) () ")"))))) (; ";")) (if_statement "if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" ({ "{") (expression_statement "piVar8 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar8 = *(int **)(iVar1 + 0x30)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(iVar1 + 0x30)" (* "*") (cast_expression "(int **)(iVar1 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_24 = 6;" (assignment_expression "local_24 = 6" (identifier "local_24") (= "=") (number_literal "6")) (; ";")) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(iVar1 + 0x34)" (* "*") (cast_expression "(int **)(iVar1 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" (if "if") (parenthesized_expression "(piVar8 == piVar11)" (( "(") (binary_expression "piVar8 == piVar11" (identifier "piVar8") (== "==") (identifier "piVar11")) () ")")) (compound_statement "{\n      local_2c = piVar4;\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }" ({ "{") (expression_statement "local_2c = piVar4;" (assignment_expression "local_2c = piVar4" (identifier "local_2c") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c)" (identifier "FUN_000a8410") (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "piVar11") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar6 = *(int **)(iVar1 + 0x30)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(iVar1 + 0x30)" (* "*") (cast_expression "(int **)(iVar1 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(iVar1 + 0x34)" (* "*") (cast_expression "(int **)(iVar1 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" (else "else") (compound_statement "{\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" ({ "{") (expression_statement "*piVar8 = (int)piVar4;" (assignment_expression "*piVar8 = (int)piVar4" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (expression_statement "piVar6 = piVar8 + 4;" (assignment_expression "piVar6 = piVar8 + 4" (identifier "piVar6") (= "=") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[2] = 6;" (assignment_expression "piVar8[2] = 6" (subscript_expression "piVar8[2]" (identifier "piVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "6")) (; ";")) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6" (pointer_expression "*(int **)(iVar1 + 0x30)" (* "*") (cast_expression "(int **)(iVar1 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "piVar6")) (; ";")) (} "}")))) (expression_statement "local_24 = 0xb;" (assignment_expression "local_24 = 0xb" (identifier "local_24") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" (identifier "local_20") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_2c = local_58;" (assignment_expression "local_2c = local_58" (identifier "local_2c") (= "=") (identifier "local_58")) (; ";")) (if_statement "if (piVar11 == piVar6) {\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" (if "if") (parenthesized_expression "(piVar11 == piVar6)" (( "(") (binary_expression "piVar11 == piVar6" (identifier "piVar11") (== "==") (identifier "piVar6")) () ")")) (compound_statement "{\n      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);\n    }" ({ "{") (expression_statement "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c)" (identifier "FUN_000a8410") (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "piVar11") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" (else "else") (compound_statement "{\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" ({ "{") (expression_statement "*piVar6 = (int)local_58;" (assignment_expression "*piVar6 = (int)local_58" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58"))) (; ";")) (expression_statement "piVar6[1] = local_28;" (assignment_expression "piVar6[1] = local_28" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "piVar6[2] = 0xb;" (assignment_expression "piVar6[2] = 0xb" (subscript_expression "piVar6[2]" (identifier "piVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0xb")) (; ";")) (expression_statement "piVar6[3] = -1;" (assignment_expression "piVar6[3] = -1" (subscript_expression "piVar6[3]" (identifier "piVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6 + 4;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6 + 4" (pointer_expression "*(int **)(iVar1 + 0x30)" (* "*") (cast_expression "(int **)(iVar1 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "piVar6 + 4" (identifier "piVar6") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar5 = *(undefined4 **)(param_1 + 0x124);" (assignment_expression "puVar5 = *(undefined4 **)(param_1 + 0x124)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x124)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x124)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (if_statement "if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" (if "if") (parenthesized_expression "(puVar5 != *(undefined4 **)(param_1 + 0x128))" (( "(") (binary_expression "puVar5 != *(undefined4 **)(param_1 + 0x128)" (identifier "puVar5") (!= "!=") (pointer_expression "*(undefined4 **)(param_1 + 0x128)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x128)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) () ")")) (compound_statement "{\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);" (do "do") (compound_statement "{\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_0015f9c0(uVar2);\n      uVar14 = uVar14 + iVar7;\n    }" ({ "{") (expression_statement "uVar2 = *puVar5;" (assignment_expression "uVar2 = *puVar5" (identifier "uVar2") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = FUN_0015f9c0(uVar2);" (assignment_expression "iVar7 = FUN_0015f9c0(uVar2)" (identifier "iVar7") (= "=") (call_expression "FUN_0015f9c0(uVar2)" (identifier "FUN_0015f9c0") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "uVar14 = uVar14 + iVar7;" (assignment_expression "uVar14 = uVar14 + iVar7" (identifier "uVar14") (= "=") (binary_expression "uVar14 + iVar7" (identifier "uVar14") (+ "+") (identifier "iVar7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)(param_1 + 0x128) != puVar5)" (( "(") (binary_expression "*(undefined4 **)(param_1 + 0x128) != puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x128)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x128)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (identifier "puVar5")) () ")")) (; ";")) (if_statement "if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" (if "if") (parenthesized_expression "((0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0))" (( "(") (binary_expression "(0xfeff < uVar14) &&\n       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" (parenthesized_expression "(0xfeff < uVar14)" (( "(") (binary_expression "0xfeff < uVar14" (number_literal "0xfeff") (< "<") (identifier "uVar14")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0" (assignment_expression "iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" (identifier "iVar7") (= "=") (call_expression "FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" (identifier "FUN_00110ae0") (argument_list "(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".dynsym_shndx"" (" """) (string_content ".dynsym_shndx") (" """)) (, ",") (number_literal "0x12") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      puVar5 = (undefined4 *)FUN_00246670(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00407694;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_00160da0(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_0015cc30(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" ({ "{") (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x38);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x38)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_00246670(0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x38)" (identifier "FUN_00246670") (argument_list "(0x38)" (( "(") (number_literal "0x38") () ")"))))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (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[3] = iVar3 << 2;" (assignment_expression "puVar5[3] = iVar3 << 2" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "iVar3 << 2" (identifier "iVar3") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[9] = 4;" (assignment_expression "puVar5[9] = 4" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*puVar5 = &PTR_FUN_00407694;" (assignment_expression "*puVar5 = &PTR_FUN_00407694" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "&PTR_FUN_00407694" (& "&") (identifier "PTR_FUN_00407694"))) (; ";")) (expression_statement "puVar5[0xb] = 0;" (assignment_expression "puVar5[0xb] = 0" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[0xc] = 0;" (assignment_expression "puVar5[0xc] = 0" (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[0xd] = 0;" (assignment_expression "puVar5[0xd] = 0" (subscript_expression "puVar5[0xd]" (identifier "puVar5") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x180) = puVar5;" (assignment_expression "*(undefined4 **)(param_1 + 0x180) = puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x180)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x180)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x180)" (( "(") (binary_expression "param_1 + 0x180" (identifier "param_1") (+ "+") (number_literal "0x180")) () ")")))) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "FUN_00160da0(iVar7,puVar5);" (call_expression "FUN_00160da0(iVar7,puVar5)" (identifier "FUN_00160da0") (argument_list "(iVar7,puVar5)" (( "(") (identifier "iVar7") (, ",") (identifier "puVar5") () ")"))) (; ";")) (if_statement "if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_00112cb1;" (if "if") (parenthesized_expression "((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))" (( "(") (binary_expression "(*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x40) != 0" (pointer_expression "*(int *)(iVar7 + 0x40)" (* "*") (cast_expression "(int *)(iVar7 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x40)" (( "(") (binary_expression "iVar7 + 0x40" (identifier "iVar7") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" (( "(") (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))" (( "(") (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)" (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 4)" (( "(") (binary_expression "*(byte *)(iVar7 + 0x90) & 4" (pointer_expression "*(byte *)(iVar7 + 0x90)" (* "*") (cast_expression "(byte *)(iVar7 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(iVar7 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 8)" (( "(") (binary_expression "*(byte *)(iVar7 + 0x90) & 8" (pointer_expression "*(byte *)(iVar7 + 0x90)" (* "*") (cast_expression "(byte *)(iVar7 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00112cb1;" (goto "goto") (statement_identifier "LAB_00112cb1") (; ";"))) (expression_statement "*(undefined4 *)(iVar7 + 0x24) = 4;" (assignment_expression "*(undefined4 *)(iVar7 + 0x24) = 4" (pointer_expression "*(undefined4 *)(iVar7 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x24)" (( "(") (binary_expression "iVar7 + 0x24" (identifier "iVar7") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x28) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x28)" (( "(") (binary_expression "iVar7 + 0x28" (identifier "iVar7") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(iVar7 + 0x3c) = piVar4;" (assignment_expression "*(int **)(iVar7 + 0x3c) = piVar4" (pointer_expression "*(int **)(iVar7 + 0x3c)" (* "*") (cast_expression "(int **)(iVar7 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x3c)" (( "(") (binary_expression "iVar7 + 0x3c" (identifier "iVar7") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "FUN_0015cc30(iVar7,4,0);" (call_expression "FUN_0015cc30(iVar7,4,0)" (identifier "FUN_0015cc30") (argument_list "(iVar7,4,0)" (( "(") (identifier "iVar7") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;" (assignment_expression "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" (* "*") (cast_expression "(byte *)(iVar7 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" (* "*") (cast_expression "(byte *)(iVar7 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")")))) (| "|") (number_literal "0x10"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x1ca) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x1ca) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x1ca)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x1ca)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1ca)" (( "(") (binary_expression "param_1 + 0x1ca" (identifier "param_1") (+ "+") (number_literal "0x1ca")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);" (assignment_expression "piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" (identifier "piVar8") (= "=") (cast_expression "(int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" (identifier "FUN_00110ae0") (argument_list "(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".dynstr"" (" """) (string_content ".dynstr") (" """)) (, ",") (number_literal "3") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "*param_4 = piVar8;" (assignment_expression "*param_4 = piVar8" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "iVar3 = extraout_ECX_00;" (assignment_expression "iVar3 = extraout_ECX_00" (identifier "iVar3") (= "=") (identifier "extraout_ECX_00")) (; ";")) (if_statement "if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(piVar8 != (int *)0x0)" (( "(") (binary_expression "piVar8 != (int *)0x0" (identifier "piVar8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_00246670(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_004075bc;\n    FUN_00160da0(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" ({ "{") (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x30)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_00246670(0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x30)" (identifier "FUN_00246670") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar5[0xb] = param_1 + 0xa0;" (assignment_expression "puVar5[0xb] = param_1 + 0xa0" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0"))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (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[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[9] = 1;" (assignment_expression "puVar5[9] = 1" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar5 = &PTR_FUN_004075bc;" (assignment_expression "*puVar5 = &PTR_FUN_004075bc" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "&PTR_FUN_004075bc" (& "&") (identifier "PTR_FUN_004075bc"))) (; ";")) (expression_statement "FUN_00160da0(piVar8,puVar5);" (call_expression "FUN_00160da0(piVar8,puVar5)" (identifier "FUN_00160da0") (argument_list "(piVar8,puVar5)" (( "(") (identifier "piVar8") (, ",") (identifier "puVar5") () ")"))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n      piVar4[0xf] = (int)piVar8;\n    }" ({ "{") (if_statement "if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;" (if "if") (parenthesized_expression "(((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0))" (( "(") (binary_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)" (parenthesized_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0))" (( "(") (binary_expression "(piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)" (parenthesized_expression "(piVar4[0x10] != 0)" (( "(") (binary_expression "piVar4[0x10] != 0" (subscript_expression "piVar4[0x10]" (identifier "piVar4") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(piVar4 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 4)" (( "(") (binary_expression "*(byte *)(piVar4 + 0x24) & 4" (pointer_expression "*(byte *)(piVar4 + 0x24)" (* "*") (cast_expression "(byte *)(piVar4 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 0x24)" (( "(") (binary_expression "piVar4 + 0x24" (identifier "piVar4") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(piVar4 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 8)" (( "(") (binary_expression "*(byte *)(piVar4 + 0x24) & 8" (pointer_expression "*(byte *)(piVar4 + 0x24)" (* "*") (cast_expression "(byte *)(piVar4 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 0x24)" (( "(") (binary_expression "piVar4 + 0x24" (identifier "piVar4") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00112cb1;" (goto "goto") (statement_identifier "LAB_00112cb1") (; ";"))) (expression_statement "piVar4[0xf] = (int)piVar8;" (assignment_expression "piVar4[0xf] = (int)piVar8" (subscript_expression "piVar4[0xf]" (identifier "piVar4") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8"))) (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(param_1 + 0x184);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x184)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x184)" (* "*") (cast_expression "(int *)(param_1 + 0x184)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x184)" (( "(") (binary_expression "param_1 + 0x184" (identifier "param_1") (+ "+") (number_literal "0x184")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" ({ "{") (if_statement "if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;" (if "if") (parenthesized_expression "(((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0))" (( "(") (binary_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0))" (( "(") (binary_expression "(*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" (* "*") (cast_expression "(int *)(iVar3 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x40)" (( "(") (binary_expression "iVar3 + 0x40" (identifier "iVar3") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(iVar3 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 4)" (( "(") (binary_expression "*(byte *)(iVar3 + 0x90) & 4" (pointer_expression "*(byte *)(iVar3 + 0x90)" (* "*") (cast_expression "(byte *)(iVar3 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x90)" (( "(") (binary_expression "iVar3 + 0x90" (identifier "iVar3") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(iVar3 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 8)" (( "(") (binary_expression "*(byte *)(iVar3 + 0x90) & 8" (pointer_expression "*(byte *)(iVar3 + 0x90)" (* "*") (cast_expression "(byte *)(iVar3 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x90)" (( "(") (binary_expression "iVar3 + 0x90" (identifier "iVar3") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00112cb1;" (goto "goto") (statement_identifier "LAB_00112cb1") (; ";"))) (expression_statement "*(int **)(iVar3 + 0x3c) = piVar8;" (assignment_expression "*(int **)(iVar3 + 0x3c) = piVar8" (pointer_expression "*(int **)(iVar3 + 0x3c)" (* "*") (cast_expression "(int **)(iVar3 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x3c)" (( "(") (binary_expression "iVar3 + 0x3c" (identifier "iVar3") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "piVar8")) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" (identifier "iVar3") (= "=") (identifier "iVar1")) (; ";")) (if_statement "if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" ({ "{") (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" (identifier "puVar12") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_24 = 5;" (assignment_expression "local_24 = 5" (identifier "local_24") (= "=") (number_literal "5")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" (if "if") (parenthesized_expression "(puVar5 == puVar12)" (( "(") (binary_expression "puVar5 == puVar12" (identifier "puVar5") (== "==") (identifier "puVar12")) () ")")) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }" ({ "{") (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" (identifier "local_2c") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c)" (identifier "FUN_000a8410") (argument_list "(iVar1 + 0x2c,puVar12,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "puVar12") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar9 = *(undefined4 **)(iVar1 + 0x30)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" (identifier "puVar12") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" (else "else") (compound_statement "{\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" ({ "{") (expression_statement "*puVar5 = piVar8;" (assignment_expression "*puVar5 = piVar8" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "puVar9 = puVar5 + 4;" (assignment_expression "puVar9 = puVar5 + 4" (identifier "puVar9") (= "=") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 5;" (assignment_expression "puVar5[2] = 5" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "5")) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (} "}")))) (expression_statement "local_24 = 10;" (assignment_expression "local_24 = 10" (identifier "local_24") (= "=") (number_literal "10")) (; ";")) (expression_statement "local_20 = 0xfffffffe;" (assignment_expression "local_20 = 0xfffffffe" (identifier "local_20") (= "=") (number_literal "0xfffffffe")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" (if "if") (parenthesized_expression "(puVar9 == puVar12)" (( "(") (binary_expression "puVar9 == puVar12" (identifier "puVar9") (== "==") (identifier "puVar12")) () ")")) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }" ({ "{") (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" (identifier "local_2c") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c)" (identifier "FUN_000a8410") (argument_list "(iVar1 + 0x2c,puVar9,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "puVar9") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "iVar3 = extraout_ECX_04;" (assignment_expression "iVar3 = extraout_ECX_04" (identifier "iVar3") (= "=") (identifier "extraout_ECX_04")) (; ";")) (} "}")) (else_clause "else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" (else "else") (compound_statement "{\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" ({ "{") (expression_statement "*puVar9 = piVar8;" (assignment_expression "*puVar9 = piVar8" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[2] = 10;" (assignment_expression "puVar9[2] = 10" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "10")) (; ";")) (expression_statement "puVar9[3] = 0xfffffffe;" (assignment_expression "puVar9[3] = 0xfffffffe" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xfffffffe")) (; ";")) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" (identifier "local_2c") (= "=") (identifier "piVar8")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar19 = *(int *)(DAT_004144e8 + 8) == 0;" (assignment_expression "bVar19 = *(int *)(DAT_004144e8 + 8) == 0" (identifier "bVar19") (= "=") (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar19) goto LAB_00112ccc;" (if "if") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")")) (goto_statement "goto LAB_00112ccc;" (goto "goto") (statement_identifier "LAB_00112ccc") (; ";"))) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" (identifier "pbVar10") (= "=") (pointer_expression "*(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" (* "*") (cast_expression "(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1b30)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1b30")) () ")"))))) (; ";")) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" (identifier "iVar3") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" (identifier "pbVar15") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "pbVar16 = &DAT_002e2035;" (assignment_expression "pbVar16 = &DAT_002e2035" (identifier "pbVar16") (= "=") (pointer_expression "&DAT_002e2035" (& "&") (identifier "DAT_002e2035"))) (; ";")) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);" (do "do") (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar15 < *pbVar16;" (assignment_expression "bVar17 = *pbVar15 < *pbVar16" (identifier "bVar17") (= "=") (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "bVar19 = *pbVar15 == *pbVar16;" (assignment_expression "bVar19 = *pbVar15 == *pbVar16" (identifier "bVar19") (= "=") (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar17 = (!bVar17 && !bVar19) == bVar17;" (assignment_expression "bVar17 = (!bVar17 && !bVar19) == bVar17" (identifier "bVar17") (= "=") (binary_expression "(!bVar17 && !bVar19) == bVar17" (parenthesized_expression "(!bVar17 && !bVar19)" (( "(") (binary_expression "!bVar17 && !bVar19" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar19" (! "!") (identifier "bVar19"))) () ")")) (== "==") (identifier "bVar17"))) (; ";")) (if_statement "if (bVar17) {\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }" (if "if") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (compound_statement "{\nLAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_00246670(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00407550;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;\n    if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);\n  }" ({ "{") (labeled_statement "LAB_00112880:\n    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);" (statement_identifier "LAB_00112880") (: ":") (expression_statement "FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);" (call_expression "FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38)" (identifier "FUN_000c5590") (argument_list "(param_7,local_40 + iVar13,&local_3c,&local_38)" (( "(") (identifier "param_7") (, ",") (binary_expression "local_40 + iVar13" (identifier "local_40") (+ "+") (identifier "iVar13")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";"))) (expression_statement "param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" (identifier "param_2") (= "=") (cast_expression "(int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" (identifier "FUN_00110ae0") (argument_list "(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".gnu.hash"" (" """) (string_content ".gnu.hash") (" """)) (, ",") (number_literal "0x6ffffff6") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x34)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_00246670(0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x34)" (identifier "FUN_00246670") (argument_list "(0x34)" (( "(") (number_literal "0x34") () ")"))))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (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[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[3] = local_38;" (assignment_expression "puVar5[3] = local_38" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "*puVar5 = &PTR_FUN_00407550;" (assignment_expression "*puVar5 = &PTR_FUN_00407550" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "&PTR_FUN_00407550" (& "&") (identifier "PTR_FUN_00407550"))) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[0xb] = local_3c;" (assignment_expression "puVar5[0xb] = local_3c" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]")) (= "=") (string_literal ""** hash"" (" """) (string_content "** hash") (" """))) (; ";")) (expression_statement "iVar3 = extraout_ECX_01;" (assignment_expression "iVar3 = extraout_ECX_01" (identifier "iVar3") (= "=") (identifier "extraout_ECX_01")) (; ";")) (if_statement "if (param_2 != (int *)0x0) {\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00160da0(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" ({ "{") (expression_statement "FUN_00160da0(param_2,puVar5);" (call_expression "FUN_00160da0(param_2,puVar5)" (identifier "FUN_00160da0") (argument_list "(param_2,puVar5)" (( "(") (identifier "param_2") (, ",") (identifier "puVar5") () ")"))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;\n        param_2[0xf] = (int)piVar4;\n      }" ({ "{") (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;" (if "if") (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0))" (( "(") (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" (( "(") (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" (( "(") (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" (( "(") (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" (* "*") (cast_expression "(byte *)(param_2 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" (( "(") (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" (* "*") (cast_expression "(byte *)(param_2 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00112cb1;" (goto "goto") (statement_identifier "LAB_00112cb1") (; ";"))) (expression_statement "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" (identifier "param_2") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;" (if "if") (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 0xc)" (( "(") (binary_expression "DAT_004144e8 + 0xc" (identifier "DAT_004144e8") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00112d14;" (goto "goto") (statement_identifier "LAB_00112d14") (; ";"))) (expression_statement "iVar3 = extraout_ECX_02;" (assignment_expression "iVar3 = extraout_ECX_02" (identifier "iVar3") (= "=") (identifier "extraout_ECX_02")) (; ";")) (if_statement "if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" (if "if") (parenthesized_expression "(**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20)" (( "(") (binary_expression "**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20" (pointer_expression "**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(DAT_004144e8 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 0xc)" (( "(") (binary_expression "DAT_004144e8 + 0xc" (identifier "DAT_004144e8") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        FUN_0015cc30(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" ({ "{") (expression_statement "FUN_0015cc30(param_2,4,0);" (call_expression "FUN_0015cc30(param_2,4,0)" (identifier "FUN_0015cc30") (argument_list "(param_2,4,0)" (( "(") (identifier "param_2") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar3 = extraout_ECX_03;" (assignment_expression "iVar3 = extraout_ECX_03" (identifier "iVar3") (= "=") (identifier "extraout_ECX_03")) (; ";")) (} "}"))) (if_statement "if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" ({ "{") (expression_statement "local_24 = 0x6ffffef5;" (assignment_expression "local_24 = 0x6ffffef5" (identifier "local_24") (= "=") (number_literal "0x6ffffef5")) (; ";")) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" (identifier "local_2c") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" (if "if") (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" (( "(") (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" (identifier "puVar5") (== "==") (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (compound_statement "{\n          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }" ({ "{") (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c)" (identifier "FUN_000a8410") (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "puVar5") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "iVar3 = extraout_ECX_05;" (assignment_expression "iVar3 = extraout_ECX_05" (identifier "iVar3") (= "=") (identifier "extraout_ECX_05")) (; ";")) (} "}")) (else_clause "else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" (else "else") (compound_statement "{\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" ({ "{") (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 0x6ffffef5;" (assignment_expression "puVar5[2] = 0x6ffffef5" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x6ffffef5")) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "bVar17 = *(int *)(DAT_004144e8 + 8) == 0;" (assignment_expression "bVar17 = *(int *)(DAT_004144e8 + 8) == 0" (identifier "bVar17") (= "=") (binary_expression "*(int *)(DAT_004144e8 + 8) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar17) {\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" (if "if") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (compound_statement "{\nLAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" ({ "{") (labeled_statement "LAB_00112ccc:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);" (statement_identifier "LAB_00112ccc") (: ":") (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3)" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x5c,"options",iVar3)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "iVar3") () ")"))) (; ";"))) (} "}"))) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" (identifier "pbVar10") (= "=") (pointer_expression "*(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" (* "*") (cast_expression "(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 8) + 0x1b30)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1b30")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }" (else "else") (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_00112880;\n  }" ({ "{") (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" (identifier "pbVar15") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "pbVar16 = &DAT_002e2048;" (assignment_expression "pbVar16 = &DAT_002e2048" (identifier "pbVar16") (= "=") (pointer_expression "&DAT_002e2048" (& "&") (identifier "DAT_002e2048"))) (; ";")) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" (do "do") (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar15 < *pbVar16;" (assignment_expression "bVar18 = *pbVar15 < *pbVar16" (identifier "bVar18") (= "=") (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" (identifier "bVar17") (= "=") (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (; ";")) (expression_statement "bVar17 = (!bVar18 && !bVar17) == bVar18;" (assignment_expression "bVar17 = (!bVar18 && !bVar17) == bVar18" (identifier "bVar17") (= "=") (binary_expression "(!bVar18 && !bVar17) == bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" (( "(") (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar17" (! "!") (identifier "bVar17"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (bVar17) goto LAB_00112880;" (if "if") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (goto_statement "goto LAB_00112880;" (goto "goto") (statement_identifier "LAB_00112880") (; ";"))) (} "}")))) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" (identifier "bVar19") (= "=") (false "false")) (; ";")) (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" (identifier "pbVar15") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "pbVar16 = &DAT_002e2043;" (assignment_expression "pbVar16 = &DAT_002e2043" (identifier "pbVar16") (= "=") (pointer_expression "&DAT_002e2043" (& "&") (identifier "DAT_002e2043"))) (; ";")) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);" (do "do") (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar19 = *pbVar15 < *pbVar16;" (assignment_expression "bVar19 = *pbVar15 < *pbVar16" (identifier "bVar19") (= "=") (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" (identifier "bVar17") (= "=") (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar17 = (!bVar19 && !bVar17) == bVar19;" (assignment_expression "bVar17 = (!bVar19 && !bVar17) == bVar19" (identifier "bVar17") (= "=") (binary_expression "(!bVar19 && !bVar17) == bVar19" (parenthesized_expression "(!bVar19 && !bVar17)" (( "(") (binary_expression "!bVar19 && !bVar17" (unary_expression "!bVar19" (! "!") (identifier "bVar19")) (&& "&&") (unary_expression "!bVar17" (! "!") (identifier "bVar17"))) () ")")) (== "==") (identifier "bVar19"))) (; ";")) (if_statement "if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(!bVar17)" (( "(") (unary_expression "!bVar17" (! "!") (identifier "bVar17")) () ")")) (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = &DAT_002e2048;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar15 = &DAT_002e2048;" (assignment_expression "pbVar15 = &DAT_002e2048" (identifier "pbVar15") (= "=") (pointer_expression "&DAT_002e2048" (& "&") (identifier "DAT_002e2048"))) (; ";")) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" (do "do") (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar10 < *pbVar15;" (assignment_expression "bVar18 = *pbVar10 < *pbVar15" (identifier "bVar18") (= "=") (binary_expression "*pbVar10 < *pbVar15" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar17 = *pbVar10 == *pbVar15;" (assignment_expression "bVar17 = *pbVar10 == *pbVar15" (identifier "bVar17") (= "=") (binary_expression "*pbVar10 == *pbVar15" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar20 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (; ";")) (if_statement "if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }" (if "if") (parenthesized_expression "((!bVar18 && !bVar17) != bVar18)" (( "(") (binary_expression "(!bVar18 && !bVar17) != bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" (( "(") (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar17" (! "!") (identifier "bVar17"))) () ")")) (!= "!=") (identifier "bVar18")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);" (call_expression "FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30)" (identifier "FUN_000c4aa0") (argument_list "(param_7,iVar13 + local_40,&local_34,&local_30)" (( "(") (identifier "param_7") (, ",") (binary_expression "iVar13 + local_40" (identifier "iVar13") (+ "+") (identifier "local_40")) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0)" (identifier "param_2") (= "=") (cast_expression "(int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0)" (identifier "FUN_00110ae0") (argument_list "(param_1,0,".hash",5,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".hash"" (" """) (string_content ".hash") (" """)) (, ",") (number_literal "5") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "puVar5 = (undefined4 *)FUN_00246670(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_00246670(0x34)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_00246670(0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x34)" (identifier "FUN_00246670") (argument_list "(0x34)" (( "(") (number_literal "0x34") () ")"))))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (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[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[3] = local_30;" (assignment_expression "puVar5[3] = local_30" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*puVar5 = &PTR_FUN_00407550;" (assignment_expression "*puVar5 = &PTR_FUN_00407550" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "&PTR_FUN_00407550" (& "&") (identifier "PTR_FUN_00407550"))) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[0xb] = local_34;" (assignment_expression "puVar5[0xb] = local_34" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]")) (= "=") (string_literal ""** hash"" (" """) (string_content "** hash") (" """))) (; ";")) (if_statement "if (param_2 != (int *)0x0) {\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_00160da0(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" ({ "{") (expression_statement "FUN_00160da0(param_2,puVar5);" (call_expression "FUN_00160da0(param_2,puVar5)" (identifier "FUN_00160da0") (argument_list "(param_2,puVar5)" (( "(") (identifier "param_2") (, ",") (identifier "puVar5") () ")"))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" ({ "{") (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }" (if "if") (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0))" (( "(") (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" (( "(") (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" (( "(") (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" (( "(") (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" (* "*") (cast_expression "(byte *)(param_2 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" (( "(") (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" (* "*") (cast_expression "(byte *)(param_2 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");\n      }" ({ "{") (labeled_statement "LAB_00112cb1:\n                    \n        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");" (statement_identifier "LAB_00112cb1") (: ":") (expression_statement "FUN_000da200("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_000da200("../../gold/output.h",0xd07,"set_link_section")" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0xd07,"set_link_section")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xd07") (, ",") (string_literal ""set_link_section"" (" """) (string_content "set_link_section") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" (identifier "param_2") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(DAT_004144e8 + 0xc) == 0) {\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 0xc) == 0" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 0xc)" (( "(") (binary_expression "DAT_004144e8 + 0xc" (identifier "DAT_004144e8") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);\n    }" ({ "{") (labeled_statement "LAB_00112d14:\n                    \n      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);" (statement_identifier "LAB_00112d14") (: ":") (expression_statement "FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);" (call_expression "FUN_000da200("../../gold/parameters.h",0x69,"target",param_2)" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x69,"target",param_2)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);" (assignment_expression "iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c" (pointer_expression "*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_004144e8 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_004144e8 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_004144e8 + 0xc) + 4" (pointer_expression "*(int *)(DAT_004144e8 + 0xc)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 0xc)" (( "(") (binary_expression "DAT_004144e8 + 0xc" (identifier "DAT_004144e8") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "iVar3 = iVar13 + 7;" (assignment_expression "iVar3 = iVar13 + 7" (identifier "iVar3") (= "=") (binary_expression "iVar13 + 7" (identifier "iVar13") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }" (if "if") (parenthesized_expression "(-1 < iVar13)" (( "(") (binary_expression "-1 < iVar13" (number_literal "-1") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n      iVar3 = iVar13;\n    }" ({ "{") (expression_statement "iVar3 = iVar13;" (assignment_expression "iVar3 = iVar13" (identifier "iVar3") (= "=") (identifier "iVar13")) (; ";")) (} "}"))) (expression_statement "FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);" (call_expression "FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f)" (identifier "FUN_0015cc30") (argument_list "(param_2,iVar3 >> 3,iVar3 >> 0x1f)" (( "(") (identifier "param_2") (, ",") (binary_expression "iVar3 >> 3" (identifier "iVar3") (>> ">>") (number_literal "3")) (, ",") (binary_expression "iVar3 >> 0x1f" (identifier "iVar3") (>> ">>") (number_literal "0x1f")) () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" ({ "{") (expression_statement "local_24 = 4;" (assignment_expression "local_24 = 4" (identifier "local_24") (= "=") (number_literal "4")) (; ";")) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" (if "if") (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" (( "(") (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" (identifier "puVar5") (== "==") (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (compound_statement "{\n      local_2c = param_2;\n      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);\n    }" ({ "{") (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" (identifier "local_2c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c)" (identifier "FUN_000a8410") (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "puVar5") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" (else "else") (compound_statement "{\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" ({ "{") (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 4;" (assignment_expression "puVar5[2] = 4" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void create_dynamic_symtab(Layout * this, Input_objects *
   input_objects, Symbol_table * symtab, Output_section * * pdynstr, uint * plocal_dynamic_count,
   uint * pforced_local_dynamic_count, vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *
   pdynamic_symbols, Versions * pversions) */

void __thiscall
gold::type_1::function_1
          (type_1 *this,type_2 *input_objects,type_3 *symtab,type_4 **pdynstr,
          type_5 *plocal_dynamic_count,type_5 *pforced_local_dynamic_count,
          type_6<gold::Symbol*,type_7::allocator<gold::Symbol*>_> *pdynamic_symbols,
          type_8 *pversions)

{
  type_5 forced_local_count;
  type_9 *phash;
  type_5 hashlen;
  type_9 *phash_1;
  type_5 hashlen_1;
  
}


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

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

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

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int *piVar4;
  undefined4 *puVar5;
  int *piVar6;
  int iVar7;
  int *piVar8;
  undefined4 *puVar9;
  byte *pbVar10;
  undefined4 extraout_ECX;
  int extraout_ECX_00;
  int extraout_ECX_01;
  int extraout_ECX_02;
  int extraout_ECX_03;
  int extraout_ECX_04;
  int extraout_ECX_05;
  int *piVar11;
  undefined4 *puVar12;
  int iVar13;
  uint uVar14;
  byte *pbVar15;
  byte *pbVar16;
  bool bVar17;
  bool bVar18;
  bool bVar19;
  byte bVar20;
  int local_5c;
  int *local_58;
  int local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  int *local_2c;
  int local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar20 = 0;
  iVar13 = 1;
  uStack_14 = 0x11220e;
  piVar4 = *(int **)(param_1 + 0x130);
  if (piVar4 != *(int **)(param_1 + 0x134)) {
    do {
      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {
        if (iVar13 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_000da200("../../gold/output.h",0xda3,"set_dynsym_index");
        }
        *(int *)(iVar3 + 0x68) = iVar13;
        piVar4 = piVar4 + 1;
        iVar13 = iVar13 + 1;
        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_0011226e;
      }
      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;
      piVar4 = piVar4 + 1;
    } while (*(int **)(param_1 + 0x134) != piVar4);
  }
LAB_0011226e:
  puVar5 = (undefined4 *)*param_2;
  if (puVar5 != (undefined4 *)param_2[1]) {
    do {
      piVar4 = (int *)*puVar5;
      puVar5 = puVar5 + 1;
      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);
    } while ((undefined4 *)param_2[1] != puVar5);
  }
  local_40 = 0;
  iVar3 = FUN_001e8490(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);
  *param_5 = iVar13;
  *param_6 = local_40;
  if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;
  iVar1 = **(int **)(*(int *)(DAT_004144e8 + 0xc) + 4);
  if (iVar1 == 0x20) {
    local_5c = 4;
    local_58 = (int *)0x10;
  }
  else {
    if (iVar1 != 0x40) {
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);
    }
    local_5c = 8;
    local_58 = (int *)0x18;
  }
  piVar4 = (int *)FUN_00110ae0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);
  if (piVar4 != (int *)0x0) {
    puVar5 = (undefined4 *)FUN_00246670(0x30);
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = (int)local_58 * iVar3;
    puVar5[8] = 0;
    puVar5[9] = local_5c;
    puVar5[10] = 0;
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
    *puVar5 = &PTR_FUN_0040f01c;
    puVar5[4] = 0;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[0xb] = "** dynsym";
    FUN_00160da0(piVar4,puVar5);
    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||
       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/output.h",0xd5e,"set_info",local_5c);
    }
    piVar4[0x13] = local_40 + iVar13;
    FUN_0015cc30(piVar4,local_58,0);
    piVar4[9] = local_5c;
    piVar4[10] = 0;
    *(int **)(param_1 + 0x17c) = piVar4;
  }
  iVar1 = *(int *)(param_1 + 0x18c);
  if (iVar1 != 0) {
    piVar8 = *(int **)(iVar1 + 0x30);
    local_24 = 6;
    piVar11 = *(int **)(iVar1 + 0x34);
    local_20 = 0;
    local_28 = 0;
    if (piVar8 == piVar11) {
      local_2c = piVar4;
      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);
      piVar6 = *(int **)(iVar1 + 0x30);
      piVar11 = *(int **)(iVar1 + 0x34);
    }
    else {
      *piVar8 = (int)piVar4;
      piVar6 = piVar8 + 4;
      piVar8[1] = 0;
      piVar8[2] = 6;
      piVar8[3] = 0;
      *(int **)(iVar1 + 0x30) = piVar6;
    }
    local_24 = 0xb;
    local_20 = 0xffffffff;
    local_2c = local_58;
    if (piVar11 == piVar6) {
      FUN_000a8410(iVar1 + 0x2c,piVar11,&local_2c);
    }
    else {
      *piVar6 = (int)local_58;
      piVar6[1] = local_28;
      piVar6[2] = 0xb;
      piVar6[3] = -1;
      *(int **)(iVar1 + 0x30) = piVar6 + 4;
    }
  }
  puVar5 = *(undefined4 **)(param_1 + 0x124);
  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {
    uVar14 = 0;
    do {
      uVar2 = *puVar5;
      puVar5 = puVar5 + 1;
      iVar7 = FUN_0015f9c0(uVar2);
      uVar14 = uVar14 + iVar7;
    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);
    if ((0xfeff < uVar14) &&
       (iVar7 = FUN_00110ae0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {
      puVar5 = (undefined4 *)FUN_00246670(0x38);
      puVar5[1] = 0;
      puVar5[2] = 0;
      puVar5[3] = iVar3 << 2;
      puVar5[8] = 0;
      puVar5[9] = 4;
      puVar5[10] = 0;
      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
      puVar5[4] = 0;
      puVar5[5] = 0xffffffff;
      puVar5[6] = 0xffffffff;
      *puVar5 = &PTR_FUN_00407694;
      puVar5[0xb] = 0;
      puVar5[0xc] = 0;
      puVar5[0xd] = 0;
      *(undefined4 **)(param_1 + 0x180) = puVar5;
      FUN_00160da0(iVar7,puVar5);
      if ((*(int *)(iVar7 + 0x40) != 0) ||
         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))
      goto LAB_00112cb1;
      *(undefined4 *)(iVar7 + 0x24) = 4;
      *(undefined4 *)(iVar7 + 0x28) = 0;
      *(int **)(iVar7 + 0x3c) = piVar4;
      FUN_0015cc30(iVar7,4,0);
      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;
      *(undefined1 *)(param_1 + 0x1ca) = 1;
    }
  }
  piVar8 = (int *)FUN_00110ae0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);
  *param_4 = piVar8;
  iVar3 = extraout_ECX_00;
  if (piVar8 != (int *)0x0) {
    puVar5 = (undefined4 *)FUN_00246670(0x30);
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;
    puVar5[0xb] = param_1 + 0xa0;
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = 0;
    puVar5[4] = 0;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[8] = 0;
    puVar5[9] = 1;
    puVar5[10] = 0;
    *puVar5 = &PTR_FUN_004075bc;
    FUN_00160da0(piVar8,puVar5);
    if (piVar4 != (int *)0x0) {
      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||
         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_00112cb1;
      piVar4[0xf] = (int)piVar8;
    }
    iVar3 = *(int *)(param_1 + 0x184);
    if (iVar3 != 0) {
      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||
         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_00112cb1;
      *(int **)(iVar3 + 0x3c) = piVar8;
    }
    iVar3 = iVar1;
    if (iVar1 != 0) {
      puVar5 = *(undefined4 **)(iVar1 + 0x30);
      puVar12 = *(undefined4 **)(iVar1 + 0x34);
      local_24 = 5;
      local_20 = 0;
      local_28 = 0;
      if (puVar5 == puVar12) {
        local_2c = piVar8;
        FUN_000a8410(iVar1 + 0x2c,puVar12,&local_2c);
        puVar9 = *(undefined4 **)(iVar1 + 0x30);
        puVar12 = *(undefined4 **)(iVar1 + 0x34);
      }
      else {
        *puVar5 = piVar8;
        puVar9 = puVar5 + 4;
        puVar5[1] = 0;
        puVar5[2] = 5;
        puVar5[3] = 0;
        *(undefined4 **)(iVar1 + 0x30) = puVar9;
      }
      local_24 = 10;
      local_20 = 0xfffffffe;
      local_28 = 0;
      if (puVar9 == puVar12) {
        local_2c = piVar8;
        FUN_000a8410(iVar1 + 0x2c,puVar9,&local_2c);
        iVar3 = extraout_ECX_04;
      }
      else {
        *puVar9 = piVar8;
        puVar9[1] = 0;
        puVar9[2] = 10;
        puVar9[3] = 0xfffffffe;
        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;
        local_2c = piVar8;
      }
    }
  }
  bVar17 = false;
  bVar19 = *(int *)(DAT_004144e8 + 8) == 0;
  if (bVar19) goto LAB_00112ccc;
  pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);
  iVar3 = 4;
  pbVar15 = pbVar10;
  pbVar16 = &DAT_002e2035;
  do {
    if (iVar3 == 0) break;
    iVar3 = iVar3 + -1;
    bVar17 = *pbVar15 < *pbVar16;
    bVar19 = *pbVar15 == *pbVar16;
    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
  } while (bVar19);
  bVar18 = false;
  bVar17 = (!bVar17 && !bVar19) == bVar17;
  if (bVar17) {
LAB_00112880:
    FUN_000c5590(param_7,local_40 + iVar13,&local_3c,&local_38);
    param_2 = (int *)FUN_00110ae0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);
    puVar5 = (undefined4 *)FUN_00246670(0x34);
    puVar5[1] = 0;
    puVar5[9] = local_5c;
    puVar5[2] = 0;
    puVar5[8] = 0;
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
    puVar5[10] = 0;
    puVar5[3] = local_38;
    *puVar5 = &PTR_FUN_00407550;
    puVar5[4] = 0;
    puVar5[0xb] = local_3c;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[0xc] = "** hash";
    iVar3 = extraout_ECX_01;
    if (param_2 != (int *)0x0) {
      FUN_00160da0(param_2,puVar5);
      if (piVar4 != (int *)0x0) {
        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||
           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_00112cb1;
        param_2[0xf] = (int)piVar4;
      }
      if (*(int *)(DAT_004144e8 + 0xc) == 0) goto LAB_00112d14;
      iVar3 = extraout_ECX_02;
      if (**(int **)(*(int *)(DAT_004144e8 + 0xc) + 4) == 0x20) {
        FUN_0015cc30(param_2,4,0);
        iVar3 = extraout_ECX_03;
      }
      if (iVar1 != 0) {
        local_24 = 0x6ffffef5;
        puVar5 = *(undefined4 **)(iVar1 + 0x30);
        local_20 = 0;
        local_28 = 0;
        local_2c = param_2;
        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {
          FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);
          iVar3 = extraout_ECX_05;
        }
        else {
          *puVar5 = param_2;
          puVar5[1] = 0;
          puVar5[2] = 0x6ffffef5;
          puVar5[3] = 0;
          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;
        }
      }
    }
    bVar17 = *(int *)(DAT_004144e8 + 8) == 0;
    if (bVar17) {
LAB_00112ccc:
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/parameters.h",0x5c,"options",iVar3);
    }
    pbVar10 = *(byte **)(*(int *)(DAT_004144e8 + 8) + 0x1b30);
  }
  else {
    iVar3 = 5;
    pbVar15 = pbVar10;
    pbVar16 = &DAT_002e2048;
    do {
      if (iVar3 == 0) break;
      iVar3 = iVar3 + -1;
      bVar18 = *pbVar15 < *pbVar16;
      bVar17 = *pbVar15 == *pbVar16;
      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
    } while (bVar17);
    bVar17 = (!bVar18 && !bVar17) == bVar18;
    if (bVar17) goto LAB_00112880;
  }
  bVar19 = false;
  iVar3 = 5;
  pbVar15 = pbVar10;
  pbVar16 = &DAT_002e2043;
  do {
    if (iVar3 == 0) break;
    iVar3 = iVar3 + -1;
    bVar19 = *pbVar15 < *pbVar16;
    bVar17 = *pbVar15 == *pbVar16;
    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
  } while (bVar17);
  bVar18 = false;
  bVar17 = (!bVar19 && !bVar17) == bVar19;
  if (!bVar17) {
    iVar3 = 5;
    pbVar15 = &DAT_002e2048;
    do {
      if (iVar3 == 0) break;
      iVar3 = iVar3 + -1;
      bVar18 = *pbVar10 < *pbVar15;
      bVar17 = *pbVar10 == *pbVar15;
      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;
      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    } while (bVar17);
    if ((!bVar18 && !bVar17) != bVar18) {
      return;
    }
  }
  FUN_000c4aa0(param_7,iVar13 + local_40,&local_34,&local_30);
  param_2 = (int *)FUN_00110ae0(param_1,0,".hash",5,2,0,0,3,0,0,0);
  puVar5 = (undefined4 *)FUN_00246670(0x34);
  puVar5[1] = 0;
  puVar5[9] = local_5c;
  puVar5[2] = 0;
  puVar5[8] = 0;
  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
  puVar5[10] = 0;
  puVar5[3] = local_30;
  *puVar5 = &PTR_FUN_00407550;
  puVar5[4] = 0;
  puVar5[0xb] = local_34;
  puVar5[5] = 0xffffffff;
  puVar5[6] = 0xffffffff;
  puVar5[0xc] = "** hash";
  if (param_2 != (int *)0x0) {
    FUN_00160da0(param_2,puVar5);
    if (piVar4 != (int *)0x0) {
      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||
         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {
LAB_00112cb1:
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/output.h",0xd07,"set_link_section");
      }
      param_2[0xf] = (int)piVar4;
    }
    if (*(int *)(DAT_004144e8 + 0xc) == 0) {
LAB_00112d14:
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/parameters.h",0x69,"target",param_2);
    }
    iVar13 = *(int *)(*(int *)(*(int *)(DAT_004144e8 + 0xc) + 4) + 0x5c);
    iVar3 = iVar13 + 7;
    if (-1 < iVar13) {
      iVar3 = iVar13;
    }
    FUN_0015cc30(param_2,iVar3 >> 3,iVar3 >> 0x1f);
  }
  if (iVar1 != 0) {
    local_24 = 4;
    puVar5 = *(undefined4 **)(iVar1 + 0x30);
    local_20 = 0;
    local_28 = 0;
    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {
      local_2c = param_2;
      FUN_000a8410(iVar1 + 0x2c,puVar5,&local_2c);
    }
    else {
      *puVar5 = param_2;
      puVar5[1] = 0;
      puVar5[2] = 4;
      puVar5[3] = 0;
      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;
    }
  }
  return;
}

