
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: Output_data_got<64,_false> * got_section(Target_x86_64<32> * this,
   Symbol_table * symtab, Layout * layout) */

Output_data_got<64,_false> * __thiscall
anon_unknown.dwarf_32e241::Target_x86_64<32>::got_section
          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout)

{
  off_t *poVar1;
  undefined1 *puVar2;
  bool is_relro;
  Output_data *od;
  int in_EAX;
  Output_section_data *pOVar3;
  Symbol *pSVar4;
  Layout *in_ECX;
  Symbol_table *in_EDX;
  Output_section_order order;
  uint64_t uVar5;
  
  if (*(Output_data_got<64,_false> **)(in_EAX + 0x14) != (Output_data_got<64,_false> *)0x0) {
    return *(Output_data_got<64,_false> **)(in_EAX + 0x14);
  }
  if ((in_EDX == (Symbol_table *)0x0) || (in_ECX == (Layout *)0x0)) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/x86_64.cc",0x5bd,"got_section");
  }
  if (gold::parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  is_relro = (gold::parameters->options_->now_).value;
  order = (-(uint)(is_relro == false) & 2) + ORDER_RELRO;
  pOVar3 = (Output_section_data *)operator_new(0x5c);
                    /* try { // try from 0007b12c to 0007b130 has its CatchHandler @ 0007b483 */
  uVar5 = gold::Output_data::default_alignment_for_size(0x40);
  *(int *)((int)&pOVar3->addralign_ + 4) = (int)(uVar5 >> 0x20);
  (pOVar3->super_Output_data)._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_data_got_005dcb80;
  *(int *)&pOVar3->addralign_ = (int)uVar5;
  poVar1 = &pOVar3[1].super_Output_data.data_size_;
  *(Output_section_data **)(in_EAX + 0x14) = pOVar3;
  *(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = poVar1;
  *(off_t **)&pOVar3[1].super_Output_data.data_size_ = poVar1;
  *(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = poVar1;
  *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;
  *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;
  *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;
  *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;
  *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;
  *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;
  puVar2 = &(pOVar3->super_Output_data).field_0x1c;
  *puVar2 = *puVar2 & 0xe0;
  pOVar3->output_section_ = (Output_section *)0x0;
  pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;
  *(undefined4 *)&pOVar3[1].super_Output_data.address_ = 0;
  *(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0;
  *(undefined4 *)&pOVar3[1].super_Output_data.offset_ = 0;
  pOVar3[1].super_Output_data.field_0x1c = 0;
  pOVar3[1].output_section_ = (Output_section *)0x0;
  *(undefined4 *)&pOVar3[1].addralign_ = 0;
  *(undefined4 *)((int)&pOVar3[1].addralign_ + 4) = 0;
  pOVar3[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;
  gold::Layout::add_output_section_data
            (in_ECX,".got",1,3,pOVar3,~-(uint)(is_relro == false) + ORDER_RELRO_LAST,true);
  pOVar3 = (Output_section_data *)operator_new(0x30);
  (pOVar3->super_Output_data)._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_005dc56c;
  pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)in_ECX;
  *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;
  *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;
  *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;
  *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;
  *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;
  *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;
  puVar2 = &(pOVar3->super_Output_data).field_0x1c;
  *puVar2 = *puVar2 & 0xe0;
  pOVar3->output_section_ = (Output_section *)0x0;
  *(undefined4 *)&pOVar3->addralign_ = 8;
  *(undefined4 *)((int)&pOVar3->addralign_ + 4) = 0;
  *(Output_section_data **)(in_EAX + 0x1c) = pOVar3;
  gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);
  od = *(Output_data **)(in_EAX + 0x1c);
  if ((od->field_0x1c & 2) == 0) {
    *(undefined4 *)&od->data_size_ = 0x18;
    *(undefined4 *)((int)&od->data_size_ + 4) = 0;
    if (is_relro == false) {
      in_ECX->increase_relro_ = in_ECX->increase_relro_ + 0x18;
    }
    pSVar4 = gold::Symbol_table::define_in_output_data
                       (in_EDX,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,od,0,0,STT_OBJECT,
                        STB_LOCAL,STV_HIDDEN,'\0',false,false);
    *(Symbol **)(in_EAX + 0x28) = pSVar4;
    pOVar3 = (Output_section_data *)operator_new(0x30);
    (pOVar3->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_space_005dbed0;
    puVar2 = &(pOVar3->super_Output_data).field_0x1c;
    *puVar2 = *puVar2 & 0xe0;
    pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT";
    *(Output_section_data **)(in_EAX + 0x20) = pOVar3;
    *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;
    *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;
    *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;
    *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;
    *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;
    *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;
    pOVar3->output_section_ = (Output_section *)0x0;
    *(undefined4 *)&pOVar3->addralign_ = 8;
    *(undefined4 *)((int)&pOVar3->addralign_ + 4) = 0;
    gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);
    pOVar3 = (Output_section_data *)operator_new(0x5c);
                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */
    uVar5 = gold::Output_data::default_alignment_for_size(0x40);
    *(int *)&pOVar3->addralign_ = (int)uVar5;
    poVar1 = &pOVar3[1].super_Output_data.data_size_;
    *(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = poVar1;
    *(off_t **)&pOVar3[1].super_Output_data.data_size_ = poVar1;
    *(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = poVar1;
    *(int *)((int)&pOVar3->addralign_ + 4) = (int)(uVar5 >> 0x20);
    (pOVar3->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_got_005dcb80;
    *(Output_section_data **)(in_EAX + 0x24) = pOVar3;
    *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;
    *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;
    *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;
    *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;
    *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;
    *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;
    puVar2 = &(pOVar3->super_Output_data).field_0x1c;
    *puVar2 = *puVar2 & 0xe0;
    pOVar3->output_section_ = (Output_section *)0x0;
    pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;
    *(undefined4 *)&pOVar3[1].super_Output_data.address_ = 0;
    *(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0;
    *(undefined4 *)&pOVar3[1].super_Output_data.offset_ = 0;
    pOVar3[1].super_Output_data.field_0x1c = 0;
    pOVar3[1].output_section_ = (Output_section *)0x0;
    *(undefined4 *)&pOVar3[1].addralign_ = 0;
    *(undefined4 *)((int)&pOVar3[1].addralign_ + 4) = 0;
    pOVar3[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;
    gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);
    return *(Output_data_got<64,_false> **)(in_EAX + 0x14);
  }
                    /* WARNING: Subroutine does not return */
  gold::do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

int __regparm3 FUN_0007b0a0(int param_1,int param_2,int param_3)

{
  char cVar1;
  int iVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  undefined4 extraout_ECX;
  char cVar6;
  undefined8 uVar7;
  undefined **ppuVar8;
  char *pcVar9;
  
  if (*(int *)(param_1 + 0x14) != 0) {
    return *(int *)(param_1 + 0x14);
  }
  if ((param_2 == 0) || (param_3 == 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);
  }
  if (*(int *)(DAT_005ea7c8 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options");
  }
  cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);
  cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;
  puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);
                    /* try { // try from 0007b12c to 0007b130 has its CatchHandler @ 0007b483 */
  uVar7 = FUN_002c5bb0(0x40);
  puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);
  ppuVar8 = &PTR_FUN_005dcb80;
  *puVar3 = &PTR_FUN_005dcb80;
  puVar3[9] = (int)uVar7;
  puVar4 = puVar3 + 0xe;
  *(undefined4 **)(param_1 + 0x14) = puVar3;
  puVar3[0xf] = puVar4;
  puVar3[0xe] = puVar4;
  puVar3[0x11] = puVar4;
  puVar3[1] = 0;
  puVar3[2] = 0;
  puVar3[3] = 0;
  puVar3[4] = 0;
  puVar3[5] = 0xffffffff;
  puVar3[6] = 0xffffffff;
  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;
  puVar3[8] = 0;
  puVar3[0xb] = 0;
  puVar3[0xc] = 0;
  puVar3[0xd] = 0;
  puVar3[0x10] = 0;
  *(undefined1 *)(puVar3 + 0x12) = 0;
  puVar3[0x13] = 0;
  puVar3[0x14] = 0;
  puVar3[0x15] = 0;
  puVar3[0x16] = 0;
  FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);
  puVar4 = (undefined4 *)FUN_003ac4d0(0x30);
  *puVar4 = &PTR_FUN_005dc56c;
  puVar4[0xb] = param_3;
  puVar4[1] = 0;
  puVar4[2] = 0;
  puVar4[3] = 0;
  puVar4[4] = 0;
  puVar4[5] = 0xffffffff;
  puVar4[6] = 0xffffffff;
  *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;
  puVar4[8] = 0;
  puVar4[9] = 8;
  puVar4[10] = 0;
  *(undefined4 **)(param_1 + 0x1c) = puVar4;
  pcVar9 = ".got.plt";
  FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");
  iVar2 = *(int *)(param_1 + 0x1c);
  if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {
    *(undefined4 *)(iVar2 + 0xc) = 0x18;
    *(undefined4 *)(iVar2 + 0x10) = 0;
    if (cVar1 == '\0') {
      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;
    }
    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);
    *(undefined4 *)(param_1 + 0x28) = uVar5;
    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);
    *puVar4 = &PTR_FUN_005dbed0;
    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;
    puVar4[0xb] = "** GOT IRELATIVE PLT";
    *(undefined4 **)(param_1 + 0x20) = puVar4;
    puVar4[1] = 0;
    puVar4[2] = 0;
    puVar4[3] = 0;
    puVar4[4] = 0;
    puVar4[5] = 0xffffffff;
    puVar4[6] = 0xffffffff;
    puVar4[8] = 0;
    puVar4[9] = 8;
    puVar4[10] = 0;
    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);
    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);
                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */
    uVar7 = FUN_002c5bb0(0x40);
    puVar3[9] = (int)uVar7;
    puVar4 = puVar3 + 0xe;
    puVar3[0xf] = puVar4;
    puVar3[0xe] = puVar4;
    puVar3[0x11] = puVar4;
    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);
    *puVar3 = ppuVar8;
    *(undefined4 **)(param_1 + 0x24) = puVar3;
    puVar3[1] = 0;
    puVar3[2] = 0;
    puVar3[3] = 0;
    puVar3[4] = 0;
    puVar3[5] = 0xffffffff;
    puVar3[6] = 0xffffffff;
    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;
    puVar3[8] = 0;
    puVar3[0xb] = 0;
    puVar3[0xc] = 0;
    puVar3[0xd] = 0;
    puVar3[0x10] = 0;
    *(undefined1 *)(puVar3 + 0x12) = 0;
    puVar3[0x13] = 0;
    puVar3[0x14] = 0;
    puVar3[0x15] = 0;
    puVar3[0x16] = 0;
    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);
    return *(int *)(param_1 + 0x14);
  }
                    /* WARNING: Subroutine does not return */
  FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
CALL 0x00063c76
ADD ESI,0x56ef56
PUSH EBX
SUB ESP,0x2c
MOV EDI,dword ptr [EAX + 0x14]
TEST EDI,EDI
JZ 0x0007b0c8
LEA ESP,[EBP + -0xc]
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [EBP + -0x20],ECX
MOV dword ptr [EBP + -0x34],EDX
MOV dword ptr [EBP + -0x1c],EAX
TEST EDX,EDX
JZ 0x0007b448
TEST ECX,ECX
JZ 0x0007b448
LEA EAX,[ESI + 0x7c8]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0007b463
MOVZX EAX,byte ptr [EAX + 0x55c1]
CMP AL,0x1
MOV byte ptr [EBP + -0x29],AL
SBB ECX,ECX
NOT ECX
ADD ECX,0x14
CMP AL,0x1
SBB EBX,EBX
SUB ESP,0xc
MOV dword ptr [EBP + -0x28],ECX
PUSH 0x5c
AND EBX,0x2
ADD EBX,0x13
MOV dword ptr [EBP + -0x24],EBX
MOV EBX,ESI
CALL 0x003ac4d0
MOV dword ptr [ESP],0x40
MOV EDI,EAX
CALL 0x002c5bb0
MOV dword ptr [EDI + 0x28],EDX
LEA EDX,[ESI + 0xffff2b80]
ADD ESP,0x10
MOV dword ptr [EDI],EDX
MOV dword ptr [EBP + -0x38],EDX
MOV EDX,dword ptr [EBP + -0x1c]
MOV dword ptr [EDI + 0x24],EAX
LEA EAX,[EDI + 0x38]
MOV dword ptr [EDX + 0x14],EDI
MOV dword ptr [EDI + 0x3c],EAX
MOV dword ptr [EDI + 0x38],EAX
MOV dword ptr [EDI + 0x44],EAX
LEA EAX,[ESI + 0xffe63406]
MOV dword ptr [EDI + 0x4],0x0
MOV dword ptr [EDI + 0x8],0x0
MOV dword ptr [EDI + 0xc],0x0
MOV dword ptr [EDI + 0x10],0x0
MOV dword ptr [EDI + 0x14],0xffffffff
MOV dword ptr [EDI + 0x18],0xffffffff
AND byte ptr [EDI + 0x1c],0xe0
MOV dword ptr [EDI + 0x20],0x0
MOV dword ptr [EDI + 0x2c],0x0
MOV dword ptr [EDI + 0x30],0x0
MOV dword ptr [EDI + 0x34],0x0
MOV dword ptr [EDI + 0x40],0x0
MOV byte ptr [EDI + 0x48],0x0
MOV dword ptr [EDI + 0x4c],0x0
MOV dword ptr [EDI + 0x50],0x0
MOV dword ptr [EDI + 0x54],0x0
MOV dword ptr [EDI + 0x58],0x0
PUSH 0x1
PUSH dword ptr [EBP + -0x28]
PUSH EDI
PUSH 0x0
PUSH 0x3
MOV EDI,dword ptr [EBP + -0x20]
PUSH 0x1
PUSH EAX
PUSH EDI
CALL 0x0027afd0
ADD ESP,0x14
PUSH 0x30
CALL 0x003ac4d0
LEA EDX,[ESI + 0xffff256c]
MOVZX ECX,byte ptr [EBP + -0x29]
ADD ESP,0x10
MOV dword ptr [EAX],EDX
MOV EDX,EDI
MOV dword ptr [EAX + 0x2c],EDI
MOV EDI,dword ptr [EBP + -0x1c]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
AND byte ptr [EAX + 0x1c],0xe0
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x24],0x8
MOV dword ptr [EAX + 0x28],0x0
MOV dword ptr [EDI + 0x1c],EAX
PUSH ECX
PUSH dword ptr [EBP + -0x24]
PUSH EAX
LEA EAX,[ESI + 0xffe6340b]
PUSH 0x0
PUSH 0x3
PUSH 0x1
PUSH EAX
PUSH EDX
MOV dword ptr [EBP + -0x28],ECX
MOV dword ptr [EBP + -0x30],EAX
CALL 0x0027afd0
MOV EAX,dword ptr [EDI + 0x1c]
ADD ESP,0x20
TEST byte ptr [EAX + 0x1c],0x2
JNZ 0x0007b42f
CMP byte ptr [EBP + -0x29],0x0
MOV dword ptr [EAX + 0xc],0x18
MOV dword ptr [EAX + 0x10],0x0
JZ 0x0007b420
SUB ESP,0x4
MOV EBX,ESI
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x0
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH EAX
LEA EAX,[ESI + 0xffe63414]
PUSH 0x5
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + -0x34]
CALL 0x0034f750
MOV EDI,dword ptr [EBP + -0x1c]
ADD ESP,0x34
MOV dword ptr [EDI + 0x28],EAX
PUSH 0x30
CALL 0x003ac4d0
LEA EDX,[ESI + 0xffff1ed0]
ADD ESP,0x10
MOV dword ptr [EBP + -0x1c],EDI
MOV dword ptr [EAX],EDX
LEA EDX,[ESI + 0xffe6342a]
AND byte ptr [EAX + 0x1c],0xe0
MOV dword ptr [EAX + 0x2c],EDX
MOV dword ptr [EDI + 0x20],EAX
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x24],0x8
MOV dword ptr [EAX + 0x28],0x0
PUSH dword ptr [EBP + -0x28]
PUSH dword ptr [EBP + -0x24]
PUSH EAX
PUSH 0x0
PUSH 0x3
PUSH 0x1
PUSH dword ptr [EBP + -0x30]
PUSH dword ptr [EBP + -0x20]
CALL 0x0027afd0
ADD ESP,0x14
PUSH 0x5c
CALL 0x003ac4d0
MOV dword ptr [ESP],0x40
MOV EDI,EAX
CALL 0x002c5bb0
MOV dword ptr [EDI + 0x24],EAX
LEA EAX,[EDI + 0x38]
MOV EBX,dword ptr [EBP + -0x38]
ADD ESP,0x10
MOV dword ptr [EDI + 0x3c],EAX
MOV dword ptr [EDI + 0x38],EAX
MOV dword ptr [EDI + 0x44],EAX
MOV EAX,dword ptr [EBP + -0x1c]
MOV dword ptr [EDI + 0x28],EDX
MOV dword ptr [EDI],EBX
MOV EBX,ESI
MOV dword ptr [EAX + 0x24],EDI
MOV dword ptr [EDI + 0x4],0x0
MOV dword ptr [EDI + 0x8],0x0
MOV dword ptr [EDI + 0xc],0x0
MOV dword ptr [EDI + 0x10],0x0
MOV dword ptr [EDI + 0x14],0xffffffff
MOV dword ptr [EDI + 0x18],0xffffffff
AND byte ptr [EDI + 0x1c],0xe0
MOV dword ptr [EDI + 0x20],0x0
MOV dword ptr [EDI + 0x2c],0x0
MOV dword ptr [EDI + 0x30],0x0
MOV dword ptr [EDI + 0x34],0x0
MOV dword ptr [EDI + 0x40],0x0
MOV byte ptr [EDI + 0x48],0x0
MOV dword ptr [EDI + 0x4c],0x0
MOV dword ptr [EDI + 0x50],0x0
MOV dword ptr [EDI + 0x54],0x0
MOV dword ptr [EDI + 0x58],0x0
PUSH dword ptr [EBP + -0x28]
PUSH dword ptr [EBP + -0x24]
PUSH EDI
PUSH 0x0
PUSH 0x3
PUSH 0x1
PUSH dword ptr [EBP + -0x30]
PUSH dword ptr [EBP + -0x20]
CALL 0x0027afd0
MOV EAX,dword ptr [EBP + -0x1c]
ADD ESP,0x20
MOV EDI,dword ptr [EAX + 0x14]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
MOV EAX,EDI
POP EDI
POP EBP
RET
MOV EBX,dword ptr [EBP + -0x20]
ADD dword ptr [EBX + 0x170],0x18
JMP 0x0007b291
LEA EAX,[ESI + 0xffe69220]
PUSH ECX
PUSH EAX
LEA EAX,[ESI + 0xffe6335d]
PUSH 0x231
PUSH EAX
CALL 0x002446e0
LEA EAX,[ESI + 0xffe690f8]
PUSH EDI
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xffe6608e]
PUSH 0x5bd
PUSH EAX
CALL 0x002446e0
LEA EAX,[ESI + 0xffe69338]
PUSH EBX
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nint __regparm3 FUN_0007b0a0(int param_1,int param_2,int param_3)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 extraout_ECX;\n  char cVar6;\n  undefined8 uVar7;\n  undefined **ppuVar8;\n  char *pcVar9;\n  \n  if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }\n  if ((param_2 == 0) || (param_3 == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);\n  cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;\n  puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    /* try { // try from 0007b12c to 0007b130 has its CatchHandler @ 0007b483 */\n  uVar7 = FUN_002c5bb0(0x40);\n  puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n  ppuVar8 = &PTR_FUN_005dcb80;\n  *puVar3 = &PTR_FUN_005dcb80;\n  puVar3[9] = (int)uVar7;\n  puVar4 = puVar3 + 0xe;\n  *(undefined4 **)(param_1 + 0x14) = puVar3;\n  puVar3[0xf] = puVar4;\n  puVar3[0xe] = puVar4;\n  puVar3[0x11] = puVar4;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n  puVar3[8] = 0;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0x10] = 0;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n  FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);\n  puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n  *puVar4 = &PTR_FUN_005dc56c;\n  puVar4[0xb] = param_3;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0;\n  puVar4[4] = 0;\n  puVar4[5] = 0xffffffff;\n  puVar4[6] = 0xffffffff;\n  *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n  puVar4[8] = 0;\n  puVar4[9] = 8;\n  puVar4[10] = 0;\n  *(undefined4 **)(param_1 + 0x1c) = puVar4;\n  pcVar9 = ".got.plt";\n  FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");\n  iVar2 = *(int *)(param_1 + 0x1c);\n  if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */\n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);\n}\n\n" comment (function_definition "int __regparm3 FUN_0007b0a0(int param_1,int param_2,int param_3)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 extraout_ECX;\n  char cVar6;\n  undefined8 uVar7;\n  undefined **ppuVar8;\n  char *pcVar9;\n  \n  if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }\n  if ((param_2 == 0) || (param_3 == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);\n  cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;\n  puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    /* try { // try from 0007b12c to 0007b130 has its CatchHandler @ 0007b483 */\n  uVar7 = FUN_002c5bb0(0x40);\n  puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n  ppuVar8 = &PTR_FUN_005dcb80;\n  *puVar3 = &PTR_FUN_005dcb80;\n  puVar3[9] = (int)uVar7;\n  puVar4 = puVar3 + 0xe;\n  *(undefined4 **)(param_1 + 0x14) = puVar3;\n  puVar3[0xf] = puVar4;\n  puVar3[0xe] = puVar4;\n  puVar3[0x11] = puVar4;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n  puVar3[8] = 0;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0x10] = 0;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n  FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);\n  puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n  *puVar4 = &PTR_FUN_005dc56c;\n  puVar4[0xb] = param_3;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0;\n  puVar4[4] = 0;\n  puVar4[5] = 0xffffffff;\n  puVar4[6] = 0xffffffff;\n  *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n  puVar4[8] = 0;\n  puVar4[9] = 8;\n  puVar4[10] = 0;\n  *(undefined4 **)(param_1 + 0x1c) = puVar4;\n  pcVar9 = ".got.plt";\n  FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");\n  iVar2 = *(int *)(param_1 + 0x1c);\n  if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */\n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0007b0a0(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 extraout_ECX;\n  char cVar6;\n  undefined8 uVar7;\n  undefined **ppuVar8;\n  char *pcVar9;\n  \n  if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }\n  if ((param_2 == 0) || (param_3 == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);\n  cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;\n  puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    /* try { // try from 0007b12c to 0007b130 has its CatchHandler @ 0007b483 */\n  uVar7 = FUN_002c5bb0(0x40);\n  puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n  ppuVar8 = &PTR_FUN_005dcb80;\n  *puVar3 = &PTR_FUN_005dcb80;\n  puVar3[9] = (int)uVar7;\n  puVar4 = puVar3 + 0xe;\n  *(undefined4 **)(param_1 + 0x14) = puVar3;\n  puVar3[0xf] = puVar4;\n  puVar3[0xe] = puVar4;\n  puVar3[0x11] = puVar4;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n  puVar3[8] = 0;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0x10] = 0;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n  FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);\n  puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n  *puVar4 = &PTR_FUN_005dc56c;\n  puVar4[0xb] = param_3;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0;\n  puVar4[4] = 0;\n  puVar4[5] = 0xffffffff;\n  puVar4[6] = 0xffffffff;\n  *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n  puVar4[8] = 0;\n  puVar4[9] = 8;\n  puVar4[10] = 0;\n  *(undefined4 **)(param_1 + 0x1c) = puVar4;\n  pcVar9 = ".got.plt";\n  FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");\n  iVar2 = *(int *)(param_1 + 0x1c);\n  if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */\n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" ( (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return *(int *)(param_1 + 0x14);\n  }" { (return_statement "return *(int *)(param_1 + 0x14);" return (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ;) })) (if_statement "if ((param_2 == 0) || (param_3 == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }" if (parenthesized_expression "((param_2 == 0) || (param_3 == 0))" ( (binary_expression "(param_2 == 0) || (param_3 == 0)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);" (call_expression "FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0)" identifier (argument_list "("../../gold/x86_64.cc",0x5bd,"got_section",0)" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""got_section"" " string_content ") , number_literal ))) ;) })) (if_statement "if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) == 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);" (assignment_expression "cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" identifier = (pointer_expression "*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" * (cast_expression "(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) + 0x55c1" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;" (assignment_expression "cVar6 = (-(cVar1 == '\0') & 2U) + 0x13" identifier = (binary_expression "(-(cVar1 == '\0') & 2U) + 0x13" (parenthesized_expression "(-(cVar1 == '\0') & 2U)" ( (binary_expression "-(cVar1 == '\0') & 2U" (unary_expression "-(cVar1 == '\0')" - (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (expression_statement "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c)" identifier = (cast_expression "(undefined4 *)FUN_003ac4d0(0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x5c)" identifier (argument_list "(0x5c)" ( number_literal ))))) ;) comment (expression_statement "uVar7 = FUN_002c5bb0(0x40);" (assignment_expression "uVar7 = FUN_002c5bb0(0x40)" identifier = (call_expression "FUN_002c5bb0(0x40)" identifier (argument_list "(0x40)" ( number_literal )))) ;) (expression_statement "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20)" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "ppuVar8 = &PTR_FUN_005dcb80;" (assignment_expression "ppuVar8 = &PTR_FUN_005dcb80" identifier = (pointer_expression "&PTR_FUN_005dcb80" & identifier)) ;) (expression_statement "*puVar3 = &PTR_FUN_005dcb80;" (assignment_expression "*puVar3 = &PTR_FUN_005dcb80" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_005dcb80" & identifier)) ;) (expression_statement "puVar3[9] = (int)uVar7;" (assignment_expression "puVar3[9] = (int)uVar7" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar4 = puVar3 + 0xe;" (assignment_expression "puVar4 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) (expression_statement "*(undefined4 **)(param_1 + 0x14) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 0x14) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 0x14)" * (cast_expression "(undefined4 **)(param_1 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3[0xf] = puVar4;" (assignment_expression "puVar3[0xf] = puVar4" (subscript_expression "puVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xe] = puVar4;" (assignment_expression "puVar3[0xe] = puVar4" (subscript_expression "puVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0x11] = puVar4;" (assignment_expression "puVar3[0x11] = puVar4" (subscript_expression "puVar3[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = 0;" (assignment_expression "puVar3[0xb] = 0" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc] = 0;" (assignment_expression "puVar3[0xc] = 0" (subscript_expression "puVar3[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xd] = 0;" (assignment_expression "puVar3[0xd] = 0" (subscript_expression "puVar3[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x10] = 0;" (assignment_expression "puVar3[0x10] = 0" (subscript_expression "puVar3[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)(puVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)(puVar3 + 0x12)" * (cast_expression "(undefined1 *)(puVar3 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x12)" ( (binary_expression "puVar3 + 0x12" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3[0x13] = 0;" (assignment_expression "puVar3[0x13] = 0" (subscript_expression "puVar3[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x14] = 0;" (assignment_expression "puVar3[0x14] = 0" (subscript_expression "puVar3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x15] = 0;" (assignment_expression "puVar3[0x15] = 0" (subscript_expression "puVar3[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x16] = 0;" (assignment_expression "puVar3[0x16] = 0" (subscript_expression "puVar3[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);" (call_expression "FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1)" identifier (argument_list "(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1)" ( identifier , (pointer_expression "&DAT_0044d406" & identifier) , number_literal , number_literal , number_literal , identifier , (binary_expression "~-(uint)(cVar1 == '\0') + 0x14" (unary_expression "~-(uint)(cVar1 == '\0')" ~ (unary_expression "-(uint)(cVar1 == '\0')" - (call_expression "(uint)(cVar1 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))))) + number_literal) , number_literal ))) ;) (expression_statement "puVar4 = (undefined4 *)FUN_003ac4d0(0x30);" (assignment_expression "puVar4 = (undefined4 *)FUN_003ac4d0(0x30)" identifier = (cast_expression "(undefined4 *)FUN_003ac4d0(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*puVar4 = &PTR_FUN_005dc56c;" (assignment_expression "*puVar4 = &PTR_FUN_005dc56c" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_005dc56c" & identifier)) ;) (expression_statement "puVar4[0xb] = param_3;" (assignment_expression "puVar4[0xb] = param_3" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0xffffffff;" (assignment_expression "puVar4[5] = 0xffffffff" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0xffffffff;" (assignment_expression "puVar4[6] = 0xffffffff" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[9] = 8;" (assignment_expression "puVar4[9] = 8" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(param_1 + 0x1c) = puVar4;" (assignment_expression "*(undefined4 **)(param_1 + 0x1c) = puVar4" (pointer_expression "*(undefined4 **)(param_1 + 0x1c)" * (cast_expression "(undefined4 **)(param_1 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar9 = ".got.plt";" (assignment_expression "pcVar9 = ".got.plt"" identifier = (string_literal "".got.plt"" " string_content ")) ;) (expression_statement "FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");" (call_expression "FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt")" identifier (argument_list "(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt")" ( identifier , (string_literal "".got.plt"" " string_content ") , number_literal , number_literal , number_literal , identifier , identifier , identifier , identifier , identifier , (string_literal "".got.plt"" " string_content ") ))) ;) (expression_statement "iVar2 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x1c)" identifier = (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */\n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\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    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */\n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }" { (expression_statement "*(undefined4 *)(iVar2 + 0xc) = 0x18;" (assignment_expression "*(undefined4 *)(iVar2 + 0xc) = 0x18" (pointer_expression "*(undefined4 *)(iVar2 + 0xc)" * (cast_expression "(undefined4 *)(iVar2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (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) ;) (if_statement "if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }" { (expression_statement "*(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;" (assignment_expression "*(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18" (pointer_expression "*(int *)(param_3 + 0x170)" * (cast_expression "(int *)(param_3 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x170)" ( (binary_expression "param_3 + 0x170" identifier + number_literal) )))) = (binary_expression "*(int *)(param_3 + 0x170) + 0x18" (pointer_expression "*(int *)(param_3 + 0x170)" * (cast_expression "(int *)(param_3 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x170)" ( (binary_expression "param_3 + 0x170" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);" (assignment_expression "uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0)" identifier = (call_expression "FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0)" identifier (argument_list "(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0)" ( identifier , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal , number_literal , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x28) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = (undefined4 *)FUN_003ac4d0(0x30);" (assignment_expression "puVar4 = (undefined4 *)FUN_003ac4d0(0x30)" identifier = (cast_expression "(undefined4 *)FUN_003ac4d0(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*puVar4 = &PTR_FUN_005dbed0;" (assignment_expression "*puVar4 = &PTR_FUN_005dbed0" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_005dbed0" & identifier)) ;) (expression_statement "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar4[0xb] = "** GOT IRELATIVE PLT";" (assignment_expression "puVar4[0xb] = "** GOT IRELATIVE PLT"" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = (string_literal ""** GOT IRELATIVE PLT"" " string_content ")) ;) (expression_statement "*(undefined4 **)(param_1 + 0x20) = puVar4;" (assignment_expression "*(undefined4 **)(param_1 + 0x20) = puVar4" (pointer_expression "*(undefined4 **)(param_1 + 0x20)" * (cast_expression "(undefined4 **)(param_1 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0xffffffff;" (assignment_expression "puVar4[5] = 0xffffffff" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0xffffffff;" (assignment_expression "puVar4[6] = 0xffffffff" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[9] = 8;" (assignment_expression "puVar4[9] = 8" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);" (call_expression "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1)" identifier (argument_list "(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1)" ( identifier , identifier , number_literal , number_literal , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c)" identifier = (cast_expression "(undefined4 *)FUN_003ac4d0(0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x5c)" identifier (argument_list "(0x5c)" ( number_literal ))))) ;) comment (expression_statement "uVar7 = FUN_002c5bb0(0x40);" (assignment_expression "uVar7 = FUN_002c5bb0(0x40)" identifier = (call_expression "FUN_002c5bb0(0x40)" identifier (argument_list "(0x40)" ( number_literal )))) ;) (expression_statement "puVar3[9] = (int)uVar7;" (assignment_expression "puVar3[9] = (int)uVar7" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar4 = puVar3 + 0xe;" (assignment_expression "puVar4 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar3[0xf] = puVar4;" (assignment_expression "puVar3[0xf] = puVar4" (subscript_expression "puVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xe] = puVar4;" (assignment_expression "puVar3[0xe] = puVar4" (subscript_expression "puVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0x11] = puVar4;" (assignment_expression "puVar3[0x11] = puVar4" (subscript_expression "puVar3[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20)" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*puVar3 = ppuVar8;" (assignment_expression "*puVar3 = ppuVar8" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 0x24) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 0x24) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 0x24)" * (cast_expression "(undefined4 **)(param_1 + 0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = 0;" (assignment_expression "puVar3[0xb] = 0" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc] = 0;" (assignment_expression "puVar3[0xc] = 0" (subscript_expression "puVar3[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xd] = 0;" (assignment_expression "puVar3[0xd] = 0" (subscript_expression "puVar3[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x10] = 0;" (assignment_expression "puVar3[0x10] = 0" (subscript_expression "puVar3[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)(puVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)(puVar3 + 0x12)" * (cast_expression "(undefined1 *)(puVar3 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x12)" ( (binary_expression "puVar3 + 0x12" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3[0x13] = 0;" (assignment_expression "puVar3[0x13] = 0" (subscript_expression "puVar3[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x14] = 0;" (assignment_expression "puVar3[0x14] = 0" (subscript_expression "puVar3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x15] = 0;" (assignment_expression "puVar3[0x15] = 0" (subscript_expression "puVar3[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x16] = 0;" (assignment_expression "puVar3[0x16] = 0" (subscript_expression "puVar3[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);" (call_expression "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1)" identifier (argument_list "(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1)" ( identifier , identifier , number_literal , number_literal , number_literal , identifier , identifier , identifier ))) ;) (return_statement "return *(int *)(param_1 + 0x14);" return (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ;) })) comment (expression_statement "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);" (call_expression "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX)" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: Output_data_got<64,_false> * got_section(Target_x86_64<32> * this,\n   Symbol_table * symtab, Layout * layout) */\n\nOutput_data_got<64,_false> * __thiscall\nanon_unknown.dwarf_32e241::Target_x86_64<32>::got_section\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout)\n\n{\n  off_t *poVar1;\n  undefined1 *puVar2;\n  bool is_relro;\n  Output_data *od;\n  int in_EAX;\n  Output_section_data *pOVar3;\n  Symbol *pSVar4;\n  Layout *in_ECX;\n  Symbol_table *in_EDX;\n  Output_section_order order;\n  uint64_t uVar5;\n  \n  if (*(Output_data_got<64,_false> **)(in_EAX + 0x14) != (Output_data_got<64,_false> *)0x0) {\n    return *(Output_data_got<64,_false> **)(in_EAX + 0x14);\n  }\n  if ((in_EDX == (Symbol_table *)0x0) || (in_ECX == (Layout *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/x86_64.cc",0x5bd,"got_section");\n  }\n  if (gold::parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  is_relro = (gold::parameters->options_->now_).value;\n  order = (-(uint)(is_relro == false) & 2) + ORDER_RELRO;\n  pOVar3 = (Output_section_data *)operator_new(0x5c);\n                    /* try { // try from 0007b12c to 0007b130 has its CatchHandler @ 0007b483 */\n  uVar5 = gold::Output_data::default_alignment_for_size(0x40);\n  *(int *)((int)&pOVar3->addralign_ + 4) = (int)(uVar5 >> 0x20);\n  (pOVar3->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_005dcb80;\n  *(int *)&pOVar3->addralign_ = (int)uVar5;\n  poVar1 = &pOVar3[1].super_Output_data.data_size_;\n  *(Output_section_data **)(in_EAX + 0x14) = pOVar3;\n  *(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = poVar1;\n  *(off_t **)&pOVar3[1].super_Output_data.data_size_ = poVar1;\n  *(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = poVar1;\n  *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;\n  *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;\n  *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;\n  *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;\n  *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;\n  puVar2 = &(pOVar3->super_Output_data).field_0x1c;\n  *puVar2 = *puVar2 & 0xe0;\n  pOVar3->output_section_ = (Output_section *)0x0;\n  pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n  *(undefined4 *)&pOVar3[1].super_Output_data.address_ = 0;\n  *(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0;\n  *(undefined4 *)&pOVar3[1].super_Output_data.offset_ = 0;\n  pOVar3[1].super_Output_data.field_0x1c = 0;\n  pOVar3[1].output_section_ = (Output_section *)0x0;\n  *(undefined4 *)&pOVar3[1].addralign_ = 0;\n  *(undefined4 *)((int)&pOVar3[1].addralign_ + 4) = 0;\n  pOVar3[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n  gold::Layout::add_output_section_data\n            (in_ECX,".got",1,3,pOVar3,~-(uint)(is_relro == false) + ORDER_RELRO_LAST,true);\n  pOVar3 = (Output_section_data *)operator_new(0x30);\n  (pOVar3->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_005dc56c;\n  pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)in_ECX;\n  *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;\n  *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;\n  *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;\n  *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;\n  *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;\n  puVar2 = &(pOVar3->super_Output_data).field_0x1c;\n  *puVar2 = *puVar2 & 0xe0;\n  pOVar3->output_section_ = (Output_section *)0x0;\n  *(undefined4 *)&pOVar3->addralign_ = 8;\n  *(undefined4 *)((int)&pOVar3->addralign_ + 4) = 0;\n  *(Output_section_data **)(in_EAX + 0x1c) = pOVar3;\n  gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);\n  od = *(Output_data **)(in_EAX + 0x1c);\n  if ((od->field_0x1c & 2) == 0) {\n    *(undefined4 *)&od->data_size_ = 0x18;\n    *(undefined4 *)((int)&od->data_size_ + 4) = 0;\n    if (is_relro == false) {\n      in_ECX->increase_relro_ = in_ECX->increase_relro_ + 0x18;\n    }\n    pSVar4 = gold::Symbol_table::define_in_output_data\n                       (in_EDX,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,od,0,0,STT_OBJECT,\n                        STB_LOCAL,STV_HIDDEN,'\0',false,false);\n    *(Symbol **)(in_EAX + 0x28) = pSVar4;\n    pOVar3 = (Output_section_data *)operator_new(0x30);\n    (pOVar3->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_005dbed0;\n    puVar2 = &(pOVar3->super_Output_data).field_0x1c;\n    *puVar2 = *puVar2 & 0xe0;\n    pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT";\n    *(Output_section_data **)(in_EAX + 0x20) = pOVar3;\n    *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar3->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar3->addralign_ = 8;\n    *(undefined4 *)((int)&pOVar3->addralign_ + 4) = 0;\n    gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);\n    pOVar3 = (Output_section_data *)operator_new(0x5c);\n                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */\n    uVar5 = gold::Output_data::default_alignment_for_size(0x40);\n    *(int *)&pOVar3->addralign_ = (int)uVar5;\n    poVar1 = &pOVar3[1].super_Output_data.data_size_;\n    *(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = poVar1;\n    *(off_t **)&pOVar3[1].super_Output_data.data_size_ = poVar1;\n    *(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = poVar1;\n    *(int *)((int)&pOVar3->addralign_ + 4) = (int)(uVar5 >> 0x20);\n    (pOVar3->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_got_005dcb80;\n    *(Output_section_data **)(in_EAX + 0x24) = pOVar3;\n    *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;\n    puVar2 = &(pOVar3->super_Output_data).field_0x1c;\n    *puVar2 = *puVar2 & 0xe0;\n    pOVar3->output_section_ = (Output_section *)0x0;\n    pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n    *(undefined4 *)&pOVar3[1].super_Output_data.address_ = 0;\n    *(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0;\n    *(undefined4 *)&pOVar3[1].super_Output_data.offset_ = 0;\n    pOVar3[1].super_Output_data.field_0x1c = 0;\n    pOVar3[1].output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar3[1].addralign_ = 0;\n    *(undefined4 *)((int)&pOVar3[1].addralign_ + 4) = 0;\n    pOVar3[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n    gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);\n    return *(Output_data_got<64,_false> **)(in_EAX + 0x14);\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n}\n\n" comment comment comment comment comment comment (expression_statement "Output_data_got<64,_false> * __thiscall\nanon_unknown.dwarf_32e241::Target_x86_64<32>::got_section\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout)\n\n{\n  off_t *poVar1;" (update_expression "Output_data_got<64,_false> * __thiscall\nanon_unknown.dwarf_32e241::Target_x86_64<32>::got_section\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout)\n\n{\n  off_t *poVar1" (binary_expression "Output_data_got<64,_false> * __thiscall\nanon_unknown.dwarf_32e241::Target_x86_64<32>::got_section\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout)\n\n{\n  off_t *poVar1" (binary_expression "Output_data_got<64,_false> * __thiscall\nanon_unknown.dwarf_32e241::Target_x86_64<32" (binary_expression "Output_data_got<64,_false> * __thiscall\nanon_unknown.dwarf_32e241" (binary_expression "Output_data_got<64" identifier < number_literal) (ERROR ",_false" , identifier) > (ERROR "* __thiscall" (pointer_expression "* __thiscall" * identifier)) (field_expression "anon_unknown.dwarf_32e241" identifier . field_identifier)) (ERROR "::Target_x86_64" : : identifier) < number_literal) > (ERROR "::got_section\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout)\n\n{" : : (call_expression "got_section\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout)" identifier (argument_list "(Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout)" ( (binary_expression "Target_x86_64<32> *this" (binary_expression "Target_x86_64<32" identifier < number_literal) > (pointer_expression "*this" * identifier)) , (binary_expression "Symbol_table *symtab" identifier * identifier) , (binary_expression "Layout *layout" identifier * identifier) ))) {) (binary_expression "off_t *poVar1" identifier * identifier)) --) ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "bool is_relro;" primitive_type identifier ;) (declaration "Output_data *od;" type_identifier (pointer_declarator "*od" * identifier) ;) (declaration "int in_EAX;" primitive_type identifier ;) (declaration "Output_section_data *pOVar3;" type_identifier (pointer_declarator "*pOVar3" * identifier) ;) (declaration "Symbol *pSVar4;" type_identifier (pointer_declarator "*pSVar4" * identifier) ;) (declaration "Layout *in_ECX;" type_identifier (pointer_declarator "*in_ECX" * identifier) ;) (declaration "Symbol_table *in_EDX;" type_identifier (pointer_declarator "*in_EDX" * identifier) ;) (declaration "Output_section_order order;" type_identifier identifier ;) (declaration "uint64_t uVar5;" primitive_type identifier ;) (if_statement "if (*(Output_data_got<64,_false> **)(in_EAX + 0x14) != (Output_data_got<64,_false> *)0x0) {\n    return *(Output_data_got<64,_false> **)(in_EAX + 0x14);\n  }" if (parenthesized_expression "(*(Output_data_got<64,_false> **)(in_EAX + 0x14) != (Output_data_got<64,_false> *)0x0)" ( (binary_expression "*(Output_data_got<64,_false> **)(in_EAX + 0x14) != (Output_data_got<64,_false> *)0x0)" (pointer_expression "*(Output_data_got<64,_false> **)(in_EAX + 0x14)" * (call_expression "(Output_data_got<64,_false> **)(in_EAX + 0x14)" (parenthesized_expression "(Output_data_got<64,_false> **)" ( (comma_expression "Output_data_got<64,_false> **" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(in_EAX + 0x14)" ( (binary_expression "in_EAX + 0x14" identifier + number_literal) )))) != (parenthesized_expression "(Output_data_got<64,_false> *)0x0)" ( (comma_expression "Output_data_got<64,_false> *)0x0" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "_false> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (compound_statement "{\n    return *(Output_data_got<64,_false> **)(in_EAX + 0x14);\n  }" { (return_statement "return *(Output_data_got<64,_false> **)(in_EAX + 0x14);" return (pointer_expression "*(Output_data_got<64,_false> **)(in_EAX + 0x14)" * (call_expression "(Output_data_got<64,_false> **)(in_EAX + 0x14)" (parenthesized_expression "(Output_data_got<64,_false> **)" ( (comma_expression "Output_data_got<64,_false> **" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(in_EAX + 0x14)" ( (binary_expression "in_EAX + 0x14" identifier + number_literal) )))) ;) })) (if_statement "if ((in_EDX == (Symbol_table *)0x0) || (in_ECX == (Layout *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/x86_64.cc",0x5bd,"got_section");\n  }" if (parenthesized_expression "((in_EDX == (Symbol_table *)0x0) || (in_ECX == (Layout *)0x0))" ( (binary_expression "(in_EDX == (Symbol_table *)0x0) || (in_ECX == (Layout *)0x0)" (parenthesized_expression "(in_EDX == (Symbol_table *)0x0)" ( (binary_expression "in_EDX == (Symbol_table *)0x0" identifier == (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(in_ECX == (Layout *)0x0)" ( (binary_expression "in_ECX == (Layout *)0x0" identifier == (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/x86_64.cc",0x5bd,"got_section");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/x86_64.cc",0x5bd,"got_section");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/x86_64.cc",0x5bd,"got_section");" (call_expression "do_gold_unreachable("../../gold/x86_64.cc",0x5bd,"got_section")" identifier (argument_list "("../../gold/x86_64.cc",0x5bd,"got_section")" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""got_section"" " string_content ") ))) ;)) })) (if_statement "if (gold::parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(gold::parameters->options_ == (General_options *)0x0)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (expression_statement "is_relro = (gold::parameters->options_->now_).value;" (assignment_expression "is_relro = (gold::parameters->options_->now_).value" identifier = (field_expression "(gold::parameters->options_->now_).value" (parenthesized_expression "(gold::parameters->options_->now_)" ( (ERROR "gold::" identifier : :) (field_expression "parameters->options_->now_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "order = (-(uint)(is_relro == false) & 2) + ORDER_RELRO;" (assignment_expression "order = (-(uint)(is_relro == false) & 2) + ORDER_RELRO" identifier = (binary_expression "(-(uint)(is_relro == false) & 2) + ORDER_RELRO" (parenthesized_expression "(-(uint)(is_relro == false) & 2)" ( (binary_expression "-(uint)(is_relro == false) & 2" (unary_expression "-(uint)(is_relro == false)" - (call_expression "(uint)(is_relro == false)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(is_relro == false)" ( (binary_expression "is_relro == false" identifier == false) )))) & number_literal) )) + identifier)) ;) (expression_statement "pOVar3 = (Output_section_data *)operator_new(0x5c);" (assignment_expression "pOVar3 = (Output_section_data *)operator_new(0x5c)" identifier = (cast_expression "(Output_section_data *)operator_new(0x5c)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x5c)" identifier (argument_list "(0x5c)" ( number_literal ))))) ;) comment (ERROR "uVar5 = gold::" (assignment_expression "uVar5 = gold" identifier = identifier) : :) (labeled_statement "Output_data::default_alignment_for_size(0x40);" statement_identifier : (ERROR ":" :) (expression_statement "default_alignment_for_size(0x40);" (call_expression "default_alignment_for_size(0x40)" identifier (argument_list "(0x40)" ( number_literal ))) ;)) (expression_statement "*(int *)((int)&pOVar3->addralign_ + 4) = (int)(uVar5 >> 0x20);" (assignment_expression "*(int *)((int)&pOVar3->addralign_ + 4) = (int)(uVar5 >> 0x20)" (pointer_expression "*(int *)((int)&pOVar3->addralign_ + 4)" * (cast_expression "(int *)((int)&pOVar3->addralign_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar3->addralign_ + 4)" ( (binary_expression "(int)&pOVar3->addralign_ + 4" (cast_expression "(int)&pOVar3->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3->addralign_" & (field_expression "pOVar3->addralign_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)(uVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "(pOVar3->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_005dcb80;" (assignment_expression "(pOVar3->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_005dcb80" (field_expression "(pOVar3->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_got_005dcb80" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_got_005dcb80" & identifier))) ;) (expression_statement "*(int *)&pOVar3->addralign_ = (int)uVar5;" (assignment_expression "*(int *)&pOVar3->addralign_ = (int)uVar5" (pointer_expression "*(int *)&pOVar3->addralign_" * (cast_expression "(int *)&pOVar3->addralign_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3->addralign_" & (field_expression "pOVar3->addralign_" identifier -> field_identifier)))) = (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "poVar1 = &pOVar3[1].super_Output_data.data_size_;" (assignment_expression "poVar1 = &pOVar3[1].super_Output_data.data_size_" identifier = (pointer_expression "&pOVar3[1].super_Output_data.data_size_" & (field_expression "pOVar3[1].super_Output_data.data_size_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) ;) (expression_statement "*(Output_section_data **)(in_EAX + 0x14) = pOVar3;" (assignment_expression "*(Output_section_data **)(in_EAX + 0x14) = pOVar3" (pointer_expression "*(Output_section_data **)(in_EAX + 0x14)" * (cast_expression "(Output_section_data **)(in_EAX + 0x14)" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_EAX + 0x14)" ( (binary_expression "in_EAX + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = poVar1;" (assignment_expression "*(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = poVar1" (pointer_expression "*(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4)" * (cast_expression "(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4)" ( (type_descriptor "off_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar3[1].super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&pOVar3[1].super_Output_data.data_size_ + 4" (cast_expression "(int)&pOVar3[1].super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3[1].super_Output_data.data_size_" & (field_expression "pOVar3[1].super_Output_data.data_size_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(off_t **)&pOVar3[1].super_Output_data.data_size_ = poVar1;" (assignment_expression "*(off_t **)&pOVar3[1].super_Output_data.data_size_ = poVar1" (pointer_expression "*(off_t **)&pOVar3[1].super_Output_data.data_size_" * (cast_expression "(off_t **)&pOVar3[1].super_Output_data.data_size_" ( (type_descriptor "off_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar3[1].super_Output_data.data_size_" & (field_expression "pOVar3[1].super_Output_data.data_size_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "*(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = poVar1;" (assignment_expression "*(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = poVar1" (pointer_expression "*(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4)" * (cast_expression "(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4)" ( (type_descriptor "off_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar3[1].super_Output_data.offset_ + 4)" ( (binary_expression "(int)&pOVar3[1].super_Output_data.offset_ + 4" (cast_expression "(int)&pOVar3[1].super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3[1].super_Output_data.offset_" & (field_expression "pOVar3[1].super_Output_data.offset_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).address_" & (field_expression "(pOVar3->super_Output_data).address_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).address_" & (field_expression "(pOVar3->super_Output_data).address_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).data_size_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).data_size_" & (field_expression "(pOVar3->super_Output_data).data_size_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).data_size_" & (field_expression "(pOVar3->super_Output_data).data_size_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).offset_" & (field_expression "(pOVar3->super_Output_data).offset_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).offset_" & (field_expression "(pOVar3->super_Output_data).offset_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = &(pOVar3->super_Output_data).field_0x1c;" (assignment_expression "puVar2 = &(pOVar3->super_Output_data).field_0x1c" identifier = (pointer_expression "&(pOVar3->super_Output_data).field_0x1c" & (field_expression "(pOVar3->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar2 = *puVar2 & 0xe0;" (assignment_expression "*puVar2 = *puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) & number_literal)) ;) (expression_statement "pOVar3->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar3->output_section_ = (Output_section *)0x0" (field_expression "pOVar3->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;" (assignment_expression "pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0" (field_expression "pOVar3[1].super_Output_data._vptr_Output_data" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar3[1].super_Output_data.address_ = 0;" (assignment_expression "*(undefined4 *)&pOVar3[1].super_Output_data.address_ = 0" (pointer_expression "*(undefined4 *)&pOVar3[1].super_Output_data.address_" * (cast_expression "(undefined4 *)&pOVar3[1].super_Output_data.address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3[1].super_Output_data.address_" & (field_expression "pOVar3[1].super_Output_data.address_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar3[1].super_Output_data.address_ + 4)" ( (binary_expression "(int)&pOVar3[1].super_Output_data.address_ + 4" (cast_expression "(int)&pOVar3[1].super_Output_data.address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3[1].super_Output_data.address_" & (field_expression "pOVar3[1].super_Output_data.address_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&pOVar3[1].super_Output_data.offset_ = 0;" (assignment_expression "*(undefined4 *)&pOVar3[1].super_Output_data.offset_ = 0" (pointer_expression "*(undefined4 *)&pOVar3[1].super_Output_data.offset_" * (cast_expression "(undefined4 *)&pOVar3[1].super_Output_data.offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3[1].super_Output_data.offset_" & (field_expression "pOVar3[1].super_Output_data.offset_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "pOVar3[1].super_Output_data.field_0x1c = 0;" (assignment_expression "pOVar3[1].super_Output_data.field_0x1c = 0" (field_expression "pOVar3[1].super_Output_data.field_0x1c" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pOVar3[1].output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar3[1].output_section_ = (Output_section *)0x0" (field_expression "pOVar3[1].output_section_" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar3[1].addralign_ = 0;" (assignment_expression "*(undefined4 *)&pOVar3[1].addralign_ = 0" (pointer_expression "*(undefined4 *)&pOVar3[1].addralign_" * (cast_expression "(undefined4 *)&pOVar3[1].addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3[1].addralign_" & (field_expression "pOVar3[1].addralign_" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar3[1].addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar3[1].addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar3[1].addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar3[1].addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar3[1].addralign_ + 4)" ( (binary_expression "(int)&pOVar3[1].addralign_ + 4" (cast_expression "(int)&pOVar3[1].addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3[1].addralign_" & (field_expression "pOVar3[1].addralign_" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar3[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;" (assignment_expression "pOVar3[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0" (field_expression "pOVar3[2].super_Output_data._vptr_Output_data" (field_expression "pOVar3[2].super_Output_data" (subscript_expression "pOVar3[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (labeled_statement "gold::Layout::add_output_section_data\n            (in_ECX,".got",1,3,pOVar3,~-(uint)(is_relro == false) + ORDER_RELRO_LAST,true);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data\n            (in_ECX,".got",1,3,pOVar3,~-(uint)(is_relro == false) + ORDER_RELRO_LAST,true);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data\n            (in_ECX,".got",1,3,pOVar3,~-(uint)(is_relro == false) + ORDER_RELRO_LAST,true);" (call_expression "add_output_section_data\n            (in_ECX,".got",1,3,pOVar3,~-(uint)(is_relro == false) + ORDER_RELRO_LAST,true)" identifier (argument_list "(in_ECX,".got",1,3,pOVar3,~-(uint)(is_relro == false) + ORDER_RELRO_LAST,true)" ( identifier , (string_literal "".got"" " string_content ") , number_literal , number_literal , identifier , (binary_expression "~-(uint)(is_relro == false) + ORDER_RELRO_LAST" (unary_expression "~-(uint)(is_relro == false)" ~ (unary_expression "-(uint)(is_relro == false)" - (call_expression "(uint)(is_relro == false)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(is_relro == false)" ( (binary_expression "is_relro == false" identifier == false) ))))) + identifier) , true ))) ;))) (expression_statement "pOVar3 = (Output_section_data *)operator_new(0x30);" (assignment_expression "pOVar3 = (Output_section_data *)operator_new(0x30)" identifier = (cast_expression "(Output_section_data *)operator_new(0x30)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "(pOVar3->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_005dc56c;" (assignment_expression "(pOVar3->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_005dc56c" (field_expression "(pOVar3->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_005dc56c" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_got_plt_x86_64_005dc56c" & identifier))) ;) (expression_statement "pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)in_ECX;" (assignment_expression "pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)in_ECX" (field_expression "pOVar3[1].super_Output_data._vptr_Output_data" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)in_ECX" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).address_" & (field_expression "(pOVar3->super_Output_data).address_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).address_" & (field_expression "(pOVar3->super_Output_data).address_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).data_size_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).data_size_" & (field_expression "(pOVar3->super_Output_data).data_size_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).data_size_" & (field_expression "(pOVar3->super_Output_data).data_size_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).offset_" & (field_expression "(pOVar3->super_Output_data).offset_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).offset_" & (field_expression "(pOVar3->super_Output_data).offset_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = &(pOVar3->super_Output_data).field_0x1c;" (assignment_expression "puVar2 = &(pOVar3->super_Output_data).field_0x1c" identifier = (pointer_expression "&(pOVar3->super_Output_data).field_0x1c" & (field_expression "(pOVar3->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar2 = *puVar2 & 0xe0;" (assignment_expression "*puVar2 = *puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) & number_literal)) ;) (expression_statement "pOVar3->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar3->output_section_ = (Output_section *)0x0" (field_expression "pOVar3->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar3->addralign_ = 8;" (assignment_expression "*(undefined4 *)&pOVar3->addralign_ = 8" (pointer_expression "*(undefined4 *)&pOVar3->addralign_" * (cast_expression "(undefined4 *)&pOVar3->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3->addralign_" & (field_expression "pOVar3->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar3->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar3->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar3->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar3->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar3->addralign_ + 4)" ( (binary_expression "(int)&pOVar3->addralign_ + 4" (cast_expression "(int)&pOVar3->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3->addralign_" & (field_expression "pOVar3->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(Output_section_data **)(in_EAX + 0x1c) = pOVar3;" (assignment_expression "*(Output_section_data **)(in_EAX + 0x1c) = pOVar3" (pointer_expression "*(Output_section_data **)(in_EAX + 0x1c)" * (cast_expression "(Output_section_data **)(in_EAX + 0x1c)" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_EAX + 0x1c)" ( (binary_expression "in_EAX + 0x1c" identifier + number_literal) )))) = identifier) ;) (labeled_statement "gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);" (call_expression "add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro)" identifier (argument_list "(in_ECX,".got.plt",1,3,pOVar3,order,is_relro)" ( identifier , (string_literal "".got.plt"" " string_content ") , number_literal , number_literal , identifier , identifier , identifier ))) ;))) (expression_statement "od = *(Output_data **)(in_EAX + 0x1c);" (assignment_expression "od = *(Output_data **)(in_EAX + 0x1c)" identifier = (pointer_expression "*(Output_data **)(in_EAX + 0x1c)" * (cast_expression "(Output_data **)(in_EAX + 0x1c)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_EAX + 0x1c)" ( (binary_expression "in_EAX + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((od->field_0x1c & 2) == 0) {\n    *(undefined4 *)&od->data_size_ = 0x18;\n    *(undefined4 *)((int)&od->data_size_ + 4) = 0;\n    if (is_relro == false) {\n      in_ECX->increase_relro_ = in_ECX->increase_relro_ + 0x18;\n    }\n    pSVar4 = gold::Symbol_table::define_in_output_data\n                       (in_EDX,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,od,0,0,STT_OBJECT,\n                        STB_LOCAL,STV_HIDDEN,'\0',false,false);\n    *(Symbol **)(in_EAX + 0x28) = pSVar4;\n    pOVar3 = (Output_section_data *)operator_new(0x30);\n    (pOVar3->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_005dbed0;\n    puVar2 = &(pOVar3->super_Output_data).field_0x1c;\n    *puVar2 = *puVar2 & 0xe0;\n    pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT";\n    *(Output_section_data **)(in_EAX + 0x20) = pOVar3;\n    *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar3->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar3->addralign_ = 8;\n    *(undefined4 *)((int)&pOVar3->addralign_ + 4) = 0;\n    gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);\n    pOVar3 = (Output_section_data *)operator_new(0x5c);\n                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */\n    uVar5 = gold::Output_data::default_alignment_for_size(0x40);\n    *(int *)&pOVar3->addralign_ = (int)uVar5;\n    poVar1 = &pOVar3[1].super_Output_data.data_size_;\n    *(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = poVar1;\n    *(off_t **)&pOVar3[1].super_Output_data.data_size_ = poVar1;\n    *(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = poVar1;\n    *(int *)((int)&pOVar3->addralign_ + 4) = (int)(uVar5 >> 0x20);\n    (pOVar3->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_got_005dcb80;\n    *(Output_section_data **)(in_EAX + 0x24) = pOVar3;\n    *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;\n    puVar2 = &(pOVar3->super_Output_data).field_0x1c;\n    *puVar2 = *puVar2 & 0xe0;\n    pOVar3->output_section_ = (Output_section *)0x0;\n    pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n    *(undefined4 *)&pOVar3[1].super_Output_data.address_ = 0;\n    *(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0;\n    *(undefined4 *)&pOVar3[1].super_Output_data.offset_ = 0;\n    pOVar3[1].super_Output_data.field_0x1c = 0;\n    pOVar3[1].output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar3[1].addralign_ = 0;\n    *(undefined4 *)((int)&pOVar3[1].addralign_ + 4) = 0;\n    pOVar3[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n    gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);\n    return *(Output_data_got<64,_false> **)(in_EAX + 0x14);\n  }" if (parenthesized_expression "((od->field_0x1c & 2) == 0)" ( (binary_expression "(od->field_0x1c & 2) == 0" (parenthesized_expression "(od->field_0x1c & 2)" ( (binary_expression "od->field_0x1c & 2" (field_expression "od->field_0x1c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    *(undefined4 *)&od->data_size_ = 0x18;\n    *(undefined4 *)((int)&od->data_size_ + 4) = 0;\n    if (is_relro == false) {\n      in_ECX->increase_relro_ = in_ECX->increase_relro_ + 0x18;\n    }\n    pSVar4 = gold::Symbol_table::define_in_output_data\n                       (in_EDX,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,od,0,0,STT_OBJECT,\n                        STB_LOCAL,STV_HIDDEN,'\0',false,false);\n    *(Symbol **)(in_EAX + 0x28) = pSVar4;\n    pOVar3 = (Output_section_data *)operator_new(0x30);\n    (pOVar3->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_005dbed0;\n    puVar2 = &(pOVar3->super_Output_data).field_0x1c;\n    *puVar2 = *puVar2 & 0xe0;\n    pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT";\n    *(Output_section_data **)(in_EAX + 0x20) = pOVar3;\n    *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar3->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar3->addralign_ = 8;\n    *(undefined4 *)((int)&pOVar3->addralign_ + 4) = 0;\n    gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);\n    pOVar3 = (Output_section_data *)operator_new(0x5c);\n                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */\n    uVar5 = gold::Output_data::default_alignment_for_size(0x40);\n    *(int *)&pOVar3->addralign_ = (int)uVar5;\n    poVar1 = &pOVar3[1].super_Output_data.data_size_;\n    *(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = poVar1;\n    *(off_t **)&pOVar3[1].super_Output_data.data_size_ = poVar1;\n    *(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = poVar1;\n    *(int *)((int)&pOVar3->addralign_ + 4) = (int)(uVar5 >> 0x20);\n    (pOVar3->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_got_005dcb80;\n    *(Output_section_data **)(in_EAX + 0x24) = pOVar3;\n    *(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;\n    puVar2 = &(pOVar3->super_Output_data).field_0x1c;\n    *puVar2 = *puVar2 & 0xe0;\n    pOVar3->output_section_ = (Output_section *)0x0;\n    pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n    *(undefined4 *)&pOVar3[1].super_Output_data.address_ = 0;\n    *(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0;\n    *(undefined4 *)&pOVar3[1].super_Output_data.offset_ = 0;\n    pOVar3[1].super_Output_data.field_0x1c = 0;\n    pOVar3[1].output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar3[1].addralign_ = 0;\n    *(undefined4 *)((int)&pOVar3[1].addralign_ + 4) = 0;\n    pOVar3[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n    gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);\n    return *(Output_data_got<64,_false> **)(in_EAX + 0x14);\n  }" { (expression_statement "*(undefined4 *)&od->data_size_ = 0x18;" (assignment_expression "*(undefined4 *)&od->data_size_ = 0x18" (pointer_expression "*(undefined4 *)&od->data_size_" * (cast_expression "(undefined4 *)&od->data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&od->data_size_" & (field_expression "od->data_size_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&od->data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&od->data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&od->data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&od->data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&od->data_size_ + 4)" ( (binary_expression "(int)&od->data_size_ + 4" (cast_expression "(int)&od->data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&od->data_size_" & (field_expression "od->data_size_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (if_statement "if (is_relro == false) {\n      in_ECX->increase_relro_ = in_ECX->increase_relro_ + 0x18;\n    }" if (parenthesized_expression "(is_relro == false)" ( (binary_expression "is_relro == false" identifier == false) )) (compound_statement "{\n      in_ECX->increase_relro_ = in_ECX->increase_relro_ + 0x18;\n    }" { (expression_statement "in_ECX->increase_relro_ = in_ECX->increase_relro_ + 0x18;" (assignment_expression "in_ECX->increase_relro_ = in_ECX->increase_relro_ + 0x18" (field_expression "in_ECX->increase_relro_" identifier -> field_identifier) = (binary_expression "in_ECX->increase_relro_ + 0x18" (field_expression "in_ECX->increase_relro_" identifier -> field_identifier) + number_literal)) ;) })) (ERROR "pSVar4 = gold::" (assignment_expression "pSVar4 = gold" identifier = identifier) : :) (labeled_statement "Symbol_table::define_in_output_data\n                       (in_EDX,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,od,0,0,STT_OBJECT,\n                        STB_LOCAL,STV_HIDDEN,'\0',false,false);" statement_identifier : (ERROR ":" :) (expression_statement "define_in_output_data\n                       (in_EDX,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,od,0,0,STT_OBJECT,\n                        STB_LOCAL,STV_HIDDEN,'\0',false,false);" (call_expression "define_in_output_data\n                       (in_EDX,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,od,0,0,STT_OBJECT,\n                        STB_LOCAL,STV_HIDDEN,'\0',false,false)" identifier (argument_list "(in_EDX,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,od,0,0,STT_OBJECT,\n                        STB_LOCAL,STV_HIDDEN,'\0',false,false)" ( identifier , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , number_literal , number_literal , identifier , identifier , identifier , (char_literal "'\0'" ' escape_sequence ') , false , false ))) ;)) (expression_statement "*(Symbol **)(in_EAX + 0x28) = pSVar4;" (assignment_expression "*(Symbol **)(in_EAX + 0x28) = pSVar4" (pointer_expression "*(Symbol **)(in_EAX + 0x28)" * (cast_expression "(Symbol **)(in_EAX + 0x28)" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_EAX + 0x28)" ( (binary_expression "in_EAX + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "pOVar3 = (Output_section_data *)operator_new(0x30);" (assignment_expression "pOVar3 = (Output_section_data *)operator_new(0x30)" identifier = (cast_expression "(Output_section_data *)operator_new(0x30)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "(pOVar3->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_005dbed0;" (assignment_expression "(pOVar3->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_space_005dbed0" (field_expression "(pOVar3->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_space_005dbed0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_space_005dbed0" & identifier))) ;) (expression_statement "puVar2 = &(pOVar3->super_Output_data).field_0x1c;" (assignment_expression "puVar2 = &(pOVar3->super_Output_data).field_0x1c" identifier = (pointer_expression "&(pOVar3->super_Output_data).field_0x1c" & (field_expression "(pOVar3->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar2 = *puVar2 & 0xe0;" (assignment_expression "*puVar2 = *puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) & number_literal)) ;) (expression_statement "pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT";" (assignment_expression "pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT"" (field_expression "pOVar3[1].super_Output_data._vptr_Output_data" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)"** GOT IRELATIVE PLT"" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (string_literal ""** GOT IRELATIVE PLT"" " string_content "))) ;) (expression_statement "*(Output_section_data **)(in_EAX + 0x20) = pOVar3;" (assignment_expression "*(Output_section_data **)(in_EAX + 0x20) = pOVar3" (pointer_expression "*(Output_section_data **)(in_EAX + 0x20)" * (cast_expression "(Output_section_data **)(in_EAX + 0x20)" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_EAX + 0x20)" ( (binary_expression "in_EAX + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).address_" & (field_expression "(pOVar3->super_Output_data).address_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).address_" & (field_expression "(pOVar3->super_Output_data).address_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).data_size_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).data_size_" & (field_expression "(pOVar3->super_Output_data).data_size_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).data_size_" & (field_expression "(pOVar3->super_Output_data).data_size_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).offset_" & (field_expression "(pOVar3->super_Output_data).offset_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).offset_" & (field_expression "(pOVar3->super_Output_data).offset_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar3->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar3->output_section_ = (Output_section *)0x0" (field_expression "pOVar3->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar3->addralign_ = 8;" (assignment_expression "*(undefined4 *)&pOVar3->addralign_ = 8" (pointer_expression "*(undefined4 *)&pOVar3->addralign_" * (cast_expression "(undefined4 *)&pOVar3->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3->addralign_" & (field_expression "pOVar3->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar3->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar3->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar3->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar3->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar3->addralign_ + 4)" ( (binary_expression "(int)&pOVar3->addralign_ + 4" (cast_expression "(int)&pOVar3->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3->addralign_" & (field_expression "pOVar3->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);" (call_expression "add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro)" identifier (argument_list "(in_ECX,".got.plt",1,3,pOVar3,order,is_relro)" ( identifier , (string_literal "".got.plt"" " string_content ") , number_literal , number_literal , identifier , identifier , identifier ))) ;))) (expression_statement "pOVar3 = (Output_section_data *)operator_new(0x5c);" (assignment_expression "pOVar3 = (Output_section_data *)operator_new(0x5c)" identifier = (cast_expression "(Output_section_data *)operator_new(0x5c)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x5c)" identifier (argument_list "(0x5c)" ( number_literal ))))) ;) comment (ERROR "uVar5 = gold::" (assignment_expression "uVar5 = gold" identifier = identifier) : :) (labeled_statement "Output_data::default_alignment_for_size(0x40);" statement_identifier : (ERROR ":" :) (expression_statement "default_alignment_for_size(0x40);" (call_expression "default_alignment_for_size(0x40)" identifier (argument_list "(0x40)" ( number_literal ))) ;)) (expression_statement "*(int *)&pOVar3->addralign_ = (int)uVar5;" (assignment_expression "*(int *)&pOVar3->addralign_ = (int)uVar5" (pointer_expression "*(int *)&pOVar3->addralign_" * (cast_expression "(int *)&pOVar3->addralign_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3->addralign_" & (field_expression "pOVar3->addralign_" identifier -> field_identifier)))) = (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "poVar1 = &pOVar3[1].super_Output_data.data_size_;" (assignment_expression "poVar1 = &pOVar3[1].super_Output_data.data_size_" identifier = (pointer_expression "&pOVar3[1].super_Output_data.data_size_" & (field_expression "pOVar3[1].super_Output_data.data_size_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) ;) (expression_statement "*(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = poVar1;" (assignment_expression "*(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = poVar1" (pointer_expression "*(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4)" * (cast_expression "(off_t **)((int)&pOVar3[1].super_Output_data.data_size_ + 4)" ( (type_descriptor "off_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar3[1].super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&pOVar3[1].super_Output_data.data_size_ + 4" (cast_expression "(int)&pOVar3[1].super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3[1].super_Output_data.data_size_" & (field_expression "pOVar3[1].super_Output_data.data_size_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(off_t **)&pOVar3[1].super_Output_data.data_size_ = poVar1;" (assignment_expression "*(off_t **)&pOVar3[1].super_Output_data.data_size_ = poVar1" (pointer_expression "*(off_t **)&pOVar3[1].super_Output_data.data_size_" * (cast_expression "(off_t **)&pOVar3[1].super_Output_data.data_size_" ( (type_descriptor "off_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar3[1].super_Output_data.data_size_" & (field_expression "pOVar3[1].super_Output_data.data_size_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "*(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = poVar1;" (assignment_expression "*(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = poVar1" (pointer_expression "*(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4)" * (cast_expression "(off_t **)((int)&pOVar3[1].super_Output_data.offset_ + 4)" ( (type_descriptor "off_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar3[1].super_Output_data.offset_ + 4)" ( (binary_expression "(int)&pOVar3[1].super_Output_data.offset_ + 4" (cast_expression "(int)&pOVar3[1].super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3[1].super_Output_data.offset_" & (field_expression "pOVar3[1].super_Output_data.offset_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)&pOVar3->addralign_ + 4) = (int)(uVar5 >> 0x20);" (assignment_expression "*(int *)((int)&pOVar3->addralign_ + 4) = (int)(uVar5 >> 0x20)" (pointer_expression "*(int *)((int)&pOVar3->addralign_ + 4)" * (cast_expression "(int *)((int)&pOVar3->addralign_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar3->addralign_ + 4)" ( (binary_expression "(int)&pOVar3->addralign_ + 4" (cast_expression "(int)&pOVar3->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3->addralign_" & (field_expression "pOVar3->addralign_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)(uVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "(pOVar3->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_got_005dcb80;" (assignment_expression "(pOVar3->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_got_005dcb80" (field_expression "(pOVar3->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_got_005dcb80" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_got_005dcb80" & identifier))) ;) (expression_statement "*(Output_section_data **)(in_EAX + 0x24) = pOVar3;" (assignment_expression "*(Output_section_data **)(in_EAX + 0x24) = pOVar3" (pointer_expression "*(Output_section_data **)(in_EAX + 0x24)" * (cast_expression "(Output_section_data **)(in_EAX + 0x24)" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_EAX + 0x24)" ( (binary_expression "in_EAX + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).address_" & (field_expression "(pOVar3->super_Output_data).address_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).address_" & (field_expression "(pOVar3->super_Output_data).address_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).data_size_ = 0" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).data_size_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).data_size_" & (field_expression "(pOVar3->super_Output_data).data_size_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).data_size_" & (field_expression "(pOVar3->super_Output_data).data_size_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar3->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar3->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar3->super_Output_data).offset_" & (field_expression "(pOVar3->super_Output_data).offset_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar3->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar3->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar3->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar3->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar3->super_Output_data).offset_" & (field_expression "(pOVar3->super_Output_data).offset_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = &(pOVar3->super_Output_data).field_0x1c;" (assignment_expression "puVar2 = &(pOVar3->super_Output_data).field_0x1c" identifier = (pointer_expression "&(pOVar3->super_Output_data).field_0x1c" & (field_expression "(pOVar3->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar2 = *puVar2 & 0xe0;" (assignment_expression "*puVar2 = *puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) & number_literal)) ;) (expression_statement "pOVar3->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar3->output_section_ = (Output_section *)0x0" (field_expression "pOVar3->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;" (assignment_expression "pOVar3[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0" (field_expression "pOVar3[1].super_Output_data._vptr_Output_data" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar3[1].super_Output_data.address_ = 0;" (assignment_expression "*(undefined4 *)&pOVar3[1].super_Output_data.address_ = 0" (pointer_expression "*(undefined4 *)&pOVar3[1].super_Output_data.address_" * (cast_expression "(undefined4 *)&pOVar3[1].super_Output_data.address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3[1].super_Output_data.address_" & (field_expression "pOVar3[1].super_Output_data.address_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar3[1].super_Output_data.address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar3[1].super_Output_data.address_ + 4)" ( (binary_expression "(int)&pOVar3[1].super_Output_data.address_ + 4" (cast_expression "(int)&pOVar3[1].super_Output_data.address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3[1].super_Output_data.address_" & (field_expression "pOVar3[1].super_Output_data.address_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&pOVar3[1].super_Output_data.offset_ = 0;" (assignment_expression "*(undefined4 *)&pOVar3[1].super_Output_data.offset_ = 0" (pointer_expression "*(undefined4 *)&pOVar3[1].super_Output_data.offset_" * (cast_expression "(undefined4 *)&pOVar3[1].super_Output_data.offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3[1].super_Output_data.offset_" & (field_expression "pOVar3[1].super_Output_data.offset_" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "pOVar3[1].super_Output_data.field_0x1c = 0;" (assignment_expression "pOVar3[1].super_Output_data.field_0x1c = 0" (field_expression "pOVar3[1].super_Output_data.field_0x1c" (field_expression "pOVar3[1].super_Output_data" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pOVar3[1].output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar3[1].output_section_ = (Output_section *)0x0" (field_expression "pOVar3[1].output_section_" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar3[1].addralign_ = 0;" (assignment_expression "*(undefined4 *)&pOVar3[1].addralign_ = 0" (pointer_expression "*(undefined4 *)&pOVar3[1].addralign_" * (cast_expression "(undefined4 *)&pOVar3[1].addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar3[1].addralign_" & (field_expression "pOVar3[1].addralign_" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar3[1].addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar3[1].addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar3[1].addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar3[1].addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar3[1].addralign_ + 4)" ( (binary_expression "(int)&pOVar3[1].addralign_ + 4" (cast_expression "(int)&pOVar3[1].addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar3[1].addralign_" & (field_expression "pOVar3[1].addralign_" (subscript_expression "pOVar3[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar3[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;" (assignment_expression "pOVar3[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0" (field_expression "pOVar3[2].super_Output_data._vptr_Output_data" (field_expression "pOVar3[2].super_Output_data" (subscript_expression "pOVar3[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (labeled_statement "gold::Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro);" (call_expression "add_output_section_data(in_ECX,".got.plt",1,3,pOVar3,order,is_relro)" identifier (argument_list "(in_ECX,".got.plt",1,3,pOVar3,order,is_relro)" ( identifier , (string_literal "".got.plt"" " string_content ") , number_literal , number_literal , identifier , identifier , identifier ))) ;))) (return_statement "return *(Output_data_got<64,_false> **)(in_EAX + 0x14);" return (pointer_expression "*(Output_data_got<64,_false> **)(in_EAX + 0x14)" * (call_expression "(Output_data_got<64,_false> **)(in_EAX + 0x14)" (parenthesized_expression "(Output_data_got<64,_false> **)" ( (comma_expression "Output_data_got<64,_false> **" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(in_EAX + 0x14)" ( (binary_expression "in_EAX + 0x14" identifier + number_literal) )))) ;) })) comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;)) (ERROR "}" }))
(translation_unit "int __regparm3 FUN_0007b0a0(int param_1,int param_2,int param_3)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 extraout_ECX;\n  char cVar6;\n  undefined8 uVar7;\n  undefined **ppuVar8;\n  char *pcVar9;\n  \n  if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }\n  if ((param_2 == 0) || (param_3 == 0)) {\n                    \n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);\n  cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;\n  puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n  uVar7 = FUN_002c5bb0(0x40);\n  puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n  ppuVar8 = &PTR_FUN_005dcb80;\n  *puVar3 = &PTR_FUN_005dcb80;\n  puVar3[9] = (int)uVar7;\n  puVar4 = puVar3 + 0xe;\n  *(undefined4 **)(param_1 + 0x14) = puVar3;\n  puVar3[0xf] = puVar4;\n  puVar3[0xe] = puVar4;\n  puVar3[0x11] = puVar4;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n  puVar3[8] = 0;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0x10] = 0;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n  FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);\n  puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n  *puVar4 = &PTR_FUN_005dc56c;\n  puVar4[0xb] = param_3;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0;\n  puVar4[4] = 0;\n  puVar4[5] = 0xffffffff;\n  puVar4[6] = 0xffffffff;\n  *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n  puVar4[8] = 0;\n  puVar4[9] = 8;\n  puVar4[10] = 0;\n  *(undefined4 **)(param_1 + 0x1c) = puVar4;\n  pcVar9 = ".got.plt";\n  FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");\n  iVar2 = *(int *)(param_1 + 0x1c);\n  if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }\n                    \n  FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);\n}\n\n" (function_definition "int __regparm3 FUN_0007b0a0(int param_1,int param_2,int param_3)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 extraout_ECX;\n  char cVar6;\n  undefined8 uVar7;\n  undefined **ppuVar8;\n  char *pcVar9;\n  \n  if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }\n  if ((param_2 == 0) || (param_3 == 0)) {\n                    \n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);\n  cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;\n  puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n  uVar7 = FUN_002c5bb0(0x40);\n  puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n  ppuVar8 = &PTR_FUN_005dcb80;\n  *puVar3 = &PTR_FUN_005dcb80;\n  puVar3[9] = (int)uVar7;\n  puVar4 = puVar3 + 0xe;\n  *(undefined4 **)(param_1 + 0x14) = puVar3;\n  puVar3[0xf] = puVar4;\n  puVar3[0xe] = puVar4;\n  puVar3[0x11] = puVar4;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n  puVar3[8] = 0;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0x10] = 0;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n  FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);\n  puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n  *puVar4 = &PTR_FUN_005dc56c;\n  puVar4[0xb] = param_3;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0;\n  puVar4[4] = 0;\n  puVar4[5] = 0xffffffff;\n  puVar4[6] = 0xffffffff;\n  *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n  puVar4[8] = 0;\n  puVar4[9] = 8;\n  puVar4[10] = 0;\n  *(undefined4 **)(param_1 + 0x1c) = puVar4;\n  pcVar9 = ".got.plt";\n  FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");\n  iVar2 = *(int *)(param_1 + 0x1c);\n  if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }\n                    \n  FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0007b0a0(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 extraout_ECX;\n  char cVar6;\n  undefined8 uVar7;\n  undefined **ppuVar8;\n  char *pcVar9;\n  \n  if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }\n  if ((param_2 == 0) || (param_3 == 0)) {\n                    \n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);\n  cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;\n  puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n  uVar7 = FUN_002c5bb0(0x40);\n  puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n  ppuVar8 = &PTR_FUN_005dcb80;\n  *puVar3 = &PTR_FUN_005dcb80;\n  puVar3[9] = (int)uVar7;\n  puVar4 = puVar3 + 0xe;\n  *(undefined4 **)(param_1 + 0x14) = puVar3;\n  puVar3[0xf] = puVar4;\n  puVar3[0xe] = puVar4;\n  puVar3[0x11] = puVar4;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n  puVar3[8] = 0;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0x10] = 0;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n  FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);\n  puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n  *puVar4 = &PTR_FUN_005dc56c;\n  puVar4[0xb] = param_3;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0;\n  puVar4[4] = 0;\n  puVar4[5] = 0xffffffff;\n  puVar4[6] = 0xffffffff;\n  *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n  puVar4[8] = 0;\n  puVar4[9] = 8;\n  puVar4[10] = 0;\n  *(undefined4 **)(param_1 + 0x1c) = puVar4;\n  pcVar9 = ".got.plt";\n  FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");\n  iVar2 = *(int *)(param_1 + 0x1c);\n  if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }\n                    \n  FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" ( (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return *(int *)(param_1 + 0x14);\n  }" { (return_statement "return *(int *)(param_1 + 0x14);" return (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ;) })) (if_statement "if ((param_2 == 0) || (param_3 == 0)) {\n                    \n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }" if (parenthesized_expression "((param_2 == 0) || (param_3 == 0))" ( (binary_expression "(param_2 == 0) || (param_3 == 0)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }" { (expression_statement "FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);" (call_expression "FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0)" identifier (argument_list "("../../gold/x86_64.cc",0x5bd,"got_section",0)" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""got_section"" " string_content ") , number_literal ))) ;) })) (if_statement "if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) == 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);" (assignment_expression "cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" identifier = (pointer_expression "*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" * (cast_expression "(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) + 0x55c1" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" * (cast_expression "(int *)(DAT_005ea7c8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;" (assignment_expression "cVar6 = (-(cVar1 == '\0') & 2U) + 0x13" identifier = (binary_expression "(-(cVar1 == '\0') & 2U) + 0x13" (parenthesized_expression "(-(cVar1 == '\0') & 2U)" ( (binary_expression "-(cVar1 == '\0') & 2U" (unary_expression "-(cVar1 == '\0')" - (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (expression_statement "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c)" identifier = (cast_expression "(undefined4 *)FUN_003ac4d0(0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x5c)" identifier (argument_list "(0x5c)" ( number_literal ))))) ;) (expression_statement "uVar7 = FUN_002c5bb0(0x40);" (assignment_expression "uVar7 = FUN_002c5bb0(0x40)" identifier = (call_expression "FUN_002c5bb0(0x40)" identifier (argument_list "(0x40)" ( number_literal )))) ;) (expression_statement "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20)" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "ppuVar8 = &PTR_FUN_005dcb80;" (assignment_expression "ppuVar8 = &PTR_FUN_005dcb80" identifier = (pointer_expression "&PTR_FUN_005dcb80" & identifier)) ;) (expression_statement "*puVar3 = &PTR_FUN_005dcb80;" (assignment_expression "*puVar3 = &PTR_FUN_005dcb80" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_005dcb80" & identifier)) ;) (expression_statement "puVar3[9] = (int)uVar7;" (assignment_expression "puVar3[9] = (int)uVar7" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar4 = puVar3 + 0xe;" (assignment_expression "puVar4 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) (expression_statement "*(undefined4 **)(param_1 + 0x14) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 0x14) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 0x14)" * (cast_expression "(undefined4 **)(param_1 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3[0xf] = puVar4;" (assignment_expression "puVar3[0xf] = puVar4" (subscript_expression "puVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xe] = puVar4;" (assignment_expression "puVar3[0xe] = puVar4" (subscript_expression "puVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0x11] = puVar4;" (assignment_expression "puVar3[0x11] = puVar4" (subscript_expression "puVar3[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = 0;" (assignment_expression "puVar3[0xb] = 0" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc] = 0;" (assignment_expression "puVar3[0xc] = 0" (subscript_expression "puVar3[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xd] = 0;" (assignment_expression "puVar3[0xd] = 0" (subscript_expression "puVar3[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x10] = 0;" (assignment_expression "puVar3[0x10] = 0" (subscript_expression "puVar3[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)(puVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)(puVar3 + 0x12)" * (cast_expression "(undefined1 *)(puVar3 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x12)" ( (binary_expression "puVar3 + 0x12" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3[0x13] = 0;" (assignment_expression "puVar3[0x13] = 0" (subscript_expression "puVar3[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x14] = 0;" (assignment_expression "puVar3[0x14] = 0" (subscript_expression "puVar3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x15] = 0;" (assignment_expression "puVar3[0x15] = 0" (subscript_expression "puVar3[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x16] = 0;" (assignment_expression "puVar3[0x16] = 0" (subscript_expression "puVar3[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);" (call_expression "FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1)" identifier (argument_list "(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1)" ( identifier , (pointer_expression "&DAT_0044d406" & identifier) , number_literal , number_literal , number_literal , identifier , (binary_expression "~-(uint)(cVar1 == '\0') + 0x14" (unary_expression "~-(uint)(cVar1 == '\0')" ~ (unary_expression "-(uint)(cVar1 == '\0')" - (call_expression "(uint)(cVar1 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))))) + number_literal) , number_literal ))) ;) (expression_statement "puVar4 = (undefined4 *)FUN_003ac4d0(0x30);" (assignment_expression "puVar4 = (undefined4 *)FUN_003ac4d0(0x30)" identifier = (cast_expression "(undefined4 *)FUN_003ac4d0(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*puVar4 = &PTR_FUN_005dc56c;" (assignment_expression "*puVar4 = &PTR_FUN_005dc56c" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_005dc56c" & identifier)) ;) (expression_statement "puVar4[0xb] = param_3;" (assignment_expression "puVar4[0xb] = param_3" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0xffffffff;" (assignment_expression "puVar4[5] = 0xffffffff" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0xffffffff;" (assignment_expression "puVar4[6] = 0xffffffff" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[9] = 8;" (assignment_expression "puVar4[9] = 8" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(param_1 + 0x1c) = puVar4;" (assignment_expression "*(undefined4 **)(param_1 + 0x1c) = puVar4" (pointer_expression "*(undefined4 **)(param_1 + 0x1c)" * (cast_expression "(undefined4 **)(param_1 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar9 = ".got.plt";" (assignment_expression "pcVar9 = ".got.plt"" identifier = (string_literal "".got.plt"" " string_content ")) ;) (expression_statement "FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");" (call_expression "FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt")" identifier (argument_list "(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt")" ( identifier , (string_literal "".got.plt"" " string_content ") , number_literal , number_literal , number_literal , identifier , identifier , identifier , identifier , identifier , (string_literal "".got.plt"" " string_content ") ))) ;) (expression_statement "iVar2 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x1c)" identifier = (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\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    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }" { (expression_statement "*(undefined4 *)(iVar2 + 0xc) = 0x18;" (assignment_expression "*(undefined4 *)(iVar2 + 0xc) = 0x18" (pointer_expression "*(undefined4 *)(iVar2 + 0xc)" * (cast_expression "(undefined4 *)(iVar2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (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) ;) (if_statement "if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }" { (expression_statement "*(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;" (assignment_expression "*(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18" (pointer_expression "*(int *)(param_3 + 0x170)" * (cast_expression "(int *)(param_3 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x170)" ( (binary_expression "param_3 + 0x170" identifier + number_literal) )))) = (binary_expression "*(int *)(param_3 + 0x170) + 0x18" (pointer_expression "*(int *)(param_3 + 0x170)" * (cast_expression "(int *)(param_3 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x170)" ( (binary_expression "param_3 + 0x170" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);" (assignment_expression "uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0)" identifier = (call_expression "FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0)" identifier (argument_list "(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0)" ( identifier , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal , number_literal , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x28) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = (undefined4 *)FUN_003ac4d0(0x30);" (assignment_expression "puVar4 = (undefined4 *)FUN_003ac4d0(0x30)" identifier = (cast_expression "(undefined4 *)FUN_003ac4d0(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*puVar4 = &PTR_FUN_005dbed0;" (assignment_expression "*puVar4 = &PTR_FUN_005dbed0" (pointer_expression "*puVar4" * identifier) = (pointer_expression "&PTR_FUN_005dbed0" & identifier)) ;) (expression_statement "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" * (cast_expression "(byte *)(puVar4 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar4[0xb] = "** GOT IRELATIVE PLT";" (assignment_expression "puVar4[0xb] = "** GOT IRELATIVE PLT"" (subscript_expression "puVar4[0xb]" identifier [ number_literal ]) = (string_literal ""** GOT IRELATIVE PLT"" " string_content ")) ;) (expression_statement "*(undefined4 **)(param_1 + 0x20) = puVar4;" (assignment_expression "*(undefined4 **)(param_1 + 0x20) = puVar4" (pointer_expression "*(undefined4 **)(param_1 + 0x20)" * (cast_expression "(undefined4 **)(param_1 + 0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = 0xffffffff;" (assignment_expression "puVar4[5] = 0xffffffff" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0xffffffff;" (assignment_expression "puVar4[6] = 0xffffffff" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[9] = 8;" (assignment_expression "puVar4[9] = 8" (subscript_expression "puVar4[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);" (call_expression "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1)" identifier (argument_list "(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1)" ( identifier , identifier , number_literal , number_literal , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c)" identifier = (cast_expression "(undefined4 *)FUN_003ac4d0(0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x5c)" identifier (argument_list "(0x5c)" ( number_literal ))))) ;) (expression_statement "uVar7 = FUN_002c5bb0(0x40);" (assignment_expression "uVar7 = FUN_002c5bb0(0x40)" identifier = (call_expression "FUN_002c5bb0(0x40)" identifier (argument_list "(0x40)" ( number_literal )))) ;) (expression_statement "puVar3[9] = (int)uVar7;" (assignment_expression "puVar3[9] = (int)uVar7" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar4 = puVar3 + 0xe;" (assignment_expression "puVar4 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar3[0xf] = puVar4;" (assignment_expression "puVar3[0xf] = puVar4" (subscript_expression "puVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xe] = puVar4;" (assignment_expression "puVar3[0xe] = puVar4" (subscript_expression "puVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0x11] = puVar4;" (assignment_expression "puVar3[0x11] = puVar4" (subscript_expression "puVar3[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20)" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*puVar3 = ppuVar8;" (assignment_expression "*puVar3 = ppuVar8" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 0x24) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 0x24) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 0x24)" * (cast_expression "(undefined4 **)(param_1 + 0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = 0;" (assignment_expression "puVar3[0xb] = 0" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc] = 0;" (assignment_expression "puVar3[0xc] = 0" (subscript_expression "puVar3[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xd] = 0;" (assignment_expression "puVar3[0xd] = 0" (subscript_expression "puVar3[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x10] = 0;" (assignment_expression "puVar3[0x10] = 0" (subscript_expression "puVar3[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)(puVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)(puVar3 + 0x12)" * (cast_expression "(undefined1 *)(puVar3 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x12)" ( (binary_expression "puVar3 + 0x12" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3[0x13] = 0;" (assignment_expression "puVar3[0x13] = 0" (subscript_expression "puVar3[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x14] = 0;" (assignment_expression "puVar3[0x14] = 0" (subscript_expression "puVar3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x15] = 0;" (assignment_expression "puVar3[0x15] = 0" (subscript_expression "puVar3[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x16] = 0;" (assignment_expression "puVar3[0x16] = 0" (subscript_expression "puVar3[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);" (call_expression "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1)" identifier (argument_list "(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1)" ( identifier , identifier , number_literal , number_literal , number_literal , identifier , identifier , identifier ))) ;) (return_statement "return *(int *)(param_1 + 0x14);" return (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ;) })) (expression_statement "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);" (call_expression "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX)" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " 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) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (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 IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , 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 { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) & LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , LIT , LIT , IDENT , (binary_expression (unary_expression ~ (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))))) + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , LIT , IDENT , IDENT , IDENT , IDENT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (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 = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT , IDENT , IDENT , IDENT ))) ;) (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "int __regparm3 FUN_0007b0a0(int param_1,int param_2,int param_3)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 extraout_ECX;\n  char cVar6;\n  undefined8 uVar7;\n  undefined **ppuVar8;\n  char *pcVar9;\n  \n  if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }\n  if ((param_2 == 0) || (param_3 == 0)) {\n                    \n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);\n  cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;\n  puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n  uVar7 = FUN_002c5bb0(0x40);\n  puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n  ppuVar8 = &PTR_FUN_005dcb80;\n  *puVar3 = &PTR_FUN_005dcb80;\n  puVar3[9] = (int)uVar7;\n  puVar4 = puVar3 + 0xe;\n  *(undefined4 **)(param_1 + 0x14) = puVar3;\n  puVar3[0xf] = puVar4;\n  puVar3[0xe] = puVar4;\n  puVar3[0x11] = puVar4;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n  puVar3[8] = 0;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0x10] = 0;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n  FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);\n  puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n  *puVar4 = &PTR_FUN_005dc56c;\n  puVar4[0xb] = param_3;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0;\n  puVar4[4] = 0;\n  puVar4[5] = 0xffffffff;\n  puVar4[6] = 0xffffffff;\n  *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n  puVar4[8] = 0;\n  puVar4[9] = 8;\n  puVar4[10] = 0;\n  *(undefined4 **)(param_1 + 0x1c) = puVar4;\n  pcVar9 = ".got.plt";\n  FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");\n  iVar2 = *(int *)(param_1 + 0x1c);\n  if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }\n                    \n  FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0007b0a0(int param_1,int param_2,int param_3)" (identifier "FUN_0007b0a0") (parameter_list "(int param_1,int param_2,int param_3)" (( "(") (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")) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 extraout_ECX;\n  char cVar6;\n  undefined8 uVar7;\n  undefined **ppuVar8;\n  char *pcVar9;\n  \n  if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }\n  if ((param_2 == 0) || (param_3 == 0)) {\n                    \n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);\n  cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;\n  puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n  uVar7 = FUN_002c5bb0(0x40);\n  puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n  ppuVar8 = &PTR_FUN_005dcb80;\n  *puVar3 = &PTR_FUN_005dcb80;\n  puVar3[9] = (int)uVar7;\n  puVar4 = puVar3 + 0xe;\n  *(undefined4 **)(param_1 + 0x14) = puVar3;\n  puVar3[0xf] = puVar4;\n  puVar3[0xe] = puVar4;\n  puVar3[0x11] = puVar4;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n  puVar3[8] = 0;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0x10] = 0;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n  FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);\n  puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n  *puVar4 = &PTR_FUN_005dc56c;\n  puVar4[0xb] = param_3;\n  puVar4[1] = 0;\n  puVar4[2] = 0;\n  puVar4[3] = 0;\n  puVar4[4] = 0;\n  puVar4[5] = 0xffffffff;\n  puVar4[6] = 0xffffffff;\n  *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n  puVar4[8] = 0;\n  puVar4[9] = 8;\n  puVar4[10] = 0;\n  *(undefined4 **)(param_1 + 0x1c) = puVar4;\n  pcVar9 = ".got.plt";\n  FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");\n  iVar2 = *(int *)(param_1 + 0x1c);\n  if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }\n                    \n  FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "undefined **ppuVar8;" (type_identifier "undefined") (pointer_declarator "**ppuVar8" (* "*") (pointer_declarator "*ppuVar8" (* "*") (identifier "ppuVar8"))) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n    return *(int *)(param_1 + 0x14);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return *(int *)(param_1 + 0x14);\n  }" ({ "{") (return_statement "return *(int *)(param_1 + 0x14);" (return "return") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (} "}"))) (if_statement "if ((param_2 == 0) || (param_3 == 0)) {\n                    \n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }" (if "if") (parenthesized_expression "((param_2 == 0) || (param_3 == 0))" (( "(") (binary_expression "(param_2 == 0) || (param_3 == 0)" (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);" (call_expression "FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0)" (identifier "FUN_002446e0") (argument_list "("../../gold/x86_64.cc",0x5bd,"got_section",0)" (( "(") (string_literal ""../../gold/x86_64.cc"" (" """) (string_content "../../gold/x86_64.cc") (" """)) (, ",") (number_literal "0x5bd") (, ",") (string_literal ""got_section"" (" """) (string_content "got_section") (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_005ea7c8 + 8) == 0" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 8)" (( "(") (binary_expression "DAT_005ea7c8 + 8" (identifier "DAT_005ea7c8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_002446e0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);" (assignment_expression "cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" (* "*") (cast_expression "(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) + 0x55c1)" (( "(") (binary_expression "*(int *)(DAT_005ea7c8 + 8) + 0x55c1" (pointer_expression "*(int *)(DAT_005ea7c8 + 8)" (* "*") (cast_expression "(int *)(DAT_005ea7c8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 8)" (( "(") (binary_expression "DAT_005ea7c8 + 8" (identifier "DAT_005ea7c8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x55c1")) () ")"))))) (; ";")) (expression_statement "cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;" (assignment_expression "cVar6 = (-(cVar1 == '\0') & 2U) + 0x13" (identifier "cVar6") (= "=") (binary_expression "(-(cVar1 == '\0') & 2U) + 0x13" (parenthesized_expression "(-(cVar1 == '\0') & 2U)" (( "(") (binary_expression "-(cVar1 == '\0') & 2U" (unary_expression "-(cVar1 == '\0')" (- "-") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) (& "&") (number_literal "2U")) () ")")) (+ "+") (number_literal "0x13"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_003ac4d0(0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac4d0(0x5c)" (identifier "FUN_003ac4d0") (argument_list "(0x5c)" (( "(") (number_literal "0x5c") () ")"))))) (; ";")) (expression_statement "uVar7 = FUN_002c5bb0(0x40);" (assignment_expression "uVar7 = FUN_002c5bb0(0x40)" (identifier "uVar7") (= "=") (call_expression "FUN_002c5bb0(0x40)" (identifier "FUN_002c5bb0") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20)" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "ppuVar8 = &PTR_FUN_005dcb80;" (assignment_expression "ppuVar8 = &PTR_FUN_005dcb80" (identifier "ppuVar8") (= "=") (pointer_expression "&PTR_FUN_005dcb80" (& "&") (identifier "PTR_FUN_005dcb80"))) (; ";")) (expression_statement "*puVar3 = &PTR_FUN_005dcb80;" (assignment_expression "*puVar3 = &PTR_FUN_005dcb80" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "&PTR_FUN_005dcb80" (& "&") (identifier "PTR_FUN_005dcb80"))) (; ";")) (expression_statement "puVar3[9] = (int)uVar7;" (assignment_expression "puVar3[9] = (int)uVar7" (subscript_expression "puVar3[9]" (identifier "puVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7"))) (; ";")) (expression_statement "puVar4 = puVar3 + 0xe;" (assignment_expression "puVar4 = puVar3 + 0xe" (identifier "puVar4") (= "=") (binary_expression "puVar3 + 0xe" (identifier "puVar3") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x14) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 0x14) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "puVar3[0xf] = puVar4;" (assignment_expression "puVar3[0xf] = puVar4" (subscript_expression "puVar3[0xf]" (identifier "puVar3") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar3[0xe] = puVar4;" (assignment_expression "puVar3[0xe] = puVar4" (subscript_expression "puVar3[0xe]" (identifier "puVar3") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar3[0x11] = puVar4;" (assignment_expression "puVar3[0x11] = puVar4" (subscript_expression "puVar3[0x11]" (identifier "puVar3") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" (* "*") (cast_expression "(byte *)(puVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" (* "*") (cast_expression "(byte *)(puVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xb] = 0;" (assignment_expression "puVar3[0xb] = 0" (subscript_expression "puVar3[0xb]" (identifier "puVar3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xc] = 0;" (assignment_expression "puVar3[0xc] = 0" (subscript_expression "puVar3[0xc]" (identifier "puVar3") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xd] = 0;" (assignment_expression "puVar3[0xd] = 0" (subscript_expression "puVar3[0xd]" (identifier "puVar3") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x10] = 0;" (assignment_expression "puVar3[0x10] = 0" (subscript_expression "puVar3[0x10]" (identifier "puVar3") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)(puVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)(puVar3 + 0x12)" (* "*") (cast_expression "(undefined1 *)(puVar3 + 0x12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x12)" (( "(") (binary_expression "puVar3 + 0x12" (identifier "puVar3") (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x13] = 0;" (assignment_expression "puVar3[0x13] = 0" (subscript_expression "puVar3[0x13]" (identifier "puVar3") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x14] = 0;" (assignment_expression "puVar3[0x14] = 0" (subscript_expression "puVar3[0x14]" (identifier "puVar3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x15] = 0;" (assignment_expression "puVar3[0x15] = 0" (subscript_expression "puVar3[0x15]" (identifier "puVar3") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x16] = 0;" (assignment_expression "puVar3[0x16] = 0" (subscript_expression "puVar3[0x16]" (identifier "puVar3") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);" (call_expression "FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1)" (identifier "FUN_0027afd0") (argument_list "(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1)" (( "(") (identifier "param_3") (, ",") (pointer_expression "&DAT_0044d406" (& "&") (identifier "DAT_0044d406")) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "puVar3") (, ",") (binary_expression "~-(uint)(cVar1 == '\0') + 0x14" (unary_expression "~-(uint)(cVar1 == '\0')" (~ "~") (unary_expression "-(uint)(cVar1 == '\0')" (- "-") (call_expression "(uint)(cVar1 == '\0')" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))))) (+ "+") (number_literal "0x14")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)FUN_003ac4d0(0x30);" (assignment_expression "puVar4 = (undefined4 *)FUN_003ac4d0(0x30)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)FUN_003ac4d0(0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac4d0(0x30)" (identifier "FUN_003ac4d0") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "*puVar4 = &PTR_FUN_005dc56c;" (assignment_expression "*puVar4 = &PTR_FUN_005dc56c" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "&PTR_FUN_005dc56c" (& "&") (identifier "PTR_FUN_005dc56c"))) (; ";")) (expression_statement "puVar4[0xb] = param_3;" (assignment_expression "puVar4[0xb] = param_3" (subscript_expression "puVar4[0xb]" (identifier "puVar4") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[5] = 0xffffffff;" (assignment_expression "puVar4[5] = 0xffffffff" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar4[6] = 0xffffffff;" (assignment_expression "puVar4[6] = 0xffffffff" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" (* "*") (cast_expression "(byte *)(puVar4 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 7)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" (* "*") (cast_expression "(byte *)(puVar4 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 7)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[9] = 8;" (assignment_expression "puVar4[9] = 8" (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x1c) = puVar4;" (assignment_expression "*(undefined4 **)(param_1 + 0x1c) = puVar4" (pointer_expression "*(undefined4 **)(param_1 + 0x1c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "pcVar9 = ".got.plt";" (assignment_expression "pcVar9 = ".got.plt"" (identifier "pcVar9") (= "=") (string_literal "".got.plt"" (" """) (string_content ".got.plt") (" """))) (; ";")) (expression_statement "FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");" (call_expression "FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt")" (identifier "FUN_0027afd0") (argument_list "(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt")" (( "(") (identifier "param_3") (, ",") (string_literal "".got.plt"" (" """) (string_content ".got.plt") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "puVar4") (, ",") (identifier "cVar6") (, ",") (identifier "cVar1") (, ",") (identifier "ppuVar8") (, ",") (identifier "param_2") (, ",") (string_literal "".got.plt"" (" """) (string_content ".got.plt") (" """)) () ")"))) (; ";")) (expression_statement "iVar2 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x1c)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {\n    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\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    *(undefined4 *)(iVar2 + 0xc) = 0x18;\n    *(undefined4 *)(iVar2 + 0x10) = 0;\n    if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }\n    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);\n    *(undefined4 *)(param_1 + 0x28) = uVar5;\n    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);\n    *puVar4 = &PTR_FUN_005dbed0;\n    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;\n    puVar4[0xb] = "** GOT IRELATIVE PLT";\n    *(undefined4 **)(param_1 + 0x20) = puVar4;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    puVar4[3] = 0;\n    puVar4[4] = 0;\n    puVar4[5] = 0xffffffff;\n    puVar4[6] = 0xffffffff;\n    puVar4[8] = 0;\n    puVar4[9] = 8;\n    puVar4[10] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);\n    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);\n                    \n    uVar7 = FUN_002c5bb0(0x40);\n    puVar3[9] = (int)uVar7;\n    puVar4 = puVar3 + 0xe;\n    puVar3[0xf] = puVar4;\n    puVar3[0xe] = puVar4;\n    puVar3[0x11] = puVar4;\n    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);\n    *puVar3 = ppuVar8;\n    *(undefined4 **)(param_1 + 0x24) = puVar3;\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[3] = 0;\n    puVar3[4] = 0;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;\n    puVar3[8] = 0;\n    puVar3[0xb] = 0;\n    puVar3[0xc] = 0;\n    puVar3[0xd] = 0;\n    puVar3[0x10] = 0;\n    *(undefined1 *)(puVar3 + 0x12) = 0;\n    puVar3[0x13] = 0;\n    puVar3[0x14] = 0;\n    puVar3[0x15] = 0;\n    puVar3[0x16] = 0;\n    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);\n    return *(int *)(param_1 + 0x14);\n  }" ({ "{") (expression_statement "*(undefined4 *)(iVar2 + 0xc) = 0x18;" (assignment_expression "*(undefined4 *)(iVar2 + 0xc) = 0x18" (pointer_expression "*(undefined4 *)(iVar2 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0x18")) (; ";")) (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")) (; ";")) (if_statement "if (cVar1 == '\0') {\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;\n    }" ({ "{") (expression_statement "*(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;" (assignment_expression "*(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18" (pointer_expression "*(int *)(param_3 + 0x170)" (* "*") (cast_expression "(int *)(param_3 + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x170)" (( "(") (binary_expression "param_3 + 0x170" (identifier "param_3") (+ "+") (number_literal "0x170")) () ")")))) (= "=") (binary_expression "*(int *)(param_3 + 0x170) + 0x18" (pointer_expression "*(int *)(param_3 + 0x170)" (* "*") (cast_expression "(int *)(param_3 + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x170)" (( "(") (binary_expression "param_3 + 0x170" (identifier "param_3") (+ "+") (number_literal "0x170")) () ")")))) (+ "+") (number_literal "0x18"))) (; ";")) (} "}"))) (expression_statement "uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);" (assignment_expression "uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0)" (identifier "uVar5") (= "=") (call_expression "FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0)" (identifier "FUN_0034f750") (argument_list "(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0)" (( "(") (identifier "param_2") (, ",") (string_literal ""_GLOBAL_OFFSET_TABLE_"" (" """) (string_content "_GLOBAL_OFFSET_TABLE_") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "5") (, ",") (identifier "iVar2") (, ",") (number_literal "0") (, ",") (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") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x28) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar4 = (undefined4 *)FUN_003ac4d0(0x30);" (assignment_expression "puVar4 = (undefined4 *)FUN_003ac4d0(0x30)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)FUN_003ac4d0(0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac4d0(0x30)" (identifier "FUN_003ac4d0") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "*puVar4 = &PTR_FUN_005dbed0;" (assignment_expression "*puVar4 = &PTR_FUN_005dbed0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "&PTR_FUN_005dbed0" (& "&") (identifier "PTR_FUN_005dbed0"))) (; ";")) (expression_statement "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" (* "*") (cast_expression "(byte *)(puVar4 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 7)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar4 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar4 + 7)" (* "*") (cast_expression "(byte *)(puVar4 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 7)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar4[0xb] = "** GOT IRELATIVE PLT";" (assignment_expression "puVar4[0xb] = "** GOT IRELATIVE PLT"" (subscript_expression "puVar4[0xb]" (identifier "puVar4") ([ "[") (number_literal "0xb") (] "]")) (= "=") (string_literal ""** GOT IRELATIVE PLT"" (" """) (string_content "** GOT IRELATIVE PLT") (" """))) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x20) = puVar4;" (assignment_expression "*(undefined4 **)(param_1 + 0x20) = puVar4" (pointer_expression "*(undefined4 **)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[5] = 0xffffffff;" (assignment_expression "puVar4[5] = 0xffffffff" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar4[6] = 0xffffffff;" (assignment_expression "puVar4[6] = 0xffffffff" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar4[8] = 0;" (assignment_expression "puVar4[8] = 0" (subscript_expression "puVar4[8]" (identifier "puVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[9] = 8;" (assignment_expression "puVar4[9] = 8" (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "puVar4[10] = 0;" (assignment_expression "puVar4[10] = 0" (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);" (call_expression "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1)" (identifier "FUN_0027afd0") (argument_list "(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1)" (( "(") (identifier "param_3") (, ",") (identifier "pcVar9") (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "puVar4") (, ",") (identifier "cVar6") (, ",") (identifier "cVar1") () ")"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_003ac4d0(0x5c)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_003ac4d0(0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac4d0(0x5c)" (identifier "FUN_003ac4d0") (argument_list "(0x5c)" (( "(") (number_literal "0x5c") () ")"))))) (; ";")) (expression_statement "uVar7 = FUN_002c5bb0(0x40);" (assignment_expression "uVar7 = FUN_002c5bb0(0x40)" (identifier "uVar7") (= "=") (call_expression "FUN_002c5bb0(0x40)" (identifier "FUN_002c5bb0") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "puVar3[9] = (int)uVar7;" (assignment_expression "puVar3[9] = (int)uVar7" (subscript_expression "puVar3[9]" (identifier "puVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7"))) (; ";")) (expression_statement "puVar4 = puVar3 + 0xe;" (assignment_expression "puVar4 = puVar3 + 0xe" (identifier "puVar4") (= "=") (binary_expression "puVar3 + 0xe" (identifier "puVar3") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "puVar3[0xf] = puVar4;" (assignment_expression "puVar3[0xf] = puVar4" (subscript_expression "puVar3[0xf]" (identifier "puVar3") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar3[0xe] = puVar4;" (assignment_expression "puVar3[0xe] = puVar4" (subscript_expression "puVar3[0xe]" (identifier "puVar3") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar3[0x11] = puVar4;" (assignment_expression "puVar3[0x11] = puVar4" (subscript_expression "puVar3[0x11]" (identifier "puVar3") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar7 >> 0x20)" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "*puVar3 = ppuVar8;" (assignment_expression "*puVar3 = ppuVar8" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "ppuVar8")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x24) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 0x24) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" (* "*") (cast_expression "(byte *)(puVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" (* "*") (cast_expression "(byte *)(puVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xb] = 0;" (assignment_expression "puVar3[0xb] = 0" (subscript_expression "puVar3[0xb]" (identifier "puVar3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xc] = 0;" (assignment_expression "puVar3[0xc] = 0" (subscript_expression "puVar3[0xc]" (identifier "puVar3") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xd] = 0;" (assignment_expression "puVar3[0xd] = 0" (subscript_expression "puVar3[0xd]" (identifier "puVar3") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x10] = 0;" (assignment_expression "puVar3[0x10] = 0" (subscript_expression "puVar3[0x10]" (identifier "puVar3") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)(puVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)(puVar3 + 0x12)" (* "*") (cast_expression "(undefined1 *)(puVar3 + 0x12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x12)" (( "(") (binary_expression "puVar3 + 0x12" (identifier "puVar3") (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x13] = 0;" (assignment_expression "puVar3[0x13] = 0" (subscript_expression "puVar3[0x13]" (identifier "puVar3") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x14] = 0;" (assignment_expression "puVar3[0x14] = 0" (subscript_expression "puVar3[0x14]" (identifier "puVar3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x15] = 0;" (assignment_expression "puVar3[0x15] = 0" (subscript_expression "puVar3[0x15]" (identifier "puVar3") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x16] = 0;" (assignment_expression "puVar3[0x16] = 0" (subscript_expression "puVar3[0x16]" (identifier "puVar3") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);" (call_expression "FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1)" (identifier "FUN_0027afd0") (argument_list "(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1)" (( "(") (identifier "param_3") (, ",") (identifier "pcVar9") (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "puVar3") (, ",") (identifier "cVar6") (, ",") (identifier "cVar1") () ")"))) (; ";")) (return_statement "return *(int *)(param_1 + 0x14);" (return "return") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);" (call_expression "FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX)" (identifier "FUN_002446e0") (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX)" (( "(") (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 "extraout_ECX") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: Output_data_got<64,_false> * got_section(Target_x86_64<32> * this,
   Symbol_table * symtab, Layout * layout) */

var_1<64,var_4> * __thiscall
anon_unknown.dwarf_32e241::Target_x86_64<32>::got_section
          (Target_x86_64<32> *this,type_6 *symtab,type_5 *layout)

{
  var_2 *var_3;
  type_1 *puVar2;
  bool var_9;
  type_2 *od;
  int var_5;
  type_3 *pOVar3;
  type_4 *pSVar4;
  type_5 *var_7;
  type_6 *var_6;
  type_7 order;
  uint64_t var_13;
  
  if (*(var_1<64,var_4> **)(var_5 + 0x14) != (var_1<64,var_4> *)0x0) {
    return *(var_1<64,var_4> **)(var_5 + 0x14);
  }
  if ((var_6 == (type_6 *)0x0) || (var_7 == (type_5 *)0x0)) {
                    /* WARNING: Subroutine does not return */
    gold::var_8("../../gold/x86_64.cc",0x5bd,"got_section");
  }
  if (gold::parameters->options_ == (type_8 *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::var_8("../../gold/parameters.h",0x5c,"options");
  }
  var_9 = (gold::parameters->options_->now_).value;
  order = (-(uint)(var_9 == false) & 2) + var_10;
  pOVar3 = (type_3 *)var_11(0x5c);
                    /* try { // try from 0007b12c to 0007b130 has its CatchHandler @ 0007b483 */
  var_13 = gold::Output_data::var_12(0x40);
  *(int *)((int)&pOVar3->addralign_ + 4) = (int)(var_13 >> 0x20);
  (pOVar3->super_Output_data)._vptr_Output_data =
       (type_9 **)&PTR__Output_data_got_005dcb80;
  *(int *)&pOVar3->addralign_ = (int)var_13;
  var_3 = &pOVar3[1].super_Output_data.data_size_;
  *(type_3 **)(var_5 + 0x14) = pOVar3;
  *(var_2 **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = var_3;
  *(var_2 **)&pOVar3[1].super_Output_data.data_size_ = var_3;
  *(var_2 **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = var_3;
  *(type_10 *)&(pOVar3->super_Output_data).address_ = 0;
  *(type_10 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;
  *(type_10 *)&(pOVar3->super_Output_data).data_size_ = 0;
  *(type_10 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;
  *(type_10 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;
  *(type_10 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;
  puVar2 = &(pOVar3->super_Output_data).field_0x1c;
  *puVar2 = *puVar2 & 0xe0;
  pOVar3->output_section_ = (type_11 *)0x0;
  pOVar3[1].super_Output_data._vptr_Output_data = (type_9 **)0x0;
  *(type_10 *)&pOVar3[1].super_Output_data.address_ = 0;
  *(type_10 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0;
  *(type_10 *)&pOVar3[1].super_Output_data.offset_ = 0;
  pOVar3[1].super_Output_data.field_0x1c = 0;
  pOVar3[1].output_section_ = (type_11 *)0x0;
  *(type_10 *)&pOVar3[1].addralign_ = 0;
  *(type_10 *)((int)&pOVar3[1].addralign_ + 4) = 0;
  pOVar3[2].super_Output_data._vptr_Output_data = (type_9 **)0x0;
  gold::Layout::var_14
            (var_7,".got",1,3,pOVar3,~-(uint)(var_9 == false) + var_15,true);
  pOVar3 = (type_3 *)var_11(0x30);
  (pOVar3->super_Output_data)._vptr_Output_data =
       (type_9 **)&PTR__Output_data_got_plt_x86_64_005dc56c;
  pOVar3[1].super_Output_data._vptr_Output_data = (type_9 **)var_7;
  *(type_10 *)&(pOVar3->super_Output_data).address_ = 0;
  *(type_10 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;
  *(type_10 *)&(pOVar3->super_Output_data).data_size_ = 0;
  *(type_10 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;
  *(type_10 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;
  *(type_10 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;
  puVar2 = &(pOVar3->super_Output_data).field_0x1c;
  *puVar2 = *puVar2 & 0xe0;
  pOVar3->output_section_ = (type_11 *)0x0;
  *(type_10 *)&pOVar3->addralign_ = 8;
  *(type_10 *)((int)&pOVar3->addralign_ + 4) = 0;
  *(type_3 **)(var_5 + 0x1c) = pOVar3;
  gold::Layout::var_14(var_7,".got.plt",1,3,pOVar3,order,var_9);
  od = *(type_2 **)(var_5 + 0x1c);
  if ((od->field_0x1c & 2) == 0) {
    *(type_10 *)&od->data_size_ = 0x18;
    *(type_10 *)((int)&od->data_size_ + 4) = 0;
    if (var_9 == false) {
      var_7->increase_relro_ = var_7->increase_relro_ + 0x18;
    }
    pSVar4 = gold::Symbol_table::var_16
                       (var_6,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,od,0,0,STT_OBJECT,
                        STB_LOCAL,STV_HIDDEN,'\0',false,false);
    *(type_4 **)(var_5 + 0x28) = pSVar4;
    pOVar3 = (type_3 *)var_11(0x30);
    (pOVar3->super_Output_data)._vptr_Output_data =
         (type_9 **)&PTR__Output_data_space_005dbed0;
    puVar2 = &(pOVar3->super_Output_data).field_0x1c;
    *puVar2 = *puVar2 & 0xe0;
    pOVar3[1].super_Output_data._vptr_Output_data = (type_9 **)"** GOT IRELATIVE PLT";
    *(type_3 **)(var_5 + 0x20) = pOVar3;
    *(type_10 *)&(pOVar3->super_Output_data).address_ = 0;
    *(type_10 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;
    *(type_10 *)&(pOVar3->super_Output_data).data_size_ = 0;
    *(type_10 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;
    *(type_10 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;
    *(type_10 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;
    pOVar3->output_section_ = (type_11 *)0x0;
    *(type_10 *)&pOVar3->addralign_ = 8;
    *(type_10 *)((int)&pOVar3->addralign_ + 4) = 0;
    gold::Layout::var_14(var_7,".got.plt",1,3,pOVar3,order,var_9);
    pOVar3 = (type_3 *)var_11(0x5c);
                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */
    var_13 = gold::Output_data::var_12(0x40);
    *(int *)&pOVar3->addralign_ = (int)var_13;
    var_3 = &pOVar3[1].super_Output_data.data_size_;
    *(var_2 **)((int)&pOVar3[1].super_Output_data.data_size_ + 4) = var_3;
    *(var_2 **)&pOVar3[1].super_Output_data.data_size_ = var_3;
    *(var_2 **)((int)&pOVar3[1].super_Output_data.offset_ + 4) = var_3;
    *(int *)((int)&pOVar3->addralign_ + 4) = (int)(var_13 >> 0x20);
    (pOVar3->super_Output_data)._vptr_Output_data =
         (type_9 **)&PTR__Output_data_got_005dcb80;
    *(type_3 **)(var_5 + 0x24) = pOVar3;
    *(type_10 *)&(pOVar3->super_Output_data).address_ = 0;
    *(type_10 *)((int)&(pOVar3->super_Output_data).address_ + 4) = 0;
    *(type_10 *)&(pOVar3->super_Output_data).data_size_ = 0;
    *(type_10 *)((int)&(pOVar3->super_Output_data).data_size_ + 4) = 0;
    *(type_10 *)&(pOVar3->super_Output_data).offset_ = 0xffffffff;
    *(type_10 *)((int)&(pOVar3->super_Output_data).offset_ + 4) = 0xffffffff;
    puVar2 = &(pOVar3->super_Output_data).field_0x1c;
    *puVar2 = *puVar2 & 0xe0;
    pOVar3->output_section_ = (type_11 *)0x0;
    pOVar3[1].super_Output_data._vptr_Output_data = (type_9 **)0x0;
    *(type_10 *)&pOVar3[1].super_Output_data.address_ = 0;
    *(type_10 *)((int)&pOVar3[1].super_Output_data.address_ + 4) = 0;
    *(type_10 *)&pOVar3[1].super_Output_data.offset_ = 0;
    pOVar3[1].super_Output_data.field_0x1c = 0;
    pOVar3[1].output_section_ = (type_11 *)0x0;
    *(type_10 *)&pOVar3[1].addralign_ = 0;
    *(type_10 *)((int)&pOVar3[1].addralign_ + 4) = 0;
    pOVar3[2].super_Output_data._vptr_Output_data = (type_9 **)0x0;
    gold::Layout::var_14(var_7,".got.plt",1,3,pOVar3,order,var_9);
    return *(var_1<64,var_4> **)(var_5 + 0x14);
  }
                    /* WARNING: Subroutine does not return */
  gold::var_8("../../gold/output.h",0x231,"set_current_data_size_for_child");
}


(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)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (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: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (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: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal) (number_literal) (number_literal) (identifier) (binary_expression left: (unary_expression argument: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))) right: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (number_literal) (number_literal) (number_literal) (identifier) (identifier) (identifier) (identifier) (identifier) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) 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)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (number_literal) (number_literal) (identifier) (number_literal) (number_literal) (number_literal) (number_literal) (number_literal) (number_literal) (number_literal) (number_literal) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (string_literal (string_content)))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (number_literal) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (number_literal) (identifier) (identifier) (identifier)))) (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)))))))) (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.si replaced with injection: get_pc_thunk_si */

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

{
  char cVar1;
  int iVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  undefined4 extraout_ECX;
  char cVar6;
  undefined8 uVar7;
  undefined **ppuVar8;
  char *pcVar9;
  
  if (*(int *)(param_1 + 0x14) != 0) {
    return *(int *)(param_1 + 0x14);
  }
  if ((param_2 == 0) || (param_3 == 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/x86_64.cc",0x5bd,"got_section",0);
  }
  if (*(int *)(DAT_005ea7c8 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options");
  }
  cVar1 = *(char *)(*(int *)(DAT_005ea7c8 + 8) + 0x55c1);
  cVar6 = (-(cVar1 == '\0') & 2U) + 0x13;
  puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);
                    /* try { // try from 0007b12c to 0007b130 has its CatchHandler @ 0007b483 */
  uVar7 = FUN_002c5bb0(0x40);
  puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);
  ppuVar8 = &PTR_FUN_005dcb80;
  *puVar3 = &PTR_FUN_005dcb80;
  puVar3[9] = (int)uVar7;
  puVar4 = puVar3 + 0xe;
  *(undefined4 **)(param_1 + 0x14) = puVar3;
  puVar3[0xf] = puVar4;
  puVar3[0xe] = puVar4;
  puVar3[0x11] = puVar4;
  puVar3[1] = 0;
  puVar3[2] = 0;
  puVar3[3] = 0;
  puVar3[4] = 0;
  puVar3[5] = 0xffffffff;
  puVar3[6] = 0xffffffff;
  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;
  puVar3[8] = 0;
  puVar3[0xb] = 0;
  puVar3[0xc] = 0;
  puVar3[0xd] = 0;
  puVar3[0x10] = 0;
  *(undefined1 *)(puVar3 + 0x12) = 0;
  puVar3[0x13] = 0;
  puVar3[0x14] = 0;
  puVar3[0x15] = 0;
  puVar3[0x16] = 0;
  FUN_0027afd0(param_3,&DAT_0044d406,1,3,0,puVar3,~-(uint)(cVar1 == '\0') + 0x14,1);
  puVar4 = (undefined4 *)FUN_003ac4d0(0x30);
  *puVar4 = &PTR_FUN_005dc56c;
  puVar4[0xb] = param_3;
  puVar4[1] = 0;
  puVar4[2] = 0;
  puVar4[3] = 0;
  puVar4[4] = 0;
  puVar4[5] = 0xffffffff;
  puVar4[6] = 0xffffffff;
  *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;
  puVar4[8] = 0;
  puVar4[9] = 8;
  puVar4[10] = 0;
  *(undefined4 **)(param_1 + 0x1c) = puVar4;
  pcVar9 = ".got.plt";
  FUN_0027afd0(param_3,".got.plt",1,3,0,puVar4,cVar6,cVar1,ppuVar8,param_2,".got.plt");
  iVar2 = *(int *)(param_1 + 0x1c);
  if ((*(byte *)(iVar2 + 0x1c) & 2) == 0) {
    *(undefined4 *)(iVar2 + 0xc) = 0x18;
    *(undefined4 *)(iVar2 + 0x10) = 0;
    if (cVar1 == '\0') {
      *(int *)(param_3 + 0x170) = *(int *)(param_3 + 0x170) + 0x18;
    }
    uVar5 = FUN_0034f750(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,iVar2,0,0,0,0,1,0,2,0,0,0);
    *(undefined4 *)(param_1 + 0x28) = uVar5;
    puVar4 = (undefined4 *)FUN_003ac4d0(0x30);
    *puVar4 = &PTR_FUN_005dbed0;
    *(byte *)(puVar4 + 7) = *(byte *)(puVar4 + 7) & 0xe0;
    puVar4[0xb] = "** GOT IRELATIVE PLT";
    *(undefined4 **)(param_1 + 0x20) = puVar4;
    puVar4[1] = 0;
    puVar4[2] = 0;
    puVar4[3] = 0;
    puVar4[4] = 0;
    puVar4[5] = 0xffffffff;
    puVar4[6] = 0xffffffff;
    puVar4[8] = 0;
    puVar4[9] = 8;
    puVar4[10] = 0;
    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar4,cVar6,cVar1);
    puVar3 = (undefined4 *)FUN_003ac4d0(0x5c);
                    /* try { // try from 0007b356 to 0007b35a has its CatchHandler @ 0007b47b */
    uVar7 = FUN_002c5bb0(0x40);
    puVar3[9] = (int)uVar7;
    puVar4 = puVar3 + 0xe;
    puVar3[0xf] = puVar4;
    puVar3[0xe] = puVar4;
    puVar3[0x11] = puVar4;
    puVar3[10] = (int)((ulonglong)uVar7 >> 0x20);
    *puVar3 = ppuVar8;
    *(undefined4 **)(param_1 + 0x24) = puVar3;
    puVar3[1] = 0;
    puVar3[2] = 0;
    puVar3[3] = 0;
    puVar3[4] = 0;
    puVar3[5] = 0xffffffff;
    puVar3[6] = 0xffffffff;
    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0;
    puVar3[8] = 0;
    puVar3[0xb] = 0;
    puVar3[0xc] = 0;
    puVar3[0xd] = 0;
    puVar3[0x10] = 0;
    *(undefined1 *)(puVar3 + 0x12) = 0;
    puVar3[0x13] = 0;
    puVar3[0x14] = 0;
    puVar3[0x15] = 0;
    puVar3[0x16] = 0;
    FUN_0027afd0(param_3,pcVar9,1,3,0,puVar3,cVar6,cVar1);
    return *(int *)(param_1 + 0x14);
  }
                    /* WARNING: Subroutine does not return */
  FUN_002446e0("../../gold/output.h",0x231,"set_current_data_size_for_child",extraout_ECX);
}

