
/* 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: uint tlsld_got_offset(Target_powerpc<32,_true> * this, Symbol_table *
   symtab, Layout * layout, Sized_relobj_file<32,_true> * object) */

uint __thiscall
anon_unknown.dwarf_6462d4::Target_powerpc<32,_true>::tlsld_got_offset
          (Target_powerpc<32,_true> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<32,_true> *object)

{
}



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

int __regparm3 FUN_000c9500(int param_1,int param_2,int param_3,int param_4)

{
  undefined4 *puVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  int local_34;
  undefined4 local_30;
  undefined4 local_2c;
  uint local_28;
  int local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xc9509;
  if (*(int *)(param_1 + 0x48) != -1) {
    return *(int *)(param_1 + 0x48);
  }
  if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {
    iVar2 = FUN_000b7950();
    iVar3 = FUN_000b11b0();
    if ((*(int *)(iVar3 + 100) != 0) &&
       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,
       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {
      *(int *)(iVar3 + 0x68) = iVar4;
      *(undefined4 *)(iVar3 + 100) = 0;
      local_38 = 0;
      local_34 = 0x7ffffffe;
      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);
      local_38 = 0;
      local_34 = 0x7ffffffe;
      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);
      local_38 = 0;
      local_34 = 0x7ffffffe;
      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);
      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);
      if (iVar4 == 0) {
        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,
                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);
      }
      else {
        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;
      }
    }
    local_38 = 0;
    local_34 = 0x7ffffffe;
    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);
    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);
    local_20 = 0;
    puVar1 = *(undefined4 **)(iVar2 + 0x38);
    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {
      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);
      puVar6 = *(undefined4 **)(iVar2 + 0x38);
    }
    else {
      puVar6 = puVar1 + 7;
      *puVar1 = local_38;
      puVar1[1] = local_34;
      puVar1[2] = local_30;
      puVar1[3] = local_2c;
      puVar1[4] = local_28;
      puVar1[5] = local_24;
      puVar1[6] = 0;
      *(undefined4 **)(iVar2 + 0x38) = puVar6;
    }
    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;
    iVar5 = iVar7 * -0x6db6db6c;
    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {
      *(int *)(iVar2 + 0xc) = iVar5;
      *(undefined4 *)(iVar2 + 0x10) = 0;
      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;
      if ((local_28 & 0x10000000) != 0) {
        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;
      }
      if ((local_24 != -4) && (local_34 != 0)) {
        if (*(int *)(local_34 + 100) == 0) {
          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;
        }
        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;
      }
      *(int *)(param_1 + 0x48) = iVar4;
      return iVar4;
    }
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);
  }
                    /* WARNING: Subroutine does not return */
  FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00050b50
ADD EBX,0x520af7
SUB ESP,0x4c
MOV EBP,dword ptr [EAX + 0x48]
CMP EBP,-0x1
JZ 0x000c9528
ADD ESP,0x4c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [ESP + 0x60]
TEST ECX,ECX
MOV EBP,EDX
MOV dword ptr [ESP + 0x8],EAX
SETZ DL
MOV EDI,ECX
TEST ESI,ESI
SETZ AL
OR DL,AL
JNZ 0x000c97d3
TEST EBP,EBP
JZ 0x000c97d3
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,ECX
ADD EAX,0x2c
CALL 0x000b7950
MOV ECX,EDI
MOV EDX,EBP
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x8]
ADD EAX,0x14
CALL 0x000b11b0
MOV EDX,dword ptr [EAX + 0x64]
MOV EDI,EAX
TEST EDX,EDX
JZ 0x000c958c
MOV EAX,dword ptr [EAX + 0x30]
SUB EAX,dword ptr [EDI + 0x2c]
SAR EAX,0x4
LEA EDX,[EAX + 0x2]
CMP EDX,dword ptr [EDI + 0x68]
JA 0x000c96d0
MOV dword ptr [ESP + 0x24],0x0
SUB ESP,0xc
MOV dword ptr [ESP + 0x34],0x7ffffffe
MOV dword ptr [ESP + 0x20],0x0
MOV dword ptr [ESP + 0x24],0x7ffffffe
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
PUSH 0x7ffffffe
PUSH 0x0
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
PUSH 0x7ffffffe
PUSH 0x0
PUSH EDI
CALL 0x002e4830
ADD ESP,0x28
PUSH 0x0
MOV EBP,EAX
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH EAX
PUSH EDI
PUSH 0x44
PUSH 0x0
PUSH dword ptr [ESP + 0x88]
LEA EAX,[ESP + 0x50]
PUSH EAX
MOV dword ptr [ESP + 0x3c],EAX
CALL 0x002d70b0
MOV dword ptr [ESP + 0x6c],0x0
MOV EDX,dword ptr [ESI + 0x38]
ADD ESP,0x30
CMP EDX,dword ptr [ESI + 0x3c]
MOV EAX,dword ptr [ESP + 0xc]
JZ 0x000c9780
MOV EAX,dword ptr [ESP + 0x24]
ADD EDX,0x1c
MOV dword ptr [EDX + -0x1c],EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EDX + -0x18],EAX
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [EDX + -0x14],EAX
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [EDX + -0x10],EAX
MOV EAX,dword ptr [ESP + 0x34]
MOV dword ptr [EDX + -0xc],EAX
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [EDX + -0x8],EAX
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [EDX + -0x4],EAX
MOV dword ptr [ESI + 0x38],EDX
SUB EDX,dword ptr [ESI + 0x34]
SAR EDX,0x2
IMUL EAX,EDX,-0x49249249
XOR EDX,EDX
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[EAX + EAX*0x2]
SHL EAX,0x2
TEST byte ptr [ESI + 0x1c],0x2
JNZ 0x000c97ec
MOV dword ptr [ESI + 0xc],EAX
MOV dword ptr [ESI + 0x10],EDX
OR byte ptr [EDI + 0x1c],0x10
TEST byte ptr [ESP + 0x37],0x10
JNZ 0x000c96b0
CMP dword ptr [ESP + 0x38],-0x4
MOV EAX,dword ptr [ESP + 0x28]
JZ 0x000c969c
TEST EAX,EAX
JZ 0x000c969c
MOV ECX,dword ptr [EAX + 0x64]
TEST ECX,ECX
JZ 0x000c96c0
ADD ECX,0x1
MOV dword ptr [EAX + 0x64],ECX
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX + 0x48],EBP
ADD ESP,0x4c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD dword ptr [ESI + 0x2c],0x1
JMP 0x000c9680
MOV EDX,dword ptr [ESP + 0xc]
SUB EDX,0x1
MOV dword ptr [EAX + 0x60],EDX
JMP 0x000c9696
SUB ESP,0xc
MOV dword ptr [EDI + 0x68],EAX
LEA EBP,[EBX + 0xffe63414]
MOV dword ptr [EDI + 0x64],0x0
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x7ffffffe
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
PUSH 0x7ffffffe
PUSH 0x0
PUSH EDI
CALL 0x002e3e20
MOV dword ptr [ESP + 0x44],0x0
MOV dword ptr [ESP + 0x48],0x7ffffffe
ADD ESP,0x14
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
PUSH 0x7ffffffe
PUSH 0x0
PUSH EDI
CALL 0x002e3e20
MOV dword ptr [ESP + 0x44],0x0
MOV dword ptr [ESP + 0x48],0x7ffffffe
ADD ESP,0x14
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
PUSH 0x7ffffffe
PUSH 0x0
PUSH EDI
CALL 0x002e3e20
ADD ESP,0x1c
PUSH 0x0
PUSH EBP
PUSH dword ptr [EDI + 0x5c]
CALL 0x0034ef60
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000c97a0
MOV ECX,dword ptr [EDI + 0x68]
LEA EDX,[ECX*0x4 + 0x0]
MOV dword ptr [EAX + 0x30],EDX
JMP 0x000c958c
SUB ESP,0x4
PUSH EAX
LEA EAX,[ESI + 0x34]
PUSH EDX
PUSH EAX
CALL 0x000a9dd0
MOV EDX,dword ptr [ESI + 0x38]
ADD ESP,0x10
JMP 0x000c964d
SUB ESP,0x4
XOR EDX,EDX
PUSH 0x0
PUSH 0x0
PUSH 0x0
MOV EAX,dword ptr [EDI + 0x68]
PUSH 0x2
SHL EAX,0x2
PUSH 0x0
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EDX
PUSH EAX
PUSH EDI
PUSH 0x5
PUSH 0x0
PUSH EBP
PUSH dword ptr [EDI + 0x5c]
CALL 0x0034f750
ADD ESP,0x40
JMP 0x000c958c
LEA EAX,[EBX + 0xffe7a4b4]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xffe7c4c8]
PUSH 0x190a
PUSH EAX
CALL 0x002446e0
PUSH EAX
LEA EAX,[EBX + 0xffe7b4e0]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0x231
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_000c9500(int param_1,int param_2,int param_3,int param_4)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  int local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xc9509;\n  if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }\n  if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);\n}\n\n" comment (function_definition "int __regparm3 FUN_000c9500(int param_1,int param_2,int param_3,int param_4)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  int local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xc9509;\n  if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }\n  if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000c9500(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  int local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xc9509;\n  if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }\n  if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xc9509;" (assignment_expression "uStack_14 = 0xc9509" identifier = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x48) != -1)" ( (binary_expression "*(int *)(param_1 + 0x48) != -1" (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return *(int *)(param_1 + 0x48);\n  }" { (return_statement "return *(int *)(param_1 + 0x48);" return (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) ;) })) (if_statement "if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }" if (parenthesized_expression "((param_3 != 0 && param_4 != 0) && (param_2 != 0))" ( (binary_expression "(param_3 != 0 && param_4 != 0) && (param_2 != 0)" (parenthesized_expression "(param_3 != 0 && param_4 != 0)" ( (binary_expression "param_3 != 0 && param_4 != 0" (binary_expression "param_3 != 0" identifier != number_literal) && (binary_expression "param_4 != 0" identifier != number_literal)) )) && (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }" { (expression_statement "iVar2 = FUN_000b7950();" (assignment_expression "iVar2 = FUN_000b7950()" identifier = (call_expression "FUN_000b7950()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = FUN_000b11b0();" (assignment_expression "iVar3 = FUN_000b11b0()" identifier = (call_expression "FUN_000b11b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }" if (parenthesized_expression "((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U))" ( (binary_expression "(*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)" (parenthesized_expression "(*(int *)(iVar3 + 100) != 0)" ( (binary_expression "*(int *)(iVar3 + 100) != 0" (pointer_expression "*(int *)(iVar3 + 100)" * (cast_expression "(int *)(iVar3 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 100)" ( (binary_expression "iVar3 + 100" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)" ( (comma_expression "iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4" identifier = (binary_expression "*(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4" (binary_expression "*(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c)" (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) ))))) >> number_literal)) , (binary_expression "*(uint *)(iVar3 + 0x68) < iVar4 + 2U" (pointer_expression "*(uint *)(iVar3 + 0x68)" * (cast_expression "(uint *)(iVar3 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) < (binary_expression "iVar4 + 2U" identifier + number_literal))) ))) )) (compound_statement "{\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }" { (expression_statement "*(int *)(iVar3 + 0x68) = iVar4;" (assignment_expression "*(int *)(iVar3 + 0x68) = iVar4" (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 "*(undefined4 *)(iVar3 + 100) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 100) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 100)" * (cast_expression "(undefined4 *)(iVar3 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 100)" ( (binary_expression "iVar3 + 100" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" identifier = number_literal) ;) (expression_statement "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);" (call_expression "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c)" identifier (argument_list "(iVar3,0,0x7ffffffe,local_30,local_2c)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" identifier = number_literal) ;) (expression_statement "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);" (call_expression "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c)" identifier (argument_list "(iVar3,0,0x7ffffffe,local_30,local_2c)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" identifier = number_literal) ;) (expression_statement "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);" (call_expression "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c)" identifier (argument_list "(iVar3,0,0x7ffffffe,local_30,local_2c)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);" (assignment_expression "iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0)" identifier = (call_expression "FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x5c)" * (cast_expression "(undefined4 *)(iVar3 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) )))) , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }" { (expression_statement "FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);" (call_expression "FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x5c)" * (cast_expression "(undefined4 *)(iVar3 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) )))) , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal , number_literal , identifier , (binary_expression "*(int *)(iVar3 + 0x68) << 2" (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) )))) << number_literal) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }" else (compound_statement "{\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }" { (expression_statement "*(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;" (assignment_expression "*(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4" (pointer_expression "*(int *)(iVar4 + 0x30)" * (cast_expression "(int *)(iVar4 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar3 + 0x68) * 4" (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) )))) * number_literal)) ;) }))) })) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" identifier = number_literal) ;) (expression_statement "iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);" (assignment_expression "iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c)" identifier = (call_expression "FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c)" identifier (argument_list "(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c)" ( identifier , number_literal , number_literal , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);" (call_expression "FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0)" identifier (argument_list "(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0)" ( (pointer_expression "&local_38" & identifier) , identifier , number_literal , number_literal , identifier , identifier , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "puVar1 = *(undefined4 **)(iVar2 + 0x38);" (assignment_expression "puVar1 = *(undefined4 **)(iVar2 + 0x38)" identifier = (pointer_expression "*(undefined4 **)(iVar2 + 0x38)" * (cast_expression "(undefined4 **)(iVar2 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }" if (parenthesized_expression "(puVar1 == *(undefined4 **)(iVar2 + 0x3c))" ( (binary_expression "puVar1 == *(undefined4 **)(iVar2 + 0x3c)" identifier == (pointer_expression "*(undefined4 **)(iVar2 + 0x3c)" * (cast_expression "(undefined4 **)(iVar2 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) ))))) )) (compound_statement "{\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }" { (expression_statement "FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);" (call_expression "FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38)" identifier (argument_list "(iVar2 + 0x34,puVar1,&local_38)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "puVar6 = *(undefined4 **)(iVar2 + 0x38);" (assignment_expression "puVar6 = *(undefined4 **)(iVar2 + 0x38)" identifier = (pointer_expression "*(undefined4 **)(iVar2 + 0x38)" * (cast_expression "(undefined4 **)(iVar2 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }" else (compound_statement "{\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }" { (expression_statement "puVar6 = puVar1 + 7;" (assignment_expression "puVar6 = puVar1 + 7" identifier = (binary_expression "puVar1 + 7" identifier + number_literal)) ;) (expression_statement "*puVar1 = local_38;" (assignment_expression "*puVar1 = local_38" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = local_34;" (assignment_expression "puVar1[1] = local_34" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = local_30;" (assignment_expression "puVar1[2] = local_30" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = local_2c;" (assignment_expression "puVar1[3] = local_2c" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[4] = local_28;" (assignment_expression "puVar1[4] = local_28" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[5] = local_24;" (assignment_expression "puVar1[5] = local_24" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar2 + 0x38) = puVar6;" (assignment_expression "*(undefined4 **)(iVar2 + 0x38) = puVar6" (pointer_expression "*(undefined4 **)(iVar2 + 0x38)" * (cast_expression "(undefined4 **)(iVar2 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;" (assignment_expression "iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2" identifier = (binary_expression "(int)puVar6 - *(int *)(iVar2 + 0x34) >> 2" (binary_expression "(int)puVar6 - *(int *)(iVar2 + 0x34)" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) ))))) >> number_literal)) ;) (expression_statement "iVar5 = iVar7 * -0x6db6db6c;" (assignment_expression "iVar5 = iVar7 * -0x6db6db6c" identifier = (binary_expression "iVar7 * -0x6db6db6c" identifier * number_literal)) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }" { (expression_statement "*(int *)(iVar2 + 0xc) = iVar5;" (assignment_expression "*(int *)(iVar2 + 0xc) = iVar5" (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;" (assignment_expression "*(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10" (pointer_expression "*(byte *)(iVar3 + 0x1c)" * (cast_expression "(byte *)(iVar3 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar3 + 0x1c) | 0x10" (pointer_expression "*(byte *)(iVar3 + 0x1c)" * (cast_expression "(byte *)(iVar3 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }" if (parenthesized_expression "((local_28 & 0x10000000) != 0)" ( (binary_expression "(local_28 & 0x10000000) != 0" (parenthesized_expression "(local_28 & 0x10000000)" ( (binary_expression "local_28 & 0x10000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }" { (expression_statement "*(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;" (assignment_expression "*(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar2 + 0x2c) + 1" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }" if (parenthesized_expression "((local_24 != -4) && (local_34 != 0))" ( (binary_expression "(local_24 != -4) && (local_34 != 0)" (parenthesized_expression "(local_24 != -4)" ( (binary_expression "local_24 != -4" identifier != number_literal) )) && (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }" { (if_statement "if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }" if (parenthesized_expression "(*(int *)(local_34 + 100) == 0)" ( (binary_expression "*(int *)(local_34 + 100) == 0" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }" { (expression_statement "*(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1" (pointer_expression "*(int *)(local_34 + 0x60)" * (cast_expression "(int *)(local_34 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x60)" ( (binary_expression "local_34 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar7 * -0x49249249 + -1" (binary_expression "iVar7 * -0x49249249" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;" (assignment_expression "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "*(int *)(param_1 + 0x48) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x48) = iVar4" (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = identifier) ;) (return_statement "return iVar4;" return identifier ;) })) comment (expression_statement "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);" (call_expression "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5)" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") , identifier ))) ;) })) comment (expression_statement "FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);" (call_expression "FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3)" identifier (argument_list "("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3)" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""tlsld_got_offset"" " string_content ") , identifier ))) ;) })))
(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: uint tlsld_got_offset(Target_powerpc<32,_true> * this, Symbol_table *\n   symtab, Layout * layout, Sized_relobj_file<32,_true> * object) */\n\nuint __thiscall\nanon_unknown.dwarf_6462d4::Target_powerpc<32,_true>::tlsld_got_offset\n          (Target_powerpc<32,_true> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object)\n\n{\n}\n\n" comment comment comment (ERROR "uint __thiscall\nanon_unknown.dwarf_6462d4::Target_powerpc<32,_true>::tlsld_got_offset\n          (Target_powerpc<32,_true> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object)" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_6462d4::" identifier . identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::" identifier > : :) (function_declarator "tlsld_got_offset\n          (Target_powerpc<32,_true> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object)" identifier (parameter_list "(Target_powerpc<32,_true> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<32,_true> *object)" ( (parameter_declaration "Target_powerpc" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *object" type_identifier (ERROR ">" >) (pointer_declarator "*object" * identifier)) )))) (compound_statement "{\n}" { }))
(translation_unit "int __regparm3 FUN_000c9500(int param_1,int param_2,int param_3,int param_4)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  int local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xc9509;\n  if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }\n  if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    \n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }\n                    \n  FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);\n}\n\n" (function_definition "int __regparm3 FUN_000c9500(int param_1,int param_2,int param_3,int param_4)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  int local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xc9509;\n  if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }\n  if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    \n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }\n                    \n  FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000c9500(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  int local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xc9509;\n  if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }\n  if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    \n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }\n                    \n  FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xc9509;" (assignment_expression "uStack_14 = 0xc9509" identifier = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x48) != -1)" ( (binary_expression "*(int *)(param_1 + 0x48) != -1" (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return *(int *)(param_1 + 0x48);\n  }" { (return_statement "return *(int *)(param_1 + 0x48);" return (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) ;) })) (if_statement "if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    \n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }" if (parenthesized_expression "((param_3 != 0 && param_4 != 0) && (param_2 != 0))" ( (binary_expression "(param_3 != 0 && param_4 != 0) && (param_2 != 0)" (parenthesized_expression "(param_3 != 0 && param_4 != 0)" ( (binary_expression "param_3 != 0 && param_4 != 0" (binary_expression "param_3 != 0" identifier != number_literal) && (binary_expression "param_4 != 0" identifier != number_literal)) )) && (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    \n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }" { (expression_statement "iVar2 = FUN_000b7950();" (assignment_expression "iVar2 = FUN_000b7950()" identifier = (call_expression "FUN_000b7950()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = FUN_000b11b0();" (assignment_expression "iVar3 = FUN_000b11b0()" identifier = (call_expression "FUN_000b11b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }" if (parenthesized_expression "((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U))" ( (binary_expression "(*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)" (parenthesized_expression "(*(int *)(iVar3 + 100) != 0)" ( (binary_expression "*(int *)(iVar3 + 100) != 0" (pointer_expression "*(int *)(iVar3 + 100)" * (cast_expression "(int *)(iVar3 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 100)" ( (binary_expression "iVar3 + 100" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)" ( (comma_expression "iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4" identifier = (binary_expression "*(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4" (binary_expression "*(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c)" (pointer_expression "*(int *)(iVar3 + 0x30)" * (cast_expression "(int *)(iVar3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) ))))) >> number_literal)) , (binary_expression "*(uint *)(iVar3 + 0x68) < iVar4 + 2U" (pointer_expression "*(uint *)(iVar3 + 0x68)" * (cast_expression "(uint *)(iVar3 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) < (binary_expression "iVar4 + 2U" identifier + number_literal))) ))) )) (compound_statement "{\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }" { (expression_statement "*(int *)(iVar3 + 0x68) = iVar4;" (assignment_expression "*(int *)(iVar3 + 0x68) = iVar4" (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 "*(undefined4 *)(iVar3 + 100) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 100) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 100)" * (cast_expression "(undefined4 *)(iVar3 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 100)" ( (binary_expression "iVar3 + 100" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" identifier = number_literal) ;) (expression_statement "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);" (call_expression "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c)" identifier (argument_list "(iVar3,0,0x7ffffffe,local_30,local_2c)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" identifier = number_literal) ;) (expression_statement "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);" (call_expression "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c)" identifier (argument_list "(iVar3,0,0x7ffffffe,local_30,local_2c)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" identifier = number_literal) ;) (expression_statement "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);" (call_expression "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c)" identifier (argument_list "(iVar3,0,0x7ffffffe,local_30,local_2c)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);" (assignment_expression "iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0)" identifier = (call_expression "FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x5c)" * (cast_expression "(undefined4 *)(iVar3 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) )))) , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }" { (expression_statement "FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);" (call_expression "FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0)" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0)" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x5c)" * (cast_expression "(undefined4 *)(iVar3 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) )))) , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal , number_literal , identifier , (binary_expression "*(int *)(iVar3 + 0x68) << 2" (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) )))) << number_literal) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }" else (compound_statement "{\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }" { (expression_statement "*(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;" (assignment_expression "*(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4" (pointer_expression "*(int *)(iVar4 + 0x30)" * (cast_expression "(int *)(iVar4 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar3 + 0x68) * 4" (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) )))) * number_literal)) ;) }))) })) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" identifier = number_literal) ;) (expression_statement "iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);" (assignment_expression "iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c)" identifier = (call_expression "FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c)" identifier (argument_list "(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c)" ( identifier , number_literal , number_literal , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);" (call_expression "FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0)" identifier (argument_list "(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0)" ( (pointer_expression "&local_38" & identifier) , identifier , number_literal , number_literal , identifier , identifier , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "puVar1 = *(undefined4 **)(iVar2 + 0x38);" (assignment_expression "puVar1 = *(undefined4 **)(iVar2 + 0x38)" identifier = (pointer_expression "*(undefined4 **)(iVar2 + 0x38)" * (cast_expression "(undefined4 **)(iVar2 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }" if (parenthesized_expression "(puVar1 == *(undefined4 **)(iVar2 + 0x3c))" ( (binary_expression "puVar1 == *(undefined4 **)(iVar2 + 0x3c)" identifier == (pointer_expression "*(undefined4 **)(iVar2 + 0x3c)" * (cast_expression "(undefined4 **)(iVar2 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) ))))) )) (compound_statement "{\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }" { (expression_statement "FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);" (call_expression "FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38)" identifier (argument_list "(iVar2 + 0x34,puVar1,&local_38)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "puVar6 = *(undefined4 **)(iVar2 + 0x38);" (assignment_expression "puVar6 = *(undefined4 **)(iVar2 + 0x38)" identifier = (pointer_expression "*(undefined4 **)(iVar2 + 0x38)" * (cast_expression "(undefined4 **)(iVar2 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }" else (compound_statement "{\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }" { (expression_statement "puVar6 = puVar1 + 7;" (assignment_expression "puVar6 = puVar1 + 7" identifier = (binary_expression "puVar1 + 7" identifier + number_literal)) ;) (expression_statement "*puVar1 = local_38;" (assignment_expression "*puVar1 = local_38" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = local_34;" (assignment_expression "puVar1[1] = local_34" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = local_30;" (assignment_expression "puVar1[2] = local_30" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = local_2c;" (assignment_expression "puVar1[3] = local_2c" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[4] = local_28;" (assignment_expression "puVar1[4] = local_28" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[5] = local_24;" (assignment_expression "puVar1[5] = local_24" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar2 + 0x38) = puVar6;" (assignment_expression "*(undefined4 **)(iVar2 + 0x38) = puVar6" (pointer_expression "*(undefined4 **)(iVar2 + 0x38)" * (cast_expression "(undefined4 **)(iVar2 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;" (assignment_expression "iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2" identifier = (binary_expression "(int)puVar6 - *(int *)(iVar2 + 0x34) >> 2" (binary_expression "(int)puVar6 - *(int *)(iVar2 + 0x34)" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar2 + 0x34)" * (cast_expression "(int *)(iVar2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) ))))) >> number_literal)) ;) (expression_statement "iVar5 = iVar7 * -0x6db6db6c;" (assignment_expression "iVar5 = iVar7 * -0x6db6db6c" identifier = (binary_expression "iVar7 * -0x6db6db6c" identifier * number_literal)) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }" if (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar2 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar2 + 0x1c)" * (cast_expression "(byte *)(iVar2 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }" { (expression_statement "*(int *)(iVar2 + 0xc) = iVar5;" (assignment_expression "*(int *)(iVar2 + 0xc) = iVar5" (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;" (assignment_expression "*(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10" (pointer_expression "*(byte *)(iVar3 + 0x1c)" * (cast_expression "(byte *)(iVar3 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar3 + 0x1c) | 0x10" (pointer_expression "*(byte *)(iVar3 + 0x1c)" * (cast_expression "(byte *)(iVar3 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }" if (parenthesized_expression "((local_28 & 0x10000000) != 0)" ( (binary_expression "(local_28 & 0x10000000) != 0" (parenthesized_expression "(local_28 & 0x10000000)" ( (binary_expression "local_28 & 0x10000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }" { (expression_statement "*(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;" (assignment_expression "*(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar2 + 0x2c) + 1" (pointer_expression "*(int *)(iVar2 + 0x2c)" * (cast_expression "(int *)(iVar2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }" if (parenthesized_expression "((local_24 != -4) && (local_34 != 0))" ( (binary_expression "(local_24 != -4) && (local_34 != 0)" (parenthesized_expression "(local_24 != -4)" ( (binary_expression "local_24 != -4" identifier != number_literal) )) && (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }" { (if_statement "if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }" if (parenthesized_expression "(*(int *)(local_34 + 100) == 0)" ( (binary_expression "*(int *)(local_34 + 100) == 0" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }" { (expression_statement "*(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1" (pointer_expression "*(int *)(local_34 + 0x60)" * (cast_expression "(int *)(local_34 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x60)" ( (binary_expression "local_34 + 0x60" identifier + number_literal) )))) = (binary_expression "iVar7 * -0x49249249 + -1" (binary_expression "iVar7 * -0x49249249" identifier * number_literal) + number_literal)) ;) })) (expression_statement "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;" (assignment_expression "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) = (binary_expression "*(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" * (cast_expression "(int *)(local_34 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 100)" ( (binary_expression "local_34 + 100" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "*(int *)(param_1 + 0x48) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x48) = iVar4" (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = identifier) ;) (return_statement "return iVar4;" return identifier ;) })) (expression_statement "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);" (call_expression "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5)" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);" (call_expression "FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3)" identifier (argument_list "("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3)" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""tlsld_got_offset"" " string_content ") , identifier ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression IDENT + LIT))) ))) )) (compound_statement { (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 (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 = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , LIT , LIT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))) ;) }) (else_clause else (compound_statement { (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 IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT , IDENT , LIT , LIT , IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , LIT , LIT , IDENT , IDENT , LIT , LIT , LIT , 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 { (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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (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)) ;) (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) )) == LIT) )) (compound_statement { (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 (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) )))) = (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (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)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (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 { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_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) )))) = (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) )))) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "int __regparm3 FUN_000c9500(int param_1,int param_2,int param_3,int param_4)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  int local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xc9509;\n  if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }\n  if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    \n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }\n                    \n  FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000c9500(int param_1,int param_2,int param_3,int param_4)" (identifier "FUN_000c9500") (parameter_list "(int param_1,int param_2,int param_3,int param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  int local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xc9509;\n  if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }\n  if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    \n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }\n                    \n  FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (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 "uStack_14 = 0xc9509;" (assignment_expression "uStack_14 = 0xc9509" (identifier "uStack_14") (= "=") (number_literal "0xc9509")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x48) != -1) {\n    return *(int *)(param_1 + 0x48);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x48) != -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x48) != -1" (pointer_expression "*(int *)(param_1 + 0x48)" (* "*") (cast_expression "(int *)(param_1 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    return *(int *)(param_1 + 0x48);\n  }" ({ "{") (return_statement "return *(int *)(param_1 + 0x48);" (return "return") (pointer_expression "*(int *)(param_1 + 0x48)" (* "*") (cast_expression "(int *)(param_1 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (} "}"))) (if_statement "if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    \n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }" (if "if") (parenthesized_expression "((param_3 != 0 && param_4 != 0) && (param_2 != 0))" (( "(") (binary_expression "(param_3 != 0 && param_4 != 0) && (param_2 != 0)" (parenthesized_expression "(param_3 != 0 && param_4 != 0)" (( "(") (binary_expression "param_3 != 0 && param_4 != 0" (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) (&& "&&") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar2 = FUN_000b7950();\n    iVar3 = FUN_000b11b0();\n    if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }\n    local_38 = 0;\n    local_34 = 0x7ffffffe;\n    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);\n    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);\n    local_20 = 0;\n    puVar1 = *(undefined4 **)(iVar2 + 0x38);\n    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }\n    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;\n    iVar5 = iVar7 * -0x6db6db6c;\n    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }\n                    \n    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);\n  }" ({ "{") (expression_statement "iVar2 = FUN_000b7950();" (assignment_expression "iVar2 = FUN_000b7950()" (identifier "iVar2") (= "=") (call_expression "FUN_000b7950()" (identifier "FUN_000b7950") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = FUN_000b11b0();" (assignment_expression "iVar3 = FUN_000b11b0()" (identifier "iVar3") (= "=") (call_expression "FUN_000b11b0()" (identifier "FUN_000b11b0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U))" (( "(") (binary_expression "(*(int *)(iVar3 + 100) != 0) &&\n       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)" (parenthesized_expression "(*(int *)(iVar3 + 100) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 100) != 0" (pointer_expression "*(int *)(iVar3 + 100)" (* "*") (cast_expression "(int *)(iVar3 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 100)" (( "(") (binary_expression "iVar3 + 100" (identifier "iVar3") (+ "+") (number_literal "100")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)" (( "(") (comma_expression "iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,\n       *(uint *)(iVar3 + 0x68) < iVar4 + 2U" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4" (identifier "iVar4") (= "=") (binary_expression "*(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4" (binary_expression "*(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c)" (pointer_expression "*(int *)(iVar3 + 0x30)" (* "*") (cast_expression "(int *)(iVar3 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar3 + 0x2c)" (* "*") (cast_expression "(int *)(iVar3 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")"))))) (>> ">>") (number_literal "4"))) (, ",") (binary_expression "*(uint *)(iVar3 + 0x68) < iVar4 + 2U" (pointer_expression "*(uint *)(iVar3 + 0x68)" (* "*") (cast_expression "(uint *)(iVar3 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x68)" (( "(") (binary_expression "iVar3 + 0x68" (identifier "iVar3") (+ "+") (number_literal "0x68")) () ")")))) (< "<") (binary_expression "iVar4 + 2U" (identifier "iVar4") (+ "+") (number_literal "2U")))) () ")"))) () ")")) (compound_statement "{\n      *(int *)(iVar3 + 0x68) = iVar4;\n      *(undefined4 *)(iVar3 + 100) = 0;\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      local_38 = 0;\n      local_34 = 0x7ffffffe;\n      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);\n      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);\n      if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }\n    }" ({ "{") (expression_statement "*(int *)(iVar3 + 0x68) = iVar4;" (assignment_expression "*(int *)(iVar3 + 0x68) = iVar4" (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 "iVar4")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 100) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 100) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 100)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 100)" (( "(") (binary_expression "iVar3 + 100" (identifier "iVar3") (+ "+") (number_literal "100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" (identifier "local_34") (= "=") (number_literal "0x7ffffffe")) (; ";")) (expression_statement "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);" (call_expression "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c)" (identifier "FUN_002e3e20") (argument_list "(iVar3,0,0x7ffffffe,local_30,local_2c)" (( "(") (identifier "iVar3") (, ",") (number_literal "0") (, ",") (number_literal "0x7ffffffe") (, ",") (identifier "local_30") (, ",") (identifier "local_2c") () ")"))) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" (identifier "local_34") (= "=") (number_literal "0x7ffffffe")) (; ";")) (expression_statement "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);" (call_expression "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c)" (identifier "FUN_002e3e20") (argument_list "(iVar3,0,0x7ffffffe,local_30,local_2c)" (( "(") (identifier "iVar3") (, ",") (number_literal "0") (, ",") (number_literal "0x7ffffffe") (, ",") (identifier "local_30") (, ",") (identifier "local_2c") () ")"))) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" (identifier "local_34") (= "=") (number_literal "0x7ffffffe")) (; ";")) (expression_statement "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);" (call_expression "FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c)" (identifier "FUN_002e3e20") (argument_list "(iVar3,0,0x7ffffffe,local_30,local_2c)" (( "(") (identifier "iVar3") (, ",") (number_literal "0") (, ",") (number_literal "0x7ffffffe") (, ",") (identifier "local_30") (, ",") (identifier "local_2c") () ")"))) (; ";")) (expression_statement "iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);" (assignment_expression "iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0)" (identifier "iVar4") (= "=") (call_expression "FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0)" (identifier "FUN_0034ef60") (argument_list "(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x5c)" (( "(") (binary_expression "iVar3 + 0x5c" (identifier "iVar3") (+ "+") (number_literal "0x5c")) () ")")))) (, ",") (string_literal ""_GLOBAL_OFFSET_TABLE_"" (" """) (string_content "_GLOBAL_OFFSET_TABLE_") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }\n      else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);\n      }" ({ "{") (expression_statement "FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);" (call_expression "FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0)" (identifier "FUN_0034f750") (argument_list "(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,\n                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x5c)" (( "(") (binary_expression "iVar3 + 0x5c" (identifier "iVar3") (+ "+") (number_literal "0x5c")) () ")")))) (, ",") (string_literal ""_GLOBAL_OFFSET_TABLE_"" (" """) (string_content "_GLOBAL_OFFSET_TABLE_") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "5") (, ",") (identifier "iVar3") (, ",") (binary_expression "*(int *)(iVar3 + 0x68) << 2" (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")) () ")")))) (<< "<<") (number_literal "2")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }" (else "else") (compound_statement "{\n        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;\n      }" ({ "{") (expression_statement "*(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;" (assignment_expression "*(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4" (pointer_expression "*(int *)(iVar4 + 0x30)" (* "*") (cast_expression "(int *)(iVar4 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x30)" (( "(") (binary_expression "iVar4 + 0x30" (identifier "iVar4") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "*(int *)(iVar3 + 0x68) * 4" (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")) () ")")))) (* "*") (number_literal "4"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = 0x7ffffffe;" (assignment_expression "local_34 = 0x7ffffffe" (identifier "local_34") (= "=") (number_literal "0x7ffffffe")) (; ";")) (expression_statement "iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);" (assignment_expression "iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c)" (identifier "iVar4") (= "=") (call_expression "FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c)" (identifier "FUN_002e4830") (argument_list "(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c)" (( "(") (identifier "iVar3") (, ",") (number_literal "0") (, ",") (number_literal "0x7ffffffe") (, ",") (identifier "local_40") (, ",") (identifier "local_3c") (, ",") (number_literal "0") (, ",") (number_literal "0x7ffffffe") (, ",") (identifier "local_30") (, ",") (identifier "local_2c") () ")")))) (; ";")) (expression_statement "FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);" (call_expression "FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0)" (identifier "FUN_002d70b0") (argument_list "(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (number_literal "0x44") (, ",") (identifier "iVar3") (, ",") (identifier "iVar4") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1 = *(undefined4 **)(iVar2 + 0x38);" (assignment_expression "puVar1 = *(undefined4 **)(iVar2 + 0x38)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(iVar2 + 0x38)" (* "*") (cast_expression "(undefined4 **)(iVar2 + 0x38)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }\n    else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }" (if "if") (parenthesized_expression "(puVar1 == *(undefined4 **)(iVar2 + 0x3c))" (( "(") (binary_expression "puVar1 == *(undefined4 **)(iVar2 + 0x3c)" (identifier "puVar1") (== "==") (pointer_expression "*(undefined4 **)(iVar2 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(iVar2 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x3c)" (( "(") (binary_expression "iVar2 + 0x3c" (identifier "iVar2") (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (compound_statement "{\n      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);\n      puVar6 = *(undefined4 **)(iVar2 + 0x38);\n    }" ({ "{") (expression_statement "FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);" (call_expression "FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38)" (identifier "FUN_000a9dd0") (argument_list "(iVar2 + 0x34,puVar1,&local_38)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) (, ",") (identifier "puVar1") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (expression_statement "puVar6 = *(undefined4 **)(iVar2 + 0x38);" (assignment_expression "puVar6 = *(undefined4 **)(iVar2 + 0x38)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(iVar2 + 0x38)" (* "*") (cast_expression "(undefined4 **)(iVar2 + 0x38)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }" (else "else") (compound_statement "{\n      puVar6 = puVar1 + 7;\n      *puVar1 = local_38;\n      puVar1[1] = local_34;\n      puVar1[2] = local_30;\n      puVar1[3] = local_2c;\n      puVar1[4] = local_28;\n      puVar1[5] = local_24;\n      puVar1[6] = 0;\n      *(undefined4 **)(iVar2 + 0x38) = puVar6;\n    }" ({ "{") (expression_statement "puVar6 = puVar1 + 7;" (assignment_expression "puVar6 = puVar1 + 7" (identifier "puVar6") (= "=") (binary_expression "puVar1 + 7" (identifier "puVar1") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "*puVar1 = local_38;" (assignment_expression "*puVar1 = local_38" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "puVar1[1] = local_34;" (assignment_expression "puVar1[1] = local_34" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar1[2] = local_30;" (assignment_expression "puVar1[2] = local_30" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "puVar1[3] = local_2c;" (assignment_expression "puVar1[3] = local_2c" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar1[4] = local_28;" (assignment_expression "puVar1[4] = local_28" (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "puVar1[5] = local_24;" (assignment_expression "puVar1[5] = local_24" (subscript_expression "puVar1[5]" (identifier "puVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" (identifier "puVar1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(iVar2 + 0x38) = puVar6;" (assignment_expression "*(undefined4 **)(iVar2 + 0x38) = puVar6" (pointer_expression "*(undefined4 **)(iVar2 + 0x38)" (* "*") (cast_expression "(undefined4 **)(iVar2 + 0x38)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (} "}")))) (expression_statement "iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;" (assignment_expression "iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2" (identifier "iVar7") (= "=") (binary_expression "(int)puVar6 - *(int *)(iVar2 + 0x34) >> 2" (binary_expression "(int)puVar6 - *(int *)(iVar2 + 0x34)" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (- "-") (pointer_expression "*(int *)(iVar2 + 0x34)" (* "*") (cast_expression "(int *)(iVar2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")"))))) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "iVar5 = iVar7 * -0x6db6db6c;" (assignment_expression "iVar5 = iVar7 * -0x6db6db6c" (identifier "iVar5") (= "=") (binary_expression "iVar7 * -0x6db6db6c" (identifier "iVar7") (* "*") (number_literal "-0x6db6db6c"))) (; ";")) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar2 + 0x1c) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x1c) & 2)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar2 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar2 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(iVar2 + 0xc) = iVar5;\n      *(undefined4 *)(iVar2 + 0x10) = 0;\n      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;\n      if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }\n      if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }\n      *(int *)(param_1 + 0x48) = iVar4;\n      return iVar4;\n    }" ({ "{") (expression_statement "*(int *)(iVar2 + 0xc) = iVar5;" (assignment_expression "*(int *)(iVar2 + 0xc) = iVar5" (pointer_expression "*(int *)(iVar2 + 0xc)" (* "*") (cast_expression "(int *)(iVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;" (assignment_expression "*(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10" (pointer_expression "*(byte *)(iVar3 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar3 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar3 + 0x1c) | 0x10" (pointer_expression "*(byte *)(iVar3 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar3 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (| "|") (number_literal "0x10"))) (; ";")) (if_statement "if ((local_28 & 0x10000000) != 0) {\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }" (if "if") (parenthesized_expression "((local_28 & 0x10000000) != 0)" (( "(") (binary_expression "(local_28 & 0x10000000) != 0" (parenthesized_expression "(local_28 & 0x10000000)" (( "(") (binary_expression "local_28 & 0x10000000" (identifier "local_28") (& "&") (number_literal "0x10000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;\n      }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;" (assignment_expression "*(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1" (pointer_expression "*(int *)(iVar2 + 0x2c)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(int *)(iVar2 + 0x2c) + 1" (pointer_expression "*(int *)(iVar2 + 0x2c)" (* "*") (cast_expression "(int *)(iVar2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((local_24 != -4) && (local_34 != 0)) {\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }" (if "if") (parenthesized_expression "((local_24 != -4) && (local_34 != 0))" (( "(") (binary_expression "(local_24 != -4) && (local_34 != 0)" (parenthesized_expression "(local_24 != -4)" (( "(") (binary_expression "local_24 != -4" (identifier "local_24") (!= "!=") (number_literal "-4")) () ")")) (&& "&&") (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }\n        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;\n      }" ({ "{") (if_statement "if (*(int *)(local_34 + 100) == 0) {\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }" (if "if") (parenthesized_expression "(*(int *)(local_34 + 100) == 0)" (( "(") (binary_expression "*(int *)(local_34 + 100) == 0" (pointer_expression "*(int *)(local_34 + 100)" (* "*") (cast_expression "(int *)(local_34 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 100)" (( "(") (binary_expression "local_34 + 100" (identifier "local_34") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;\n        }" ({ "{") (expression_statement "*(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;" (assignment_expression "*(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1" (pointer_expression "*(int *)(local_34 + 0x60)" (* "*") (cast_expression "(int *)(local_34 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 0x60)" (( "(") (binary_expression "local_34 + 0x60" (identifier "local_34") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (binary_expression "iVar7 * -0x49249249 + -1" (binary_expression "iVar7 * -0x49249249" (identifier "iVar7") (* "*") (number_literal "-0x49249249")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;" (assignment_expression "*(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" (* "*") (cast_expression "(int *)(local_34 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 100)" (( "(") (binary_expression "local_34 + 100" (identifier "local_34") (+ "+") (number_literal "100")) () ")")))) (= "=") (binary_expression "*(int *)(local_34 + 100) + 1" (pointer_expression "*(int *)(local_34 + 100)" (* "*") (cast_expression "(int *)(local_34 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 100)" (( "(") (binary_expression "local_34 + 100" (identifier "local_34") (+ "+") (number_literal "100")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(int *)(param_1 + 0x48) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x48) = iVar4" (pointer_expression "*(int *)(param_1 + 0x48)" (* "*") (cast_expression "(int *)(param_1 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (expression_statement "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);" (call_expression "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5)" (identifier "FUN_002446e0") (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x231") (, ",") (string_literal ""set_current_data_size_for_child"" (" """) (string_content "set_current_data_size_for_child") (" """)) (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);" (call_expression "FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3)" (identifier "FUN_002446e0") (argument_list "("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3)" (( "(") (string_literal ""../../gold/powerpc.cc"" (" """) (string_content "../../gold/powerpc.cc") (" """)) (, ",") (number_literal "0x190a") (, ",") (string_literal ""tlsld_got_offset"" (" """) (string_content "tlsld_got_offset") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")))

/* 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: uint tlsld_got_offset(Target_powerpc<32,_true> * this, Symbol_table *
   symtab, Layout * layout, Sized_relobj_file<32,_true> * object) */

uint __thiscall
anon_unknown.dwarf_6462d4::Target_powerpc<32,_true>::tlsld_got_offset
          (Target_powerpc<32,_true> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<32,_true> *object)

{
}


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

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

int __regparm3 MASKED(int param_1,int param_2,int param_3,int param_4)

{
  undefined4 *puVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  int local_34;
  undefined4 local_30;
  undefined4 local_2c;
  uint local_28;
  int local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xc9509;
  if (*(int *)(param_1 + 0x48) != -1) {
    return *(int *)(param_1 + 0x48);
  }
  if ((param_3 != 0 && param_4 != 0) && (param_2 != 0)) {
    iVar2 = FUN_000b7950();
    iVar3 = FUN_000b11b0();
    if ((*(int *)(iVar3 + 100) != 0) &&
       (iVar4 = *(int *)(iVar3 + 0x30) - *(int *)(iVar3 + 0x2c) >> 4,
       *(uint *)(iVar3 + 0x68) < iVar4 + 2U)) {
      *(int *)(iVar3 + 0x68) = iVar4;
      *(undefined4 *)(iVar3 + 100) = 0;
      local_38 = 0;
      local_34 = 0x7ffffffe;
      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);
      local_38 = 0;
      local_34 = 0x7ffffffe;
      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);
      local_38 = 0;
      local_34 = 0x7ffffffe;
      FUN_002e3e20(iVar3,0,0x7ffffffe,local_30,local_2c);
      iVar4 = FUN_0034ef60(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0);
      if (iVar4 == 0) {
        FUN_0034f750(*(undefined4 *)(iVar3 + 0x5c),"_GLOBAL_OFFSET_TABLE_",0,5,iVar3,
                     *(int *)(iVar3 + 0x68) << 2,0,0,0,1,0,2,0,0,0);
      }
      else {
        *(int *)(iVar4 + 0x30) = *(int *)(iVar3 + 0x68) * 4;
      }
    }
    local_38 = 0;
    local_34 = 0x7ffffffe;
    iVar4 = FUN_002e4830(iVar3,0,0x7ffffffe,local_40,local_3c,0,0x7ffffffe,local_30,local_2c);
    FUN_002d70b0(&local_38,param_4,0,0x44,iVar3,iVar4,0,0,0,0);
    local_20 = 0;
    puVar1 = *(undefined4 **)(iVar2 + 0x38);
    if (puVar1 == *(undefined4 **)(iVar2 + 0x3c)) {
      FUN_000a9dd0(iVar2 + 0x34,puVar1,&local_38);
      puVar6 = *(undefined4 **)(iVar2 + 0x38);
    }
    else {
      puVar6 = puVar1 + 7;
      *puVar1 = local_38;
      puVar1[1] = local_34;
      puVar1[2] = local_30;
      puVar1[3] = local_2c;
      puVar1[4] = local_28;
      puVar1[5] = local_24;
      puVar1[6] = 0;
      *(undefined4 **)(iVar2 + 0x38) = puVar6;
    }
    iVar7 = (int)puVar6 - *(int *)(iVar2 + 0x34) >> 2;
    iVar5 = iVar7 * -0x6db6db6c;
    if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {
      *(int *)(iVar2 + 0xc) = iVar5;
      *(undefined4 *)(iVar2 + 0x10) = 0;
      *(byte *)(iVar3 + 0x1c) = *(byte *)(iVar3 + 0x1c) | 0x10;
      if ((local_28 & 0x10000000) != 0) {
        *(int *)(iVar2 + 0x2c) = *(int *)(iVar2 + 0x2c) + 1;
      }
      if ((local_24 != -4) && (local_34 != 0)) {
        if (*(int *)(local_34 + 100) == 0) {
          *(int *)(local_34 + 0x60) = iVar7 * -0x49249249 + -1;
        }
        *(int *)(local_34 + 100) = *(int *)(local_34 + 100) + 1;
      }
      *(int *)(param_1 + 0x48) = iVar4;
      return iVar4;
    }
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",iVar5);
  }
                    /* WARNING: Subroutine does not return */
  FUN_002446e0("../../gold/powerpc.cc",0x190a,"tlsld_got_offset",param_3);
}

