
/* 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_base * init_got_plt_for_update(Target_x86_64<32> *
   this, Symbol_table * symtab, Layout * layout, uint got_count, uint plt_count) */

Output_data_got_base * __thiscall
anon_unknown.dwarf_32964f::Target_x86_64<32>::init_got_plt_for_update
          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,uint got_count,uint plt_count
          )

{
  byte bVar1;
  int iVar2;
  int iVar3;
  Parameters *pPVar4;
  Output_section_data *pOVar5;
  Symbol *pSVar6;
  uint64_t uVar7;
  undefined **this_00;
  Layout *layout_00;
  Free_list *this_01;
  
  if ((this->x86_64_info).dynamic_linker != (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");
  }
  pOVar5 = (Output_section_data *)operator_new(0x5c);
                    /* try { // try from 000707d7 to 000707db has its CatchHandler @ 00070c25 */
  uVar7 = gold::Output_data::default_alignment_for_size(0x40);
  *(int *)&pOVar5->addralign_ = (int)uVar7;
  bVar1 = (pOVar5->super_Output_data).field_0x1c;
  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;
  pOVar5->output_section_ = (Output_section *)0x0;
  *(int *)((int)&pOVar5->addralign_ + 4) = (int)(uVar7 >> 0x20);
  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;
  this_00 = &PTR__Output_data_got_00339948;
  (pOVar5->super_Output_data)._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_data_got_00339948;
  this_01 = (Free_list *)&pOVar5[1].super_Output_data.data_size_;
  *(Free_list **)((int)&pOVar5[1].super_Output_data.data_size_ + 4) = this_01;
  *(Free_list **)&pOVar5[1].super_Output_data.data_size_ = this_01;
  *(Free_list **)((int)&pOVar5[1].super_Output_data.offset_ + 4) = this_01;
  *(EVP_PKEY_CTX **)&(pOVar5->super_Output_data).data_size_ = (EVP_PKEY_CTX *)(got_count << 3);
  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;
  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;
  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;
  *(undefined4 *)&pOVar5[1].super_Output_data.address_ = 0;
  *(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4) = 0;
  *(undefined4 *)&pOVar5[1].super_Output_data.offset_ = 0;
  pOVar5[1].super_Output_data.field_0x1c = 0;
  pOVar5[1].output_section_ = (Output_section *)0x0;
  *(undefined4 *)&pOVar5[1].addralign_ = 0;
  *(undefined4 *)((int)&pOVar5[1].addralign_ + 4) = 0;
  pOVar5[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;
  if ((got_count & 0x1fffffff) != 0) {
                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */
    std::
    vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>
    ::_M_default_append((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>
                         *)(pOVar5 + 1),got_count & 0x1fffffff);
  }
                    /* try { // try from 00070892 to 00070896 has its CatchHandler @ 00070c3d */
  gold::Free_list::init(this_01,(EVP_PKEY_CTX *)(got_count << 3));
  (this->x86_64_info).dynamic_linker = (char *)pOVar5;
  gold::Layout::add_output_section_data(layout,".got",1,3,pOVar5,ORDER_RELRO_LAST,true);
  pOVar5 = (Output_section_data *)operator_new(0x30);
  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;
  *(uint *)&(pOVar5->super_Output_data).data_size_ = plt_count * 8 + 0x18;
  bVar1 = (pOVar5->super_Output_data).field_0x1c;
  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)layout;
  pOVar5->output_section_ = (Output_section *)0x0;
  *(Output_section_data **)((int)&(this->x86_64_info).default_text_segment_address + 4) = pOVar5;
  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;
  (pOVar5->super_Output_data)._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_00339344;
  *(undefined4 *)&pOVar5->addralign_ = 8;
  *(undefined4 *)((int)&pOVar5->addralign_ + 4) = 0;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;
  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;
  gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);
  pSVar6 = gold::Symbol_table::define_in_output_data
                     (symtab,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,
                      *(Output_data **)((int)&(this->x86_64_info).default_text_segment_address + 4),
                      0,0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);
  *(Symbol **)&(this->x86_64_info).common_pagesize = pSVar6;
  pOVar5 = (Output_section_data *)operator_new(0x5c);
                    /* try { // try from 00070993 to 00070997 has its CatchHandler @ 00070c35 */
  uVar7 = gold::Output_data::default_alignment_for_size(0x40);
  *(int *)&pOVar5->addralign_ = (int)uVar7;
  bVar1 = (pOVar5->super_Output_data).field_0x1c;
  pOVar5->output_section_ = (Output_section *)0x0;
  *(int *)((int)&pOVar5->addralign_ + 4) = (int)(uVar7 >> 0x20);
  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;
  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;
  (pOVar5->super_Output_data)._vptr_Output_data = (_func_int_varargs **)this_00;
  layout_00 = (Layout *)&pOVar5[1].super_Output_data.data_size_;
  *(undefined4 *)&(pOVar5->super_Output_data).data_size_ = 0;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;
  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;
  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;
  *(undefined4 *)&pOVar5[1].super_Output_data.address_ = 0;
  *(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4) = 0;
  *(Layout **)((int)&pOVar5[1].super_Output_data.data_size_ + 4) = layout_00;
  *(Layout **)&pOVar5[1].super_Output_data.data_size_ = layout_00;
  *(undefined4 *)&pOVar5[1].super_Output_data.offset_ = 0;
  *(Layout **)((int)&pOVar5[1].super_Output_data.offset_ + 4) = layout_00;
  pOVar5[1].super_Output_data.field_0x1c = 0;
  pOVar5[1].output_section_ = (Output_section *)0x0;
  *(undefined4 *)&pOVar5[1].addralign_ = 0;
  *(undefined4 *)((int)&pOVar5[1].addralign_ + 4) = 0;
  pOVar5[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;
                    /* try { // try from 00070a36 to 00070a3a has its CatchHandler @ 00070c2d */
  gold::Free_list::init((Free_list *)layout_00,(EVP_PKEY_CTX *)0x0);
  *(Output_section_data **)((int)&(this->x86_64_info).abi_pagesize + 4) = pOVar5;
  gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);
  pOVar5 = (Output_section_data *)operator_new(0x30);
  bVar1 = (pOVar5->super_Output_data).field_0x1c;
  pOVar5->output_section_ = (Output_section *)0x0;
  *(Output_section_data **)&(this->x86_64_info).abi_pagesize = pOVar5;
  *(undefined4 *)&pOVar5->addralign_ = 8;
  *(undefined4 *)((int)&pOVar5->addralign_ + 4) = 0;
  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;
  (pOVar5->super_Output_data)._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_data_space_00338cb8;
  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT";
  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;
  *(undefined4 *)&(pOVar5->super_Output_data).data_size_ = 0;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;
  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;
  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;
  gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);
  pOVar5 = (Output_section_data *)
           (**(code **)((this->x86_64_info).size + 0x104))
                     (this,layout,(this->x86_64_info).dynamic_linker,
                      *(undefined4 *)((int)&(this->x86_64_info).default_text_segment_address + 4),
                      (int)(this->x86_64_info).abi_pagesize,plt_count);
  pPVar4 = gold::parameters;
  *(Output_section_data **)&(this->x86_64_info).default_text_segment_address = pOVar5;
  if (pPVar4->options_ != (General_options *)0x0) {
    if ((pPVar4->options_->ld_generated_unwind_info_).value != false) {
      (*(pOVar5->super_Output_data)._vptr_Output_data[0x1f])(pOVar5,layout);
      pOVar5 = *(Output_section_data **)&(this->x86_64_info).default_text_segment_address;
    }
    gold::Layout::add_output_section_data(layout,".plt",1,6,pOVar5,ORDER_PLT,false);
    iVar3 = (int)(this->x86_64_info).default_text_segment_address;
    iVar2 = *(int *)(iVar3 + 0x20);
    iVar3 = *(int *)(*(int *)(iVar3 + 0x2c) + 0x20);
    if ((((*(int *)(iVar3 + 0x44) == 0) ||
         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))) &&
        (*(int *)(iVar3 + 0x48) == 0)) && (*(int *)(iVar3 + 0x4c) == 0)) {
      *(byte *)(iVar3 + 0x91) = *(byte *)(iVar3 + 0x91) | 1;
      *(int *)(iVar3 + 0x44) = iVar2;
      rela_dyn_section((Target_x86_64<32> *)this_00,layout_00);
      return (Output_data_got_base *)(this->x86_64_info).dynamic_linker;
    }
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/output.h",0xd3a,"set_info_section");
  }
                    /* WARNING: Subroutine does not return */
  gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
}



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

int FUN_00070790(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)

{
  byte bVar1;
  int iVar2;
  undefined4 *puVar3;
  uint uVar4;
  int iVar5;
  undefined4 *puVar6;
  int *piVar7;
  undefined8 uVar8;
  undefined **ppuVar9;
  char *pcVar10;
  
  if (param_1[5] != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");
  }
  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);
  uVar4 = param_4 << 3;
                    /* try { // try from 000707d7 to 000707db has its CatchHandler @ 00070c25 */
  uVar8 = FUN_000e8010(0x40);
  puVar3[9] = (int)uVar8;
  puVar3[1] = 0;
  puVar3[2] = 0;
  puVar3[8] = 0;
  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);
  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;
  ppuVar9 = &PTR_FUN_00339948;
  *puVar3 = &PTR_FUN_00339948;
  puVar6 = puVar3 + 0xe;
  puVar3[0xf] = puVar6;
  puVar3[0xe] = puVar6;
  puVar3[0x11] = puVar6;
  puVar3[3] = uVar4;
  puVar3[4] = 0;
  puVar3[5] = 0xffffffff;
  puVar3[6] = 0xffffffff;
  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;
  if (uVar4 >> 3 != 0) {
                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */
    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);
  }
                    /* try { // try from 00070892 to 00070896 has its CatchHandler @ 00070c3d */
  FUN_000a8120(puVar6,uVar4,0,0);
  param_1[5] = (int)puVar3;
  FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);
  puVar3 = (undefined4 *)FUN_001aa8c0(0x30);
  puVar3[1] = 0;
  puVar3[2] = 0;
  puVar3[3] = param_5 * 8 + 0x18;
  bVar1 = *(byte *)(puVar3 + 7);
  puVar3[0xb] = param_3;
  puVar3[8] = 0;
  param_1[7] = (int)puVar3;
  *(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;
  *puVar3 = &PTR_FUN_00339344;
  puVar3[9] = 8;
  puVar3[10] = 0;
  puVar3[4] = 0;
  puVar3[5] = 0xffffffff;
  puVar3[6] = 0xffffffff;
  pcVar10 = ".got.plt";
  FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");
  iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);
  param_1[10] = iVar5;
  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);
                    /* try { // try from 00070993 to 00070997 has its CatchHandler @ 00070c35 */
  uVar8 = FUN_000e8010(0x40);
  puVar3[9] = (int)uVar8;
  puVar3[8] = 0;
  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);
  puVar3[1] = 0;
  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;
  puVar3[2] = 0;
  *puVar3 = ppuVar9;
  puVar6 = puVar3 + 0xe;
  puVar3[3] = 0;
  puVar3[4] = 0;
  puVar3[5] = 0xffffffff;
  puVar3[6] = 0xffffffff;
  puVar3[0xb] = 0;
  puVar3[0xc] = 0;
  puVar3[0xd] = 0;
  puVar3[0xf] = puVar6;
  puVar3[0xe] = puVar6;
  puVar3[0x10] = 0;
  puVar3[0x11] = puVar6;
  *(undefined1 *)(puVar3 + 0x12) = 0;
  puVar3[0x13] = 0;
  puVar3[0x14] = 0;
  puVar3[0x15] = 0;
  puVar3[0x16] = 0;
                    /* try { // try from 00070a36 to 00070a3a has its CatchHandler @ 00070c2d */
  FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);
  param_1[9] = (int)puVar3;
  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);
  puVar6 = (undefined4 *)FUN_001aa8c0(0x30);
  bVar1 = *(byte *)(puVar6 + 7);
  puVar6[8] = 0;
  param_1[8] = (int)puVar6;
  puVar6[9] = 8;
  puVar6[10] = 0;
  *(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;
  *puVar6 = &PTR_FUN_00338cb8;
  puVar6[0xb] = "** GOT IRELATIVE PLT";
  puVar6[1] = 0;
  puVar6[2] = 0;
  puVar6[3] = 0;
  puVar6[4] = 0;
  puVar6[5] = 0xffffffff;
  puVar6[6] = 0xffffffff;
  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);
  piVar7 = (int *)(**(code **)(*param_1 + 0x104))
                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);
  iVar5 = DAT_0033f2f0;
  param_1[6] = (int)piVar7;
  if (*(int *)(iVar5 + 8) != 0) {
    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {
      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);
      piVar7 = (int *)param_1[6];
    }
    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);
    iVar5 = *(int *)(param_1[6] + 0x20);
    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);
    if ((((*(int *)(iVar2 + 0x44) == 0) ||
         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&
        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {
      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;
      *(int *)(iVar2 + 0x44) = iVar5;
      FUN_0005e690();
      return param_1[5];
    }
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");
  }
                    /* WARNING: Subroutine does not return */
  FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
CALL 0x000487a6
ADD ESI,0x2ce866
PUSH EBX
SUB ESP,0x1c
MOV EAX,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EAX + 0x14]
TEST EDI,EDI
JNZ 0x00070bf2
SUB ESP,0xc
MOV EBX,ESI
PUSH 0x5c
CALL 0x001aa8c0
MOV dword ptr [EBP + -0x1c],0x0
MOV EDI,EAX
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [ESP],0x40
SHL EAX,0x3
MOV dword ptr [EBP + -0x20],EAX
CALL 0x000e8010
MOV ECX,dword ptr [EBP + -0x20]
MOV EBX,dword ptr [EBP + -0x1c]
MOV dword ptr [EDI + 0x24],EAX
ADD ESP,0x10
MOVZX EAX,byte ptr [EDI + 0x1c]
MOV dword ptr [EDI + 0x4],0x0
MOV dword ptr [EDI + 0x8],0x0
AND EAX,0xffffffe0
MOV dword ptr [EDI + 0x20],0x0
OR EAX,0x2
MOV dword ptr [EDI + 0x28],EDX
MOV byte ptr [EDI + 0x1c],AL
LEA EAX,[ESI + 0xffffa948]
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [EDI],EAX
LEA EAX,[EDI + 0x38]
MOV dword ptr [EBP + -0x24],EAX
MOV dword ptr [EDI + 0x3c],EAX
MOV dword ptr [EDI + 0x38],EAX
MOV dword ptr [EDI + 0x44],EAX
MOV EAX,ECX
SHRD EAX,EBX,0x3
MOV dword ptr [EDI + 0xc],ECX
MOV dword ptr [EDI + 0x10],EBX
MOV dword ptr [EDI + 0x14],0xffffffff
MOV dword ptr [EDI + 0x18],0xffffffff
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
TEST EAX,EAX
JNZ 0x00070bc0
PUSH 0x0
MOV EBX,ESI
PUSH dword ptr [EBP + -0x1c]
PUSH dword ptr [EBP + -0x20]
PUSH dword ptr [EBP + -0x24]
CALL 0x000a8120
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV dword ptr [EAX + 0x14],EDI
LEA EAX,[ESI + 0xfff0c406]
PUSH 0x1
PUSH 0x14
PUSH EDI
PUSH 0x0
PUSH 0x3
PUSH 0x1
PUSH EAX
PUSH dword ptr [EBP + 0x10]
CALL 0x000b25f0
ADD ESP,0x14
PUSH 0x30
CALL 0x001aa8c0
MOV ECX,dword ptr [EBP + 0x18]
ADD ESP,0x10
MOV dword ptr [EAX + 0x4],0x0
LEA EDX,[ECX*0x8 + 0x18]
MOV ECX,dword ptr [EBP + 0x10]
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],EDX
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x2c],ECX
MOV ECX,dword ptr [EBP + 0x8]
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x20],0x0
OR EDX,0x2
MOV dword ptr [ECX + 0x1c],EAX
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[ESI + 0xffffa344]
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x24],0x8
MOV dword ptr [EAX + 0x28],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
PUSH 0x0
PUSH 0x15
PUSH EAX
LEA EAX,[ESI + 0xfff0c40b]
PUSH 0x0
PUSH 0x3
PUSH 0x1
PUSH EAX
PUSH dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x20],EAX
CALL 0x000b25f0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x1c
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x0
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EAX + 0x1c]
LEA EAX,[ESI + 0xfff0c414]
PUSH 0x5
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + 0xc]
CALL 0x00151380
MOV ECX,dword ptr [EBP + 0x8]
ADD ESP,0x34
MOV dword ptr [ECX + 0x28],EAX
PUSH 0x5c
CALL 0x001aa8c0
MOV dword ptr [ESP],0x40
MOV EDI,EAX
CALL 0x000e8010
MOV dword ptr [EDI + 0x24],EAX
MOVZX EAX,byte ptr [EDI + 0x1c]
ADD ESP,0x10
MOV dword ptr [EDI + 0x20],0x0
AND EAX,0xffffffe0
MOV dword ptr [EDI + 0x28],EDX
OR EAX,0x2
MOV dword ptr [EDI + 0x4],0x0
MOV byte ptr [EDI + 0x1c],AL
MOV EAX,dword ptr [EBP + -0x28]
MOV dword ptr [EDI + 0x8],0x0
MOV dword ptr [EDI],EAX
LEA EAX,[EDI + 0x38]
MOV dword ptr [EDI + 0xc],0x0
MOV dword ptr [EDI + 0x10],0x0
MOV dword ptr [EDI + 0x14],0xffffffff
MOV dword ptr [EDI + 0x18],0xffffffff
MOV dword ptr [EDI + 0x2c],0x0
MOV dword ptr [EDI + 0x30],0x0
MOV dword ptr [EDI + 0x34],0x0
MOV dword ptr [EDI + 0x3c],EAX
MOV dword ptr [EDI + 0x38],EAX
MOV dword ptr [EDI + 0x40],0x0
MOV dword ptr [EDI + 0x44],EAX
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 0x0
PUSH 0x0
PUSH 0x0
PUSH EAX
MOV dword ptr [EBP + -0x24],EAX
CALL 0x000a8120
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV dword ptr [EAX + 0x24],EDI
PUSH 0x0
PUSH 0x15
PUSH EDI
MOV EDI,dword ptr [EBP + -0x20]
PUSH 0x0
PUSH 0x3
PUSH 0x1
PUSH EDI
PUSH dword ptr [EBP + 0x10]
CALL 0x000b25f0
ADD ESP,0x14
PUSH 0x30
CALL 0x001aa8c0
MOV ECX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [ECX + 0x20],EAX
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x24],0x8
OR EDX,0x2
MOV dword ptr [EAX + 0x28],0x0
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[ESI + 0xffff9cb8]
MOV dword ptr [EAX],EDX
LEA EDX,[ESI + 0xfff0c42a]
MOV dword ptr [EAX + 0x2c],EDX
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
PUSH 0x0
PUSH 0x15
PUSH EAX
PUSH 0x0
PUSH 0x3
PUSH 0x1
PUSH EDI
PUSH dword ptr [EBP + 0x10]
CALL 0x000b25f0
MOV EAX,dword ptr [EBP + 0x8]
MOV EBX,dword ptr [EBP + 0x8]
ADD ESP,0x18
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBX + 0x20]
PUSH dword ptr [EBX + 0x1c]
PUSH dword ptr [EBX + 0x14]
PUSH dword ptr [EBP + 0x10]
PUSH EBX
CALL dword ptr [EAX + 0x104]
LEA EDX,[ESI + 0x2f0]
MOV ECX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EDX]
MOV dword ptr [ECX + 0x18],EAX
ADD ESP,0x20
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x00070c0d
CMP byte ptr [EDX + 0x2105],0x0
JNZ 0x00070ba0
PUSH 0x0
MOV EBX,ESI
PUSH 0x7
PUSH EAX
LEA EAX,[ESI + 0xfff0f0a8]
PUSH 0x0
PUSH 0x6
PUSH 0x1
PUSH EAX
PUSH dword ptr [EBP + 0x10]
CALL 0x000b25f0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x20
MOV EDX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [EDX + 0x2c]
MOV ECX,dword ptr [EDX + 0x20]
MOV EAX,dword ptr [EAX + 0x20]
MOV EDX,dword ptr [EAX + 0x44]
TEST EDX,EDX
JZ 0x00070b67
CMP ECX,EDX
JNZ 0x00070bd5
TEST byte ptr [EAX + 0x91],0x1
JZ 0x00070bd5
MOV EDI,dword ptr [EAX + 0x48]
TEST EDI,EDI
JNZ 0x00070bd5
MOV EBX,dword ptr [EAX + 0x4c]
TEST EBX,EBX
JNZ 0x00070bd5
OR byte ptr [EAX + 0x91],0x1
MOV EDX,dword ptr [EBP + 0x10]
MOV dword ptr [EAX + 0x44],ECX
MOV EAX,dword ptr [EBP + 0x8]
ADD EAX,0x2c
CALL 0x0005e690
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x14]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
MOV EDX,dword ptr [EAX]
PUSH dword ptr [EBP + 0x10]
PUSH EAX
CALL dword ptr [EDX + 0x7c]
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x18]
JMP 0x00070b25
SUB ESP,0x8
PUSH EAX
LEA EAX,[EDI + 0x2c]
PUSH EAX
CALL 0x00077cd0
ADD ESP,0x10
JMP 0x00070885
SUB ESP,0x4
LEA EAX,[ESI + 0xfff12024]
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xfff0c35d]
PUSH 0xd3a
PUSH EAX
CALL 0x0008b620
LEA EAX,[ESI + 0xfff12038]
PUSH EBX
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xfff0f08e]
PUSH 0xbc5
PUSH EAX
CALL 0x0008b620
PUSH EAX
LEA EAX,[ESI + 0xfff12338]
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xfff0726d]
PUSH 0x5c
PUSH EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nint FUN_00070790(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined8 uVar8;\n  undefined **ppuVar9;\n  char *pcVar10;\n  \n  if (param_1[5] != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n  uVar4 = param_4 << 3;\n                    /* try { // try from 000707d7 to 000707db has its CatchHandler @ 00070c25 */\n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  ppuVar9 = &PTR_FUN_00339948;\n  *puVar3 = &PTR_FUN_00339948;\n  puVar6 = puVar3 + 0xe;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x11] = puVar6;\n  puVar3[3] = uVar4;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\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  if (uVar4 >> 3 != 0) {\n                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */\n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }\n                    /* try { // try from 00070892 to 00070896 has its CatchHandler @ 00070c3d */\n  FUN_000a8120(puVar6,uVar4,0,0);\n  param_1[5] = (int)puVar3;\n  FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x30);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = param_5 * 8 + 0x18;\n  bVar1 = *(byte *)(puVar3 + 7);\n  puVar3[0xb] = param_3;\n  puVar3[8] = 0;\n  param_1[7] = (int)puVar3;\n  *(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;\n  *puVar3 = &PTR_FUN_00339344;\n  puVar3[9] = 8;\n  puVar3[10] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  pcVar10 = ".got.plt";\n  FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");\n  iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);\n  param_1[10] = iVar5;\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n                    /* try { // try from 00070993 to 00070997 has its CatchHandler @ 00070c35 */\n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  puVar3[1] = 0;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  puVar3[2] = 0;\n  *puVar3 = ppuVar9;\n  puVar6 = puVar3 + 0xe;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x10] = 0;\n  puVar3[0x11] = puVar6;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n                    /* try { // try from 00070a36 to 00070a3a has its CatchHandler @ 00070c2d */\n  FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);\n  param_1[9] = (int)puVar3;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);\n  puVar6 = (undefined4 *)FUN_001aa8c0(0x30);\n  bVar1 = *(byte *)(puVar6 + 7);\n  puVar6[8] = 0;\n  param_1[8] = (int)puVar6;\n  puVar6[9] = 8;\n  puVar6[10] = 0;\n  *(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;\n  *puVar6 = &PTR_FUN_00338cb8;\n  puVar6[0xb] = "** GOT IRELATIVE PLT";\n  puVar6[1] = 0;\n  puVar6[2] = 0;\n  puVar6[3] = 0;\n  puVar6[4] = 0;\n  puVar6[5] = 0xffffffff;\n  puVar6[6] = 0xffffffff;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);\n  piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);\n  iVar5 = DAT_0033f2f0;\n  param_1[6] = (int)piVar7;\n  if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);\n}\n\n" comment (function_definition "int FUN_00070790(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined8 uVar8;\n  undefined **ppuVar9;\n  char *pcVar10;\n  \n  if (param_1[5] != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n  uVar4 = param_4 << 3;\n                    /* try { // try from 000707d7 to 000707db has its CatchHandler @ 00070c25 */\n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  ppuVar9 = &PTR_FUN_00339948;\n  *puVar3 = &PTR_FUN_00339948;\n  puVar6 = puVar3 + 0xe;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x11] = puVar6;\n  puVar3[3] = uVar4;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\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  if (uVar4 >> 3 != 0) {\n                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */\n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }\n                    /* try { // try from 00070892 to 00070896 has its CatchHandler @ 00070c3d */\n  FUN_000a8120(puVar6,uVar4,0,0);\n  param_1[5] = (int)puVar3;\n  FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x30);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = param_5 * 8 + 0x18;\n  bVar1 = *(byte *)(puVar3 + 7);\n  puVar3[0xb] = param_3;\n  puVar3[8] = 0;\n  param_1[7] = (int)puVar3;\n  *(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;\n  *puVar3 = &PTR_FUN_00339344;\n  puVar3[9] = 8;\n  puVar3[10] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  pcVar10 = ".got.plt";\n  FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");\n  iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);\n  param_1[10] = iVar5;\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n                    /* try { // try from 00070993 to 00070997 has its CatchHandler @ 00070c35 */\n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  puVar3[1] = 0;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  puVar3[2] = 0;\n  *puVar3 = ppuVar9;\n  puVar6 = puVar3 + 0xe;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x10] = 0;\n  puVar3[0x11] = puVar6;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n                    /* try { // try from 00070a36 to 00070a3a has its CatchHandler @ 00070c2d */\n  FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);\n  param_1[9] = (int)puVar3;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);\n  puVar6 = (undefined4 *)FUN_001aa8c0(0x30);\n  bVar1 = *(byte *)(puVar6 + 7);\n  puVar6[8] = 0;\n  param_1[8] = (int)puVar6;\n  puVar6[9] = 8;\n  puVar6[10] = 0;\n  *(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;\n  *puVar6 = &PTR_FUN_00338cb8;\n  puVar6[0xb] = "** GOT IRELATIVE PLT";\n  puVar6[1] = 0;\n  puVar6[2] = 0;\n  puVar6[3] = 0;\n  puVar6[4] = 0;\n  puVar6[5] = 0xffffffff;\n  puVar6[6] = 0xffffffff;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);\n  piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);\n  iVar5 = DAT_0033f2f0;\n  param_1[6] = (int)piVar7;\n  if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);\n}" primitive_type (function_declarator "FUN_00070790(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined8 uVar8;\n  undefined **ppuVar9;\n  char *pcVar10;\n  \n  if (param_1[5] != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n  uVar4 = param_4 << 3;\n                    /* try { // try from 000707d7 to 000707db has its CatchHandler @ 00070c25 */\n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  ppuVar9 = &PTR_FUN_00339948;\n  *puVar3 = &PTR_FUN_00339948;\n  puVar6 = puVar3 + 0xe;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x11] = puVar6;\n  puVar3[3] = uVar4;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\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  if (uVar4 >> 3 != 0) {\n                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */\n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }\n                    /* try { // try from 00070892 to 00070896 has its CatchHandler @ 00070c3d */\n  FUN_000a8120(puVar6,uVar4,0,0);\n  param_1[5] = (int)puVar3;\n  FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x30);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = param_5 * 8 + 0x18;\n  bVar1 = *(byte *)(puVar3 + 7);\n  puVar3[0xb] = param_3;\n  puVar3[8] = 0;\n  param_1[7] = (int)puVar3;\n  *(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;\n  *puVar3 = &PTR_FUN_00339344;\n  puVar3[9] = 8;\n  puVar3[10] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  pcVar10 = ".got.plt";\n  FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");\n  iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);\n  param_1[10] = iVar5;\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n                    /* try { // try from 00070993 to 00070997 has its CatchHandler @ 00070c35 */\n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  puVar3[1] = 0;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  puVar3[2] = 0;\n  *puVar3 = ppuVar9;\n  puVar6 = puVar3 + 0xe;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x10] = 0;\n  puVar3[0x11] = puVar6;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n                    /* try { // try from 00070a36 to 00070a3a has its CatchHandler @ 00070c2d */\n  FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);\n  param_1[9] = (int)puVar3;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);\n  puVar6 = (undefined4 *)FUN_001aa8c0(0x30);\n  bVar1 = *(byte *)(puVar6 + 7);\n  puVar6[8] = 0;\n  param_1[8] = (int)puVar6;\n  puVar6[9] = 8;\n  puVar6[10] = 0;\n  *(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;\n  *puVar6 = &PTR_FUN_00338cb8;\n  puVar6[0xb] = "** GOT IRELATIVE PLT";\n  puVar6[1] = 0;\n  puVar6[2] = 0;\n  puVar6[3] = 0;\n  puVar6[4] = 0;\n  puVar6[5] = 0xffffffff;\n  puVar6[6] = 0xffffffff;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);\n  piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);\n  iVar5 = DAT_0033f2f0;\n  param_1[6] = (int)piVar7;\n  if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (if_statement "if (param_1[5] != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }" if (parenthesized_expression "(param_1[5] != 0)" ( (binary_expression "param_1[5] != 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }" { comment (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update")" identifier (argument_list "("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update")" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""init_got_plt_for_update"" " string_content ") ))) ;) })) (expression_statement "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c)" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0(0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x5c)" identifier (argument_list "(0x5c)" ( number_literal ))))) ;) (expression_statement "uVar4 = param_4 << 3;" (assignment_expression "uVar4 = param_4 << 3" identifier = (binary_expression "param_4 << 3" identifier << number_literal)) ;) comment (expression_statement "uVar8 = FUN_000e8010(0x40);" (assignment_expression "uVar8 = FUN_000e8010(0x40)" identifier = (call_expression "FUN_000e8010(0x40)" identifier (argument_list "(0x40)" ( number_literal )))) ;) (expression_statement "puVar3[9] = (int)uVar8;" (assignment_expression "puVar3[9] = (int)uVar8" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) 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[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20)" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)((ulonglong)uVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar8 >> 0x20)" ( (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2" (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 | 2" (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) | number_literal)) ;) (expression_statement "ppuVar9 = &PTR_FUN_00339948;" (assignment_expression "ppuVar9 = &PTR_FUN_00339948" identifier = (pointer_expression "&PTR_FUN_00339948" & identifier)) ;) (expression_statement "*puVar3 = &PTR_FUN_00339948;" (assignment_expression "*puVar3 = &PTR_FUN_00339948" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_00339948" & identifier)) ;) (expression_statement "puVar6 = puVar3 + 0xe;" (assignment_expression "puVar6 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar3[0xf] = puVar6;" (assignment_expression "puVar3[0xf] = puVar6" (subscript_expression "puVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xe] = puVar6;" (assignment_expression "puVar3[0xe] = puVar6" (subscript_expression "puVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0x11] = puVar6;" (assignment_expression "puVar3[0x11] = puVar6" (subscript_expression "puVar3[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[3] = uVar4;" (assignment_expression "puVar3[3] = uVar4" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (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 "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) ;) (if_statement "if (uVar4 >> 3 != 0) {\n                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */\n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }" if (parenthesized_expression "(uVar4 >> 3 != 0)" ( (binary_expression "uVar4 >> 3 != 0" (binary_expression "uVar4 >> 3" identifier >> number_literal) != number_literal) )) (compound_statement "{\n                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */\n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }" { comment (expression_statement "FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);" (call_expression "FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3)" identifier (argument_list "(puVar3 + 0xb,uVar4 >> 3)" ( (binary_expression "puVar3 + 0xb" identifier + number_literal) , (binary_expression "uVar4 >> 3" identifier >> number_literal) ))) ;) })) comment (expression_statement "FUN_000a8120(puVar6,uVar4,0,0);" (call_expression "FUN_000a8120(puVar6,uVar4,0,0)" identifier (argument_list "(puVar6,uVar4,0,0)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "param_1[5] = (int)puVar3;" (assignment_expression "param_1[5] = (int)puVar3" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);" (call_expression "FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1)" identifier (argument_list "(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1)" ( identifier , (pointer_expression "&DAT_0024b406" & identifier) , number_literal , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "puVar3 = (undefined4 *)FUN_001aa8c0(0x30);" (assignment_expression "puVar3 = (undefined4 *)FUN_001aa8c0(0x30)" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (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] = param_5 * 8 + 0x18;" (assignment_expression "puVar3[3] = param_5 * 8 + 0x18" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = (binary_expression "param_5 * 8 + 0x18" (binary_expression "param_5 * 8" identifier * number_literal) + number_literal)) ;) (expression_statement "bVar1 = *(byte *)(puVar3 + 7);" (assignment_expression "bVar1 = *(byte *)(puVar3 + 7)" identifier = (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) ))))) ;) (expression_statement "puVar3[0xb] = param_3;" (assignment_expression "puVar3[0xb] = param_3" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[7] = (int)puVar3;" (assignment_expression "param_1[7] = (int)puVar3" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2" (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 "bVar1 & 0xe0 | 2" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*puVar3 = &PTR_FUN_00339344;" (assignment_expression "*puVar3 = &PTR_FUN_00339344" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_00339344" & identifier)) ;) (expression_statement "puVar3[9] = 8;" (assignment_expression "puVar3[9] = 8" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" 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 "pcVar10 = ".got.plt";" (assignment_expression "pcVar10 = ".got.plt"" identifier = (string_literal "".got.plt"" " string_content ")) ;) (expression_statement "FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");" (call_expression "FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt")" identifier (argument_list "(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt")" ( identifier , (string_literal "".got.plt"" " string_content ") , number_literal , number_literal , number_literal , identifier , number_literal , number_literal , identifier , identifier , (string_literal "".got.plt"" " string_content ") ))) ;) (expression_statement "iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);" (assignment_expression "iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0)" identifier = (call_expression "FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0)" identifier (argument_list "(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0)" ( identifier , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal , number_literal , (subscript_expression "param_1[7]" identifier [ number_literal ]) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "param_1[10] = iVar5;" (assignment_expression "param_1[10] = iVar5" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c)" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0(0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x5c)" identifier (argument_list "(0x5c)" ( number_literal ))))) ;) comment (expression_statement "uVar8 = FUN_000e8010(0x40);" (assignment_expression "uVar8 = FUN_000e8010(0x40)" identifier = (call_expression "FUN_000e8010(0x40)" identifier (argument_list "(0x40)" ( number_literal )))) ;) (expression_statement "puVar3[9] = (int)uVar8;" (assignment_expression "puVar3[9] = (int)uVar8" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20)" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)((ulonglong)uVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar8 >> 0x20)" ( (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2" (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 | 2" (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) | number_literal)) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar3 = ppuVar9;" (assignment_expression "*puVar3 = ppuVar9" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar6 = puVar3 + 0xe;" (assignment_expression "puVar6 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + 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 "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[0xf] = puVar6;" (assignment_expression "puVar3[0xf] = puVar6" (subscript_expression "puVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xe] = puVar6;" (assignment_expression "puVar3[0xe] = puVar6" (subscript_expression "puVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0x10] = 0;" (assignment_expression "puVar3[0x10] = 0" (subscript_expression "puVar3[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x11] = puVar6;" (assignment_expression "puVar3[0x11] = puVar6" (subscript_expression "puVar3[0x11]" identifier [ number_literal ]) = identifier) ;) (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) ;) comment (expression_statement "FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);" (call_expression "FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6)" identifier (argument_list "(puVar6,0,0,0,ppuVar9,puVar6)" ( identifier , number_literal , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "param_1[9] = (int)puVar3;" (assignment_expression "param_1[9] = (int)puVar3" (subscript_expression "param_1[9]" identifier [ number_literal ]) = (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);" (call_expression "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0)" identifier (argument_list "(param_3,pcVar10,1,3,0,puVar3,0x15,0)" ( identifier , identifier , number_literal , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "puVar6 = (undefined4 *)FUN_001aa8c0(0x30);" (assignment_expression "puVar6 = (undefined4 *)FUN_001aa8c0(0x30)" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "bVar1 = *(byte *)(puVar6 + 7);" (assignment_expression "bVar1 = *(byte *)(puVar6 + 7)" identifier = (pointer_expression "*(byte *)(puVar6 + 7)" * (cast_expression "(byte *)(puVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) ))))) ;) (expression_statement "puVar6[8] = 0;" (assignment_expression "puVar6[8] = 0" (subscript_expression "puVar6[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[8] = (int)puVar6;" (assignment_expression "param_1[8] = (int)puVar6" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar6[9] = 8;" (assignment_expression "puVar6[9] = 8" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[10] = 0;" (assignment_expression "puVar6[10] = 0" (subscript_expression "puVar6[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2" (pointer_expression "*(byte *)(puVar6 + 7)" * (cast_expression "(byte *)(puVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xe0 | 2" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*puVar6 = &PTR_FUN_00338cb8;" (assignment_expression "*puVar6 = &PTR_FUN_00338cb8" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_00338cb8" & identifier)) ;) (expression_statement "puVar6[0xb] = "** GOT IRELATIVE PLT";" (assignment_expression "puVar6[0xb] = "** GOT IRELATIVE PLT"" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = (string_literal ""** GOT IRELATIVE PLT"" " string_content ")) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[2] = 0;" (assignment_expression "puVar6[2] = 0" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[4] = 0;" (assignment_expression "puVar6[4] = 0" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[5] = 0xffffffff;" (assignment_expression "puVar6[5] = 0xffffffff" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[6] = 0xffffffff;" (assignment_expression "puVar6[6] = 0xffffffff" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);" (call_expression "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0)" identifier (argument_list "(param_3,pcVar10,1,3,0,puVar6,0x15,0)" ( identifier , identifier , number_literal , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);" (assignment_expression "piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" identifier = (cast_expression "(int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" (parenthesized_expression "(**(code **)(*param_1 + 0x104))" ( (pointer_expression "**(code **)(*param_1 + 0x104)" * (pointer_expression "*(code **)(*param_1 + 0x104)" * (cast_expression "(code **)(*param_1 + 0x104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x104)" ( (binary_expression "*param_1 + 0x104" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" ( identifier , identifier , (subscript_expression "param_1[5]" identifier [ number_literal ]) , (subscript_expression "param_1[7]" identifier [ number_literal ]) , (subscript_expression "param_1[8]" identifier [ number_literal ]) , identifier ))))) ;) (expression_statement "iVar5 = DAT_0033f2f0;" (assignment_expression "iVar5 = DAT_0033f2f0" identifier = identifier) ;) (expression_statement "param_1[6] = (int)piVar7;" (assignment_expression "param_1[6] = (int)piVar7" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 8) != 0)" ( (binary_expression "*(int *)(iVar5 + 8) != 0" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }" { (if_statement "if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }" if (parenthesized_expression "(*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0')" ( (binary_expression "*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0'" (pointer_expression "*(char *)(*(int *)(iVar5 + 8) + 0x2105)" * (cast_expression "(char *)(*(int *)(iVar5 + 8) + 0x2105)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x2105)" ( (binary_expression "*(int *)(iVar5 + 8) + 0x2105" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }" { (expression_statement "(**(code **)(*piVar7 + 0x7c))(piVar7,param_3);" (call_expression "(**(code **)(*piVar7 + 0x7c))(piVar7,param_3)" (parenthesized_expression "(**(code **)(*piVar7 + 0x7c))" ( (pointer_expression "**(code **)(*piVar7 + 0x7c)" * (pointer_expression "*(code **)(*piVar7 + 0x7c)" * (cast_expression "(code **)(*piVar7 + 0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x7c)" ( (binary_expression "*piVar7 + 0x7c" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) )) (argument_list "(piVar7,param_3)" ( identifier , identifier ))) ;) (expression_statement "piVar7 = (int *)param_1[6];" (assignment_expression "piVar7 = (int *)param_1[6]" identifier = (cast_expression "(int *)param_1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) })) (expression_statement "FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);" (call_expression "FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0)" identifier (argument_list "(param_3,".plt",1,6,0,piVar7,7,0)" ( identifier , (string_literal "".plt"" " string_content ") , number_literal , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "iVar5 = *(int *)(param_1[6] + 0x20);" (assignment_expression "iVar5 = *(int *)(param_1[6] + 0x20)" identifier = (pointer_expression "*(int *)(param_1[6] + 0x20)" * (cast_expression "(int *)(param_1[6] + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + 0x20)" ( (binary_expression "param_1[6] + 0x20" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);" (assignment_expression "iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20)" identifier = (pointer_expression "*(int *)(*(int *)(param_1[6] + 0x2c) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1[6] + 0x2c) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1[6] + 0x2c) + 0x20)" ( (binary_expression "*(int *)(param_1[6] + 0x2c) + 0x20" (pointer_expression "*(int *)(param_1[6] + 0x2c)" * (cast_expression "(int *)(param_1[6] + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + 0x2c)" ( (binary_expression "param_1[6] + 0x2c" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }" if (parenthesized_expression "((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0))" ( (binary_expression "(((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)" (parenthesized_expression "(((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0))" ( (binary_expression "((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)" (parenthesized_expression "((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0))))" ( (binary_expression "(*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))" (parenthesized_expression "(*(int *)(iVar2 + 0x44) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x44) == 0" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))" ( (parenthesized_expression "(iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0))" ( (binary_expression "iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)" (binary_expression "iVar5 == *(int *)(iVar2 + 0x44)" identifier == (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) && (parenthesized_expression "((*(byte *)(iVar2 + 0x91) & 1) != 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x91) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x91) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x91) & 1" (pointer_expression "*(byte *)(iVar2 + 0x91)" * (cast_expression "(byte *)(iVar2 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x91)" ( (binary_expression "iVar2 + 0x91" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) && (parenthesized_expression "(*(int *)(iVar2 + 0x48) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x48) == 0" (pointer_expression "*(int *)(iVar2 + 0x48)" * (cast_expression "(int *)(iVar2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(int *)(iVar2 + 0x4c) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x4c) == 0" (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }" { (expression_statement "*(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;" (assignment_expression "*(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1" (pointer_expression "*(byte *)(iVar2 + 0x91)" * (cast_expression "(byte *)(iVar2 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x91)" ( (binary_expression "iVar2 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar2 + 0x91) | 1" (pointer_expression "*(byte *)(iVar2 + 0x91)" * (cast_expression "(byte *)(iVar2 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x91)" ( (binary_expression "iVar2 + 0x91" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(int *)(iVar2 + 0x44) = iVar5;" (assignment_expression "*(int *)(iVar2 + 0x44) = iVar5" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0005e690();" (call_expression "FUN_0005e690()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_1[5];" return (subscript_expression "param_1[5]" identifier [ number_literal ]) ;) })) comment (expression_statement "FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");" (call_expression "FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section")" identifier (argument_list "("../../gold/output.h",0xd3a,"set_info_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info_section"" " string_content ") ))) ;) })) comment (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",piVar7)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " 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_base * init_got_plt_for_update(Target_x86_64<32> *\n   this, Symbol_table * symtab, Layout * layout, uint got_count, uint plt_count) */\n\nOutput_data_got_base * __thiscall\nanon_unknown.dwarf_32964f::Target_x86_64<32>::init_got_plt_for_update\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,uint got_count,uint plt_count\n          )\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  Parameters *pPVar4;\n  Output_section_data *pOVar5;\n  Symbol *pSVar6;\n  uint64_t uVar7;\n  undefined **this_00;\n  Layout *layout_00;\n  Free_list *this_01;\n  \n  if ((this->x86_64_info).dynamic_linker != (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }\n  pOVar5 = (Output_section_data *)operator_new(0x5c);\n                    /* try { // try from 000707d7 to 000707db has its CatchHandler @ 00070c25 */\n  uVar7 = gold::Output_data::default_alignment_for_size(0x40);\n  *(int *)&pOVar5->addralign_ = (int)uVar7;\n  bVar1 = (pOVar5->super_Output_data).field_0x1c;\n  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;\n  pOVar5->output_section_ = (Output_section *)0x0;\n  *(int *)((int)&pOVar5->addralign_ + 4) = (int)(uVar7 >> 0x20);\n  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;\n  this_00 = &PTR__Output_data_got_00339948;\n  (pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_00339948;\n  this_01 = (Free_list *)&pOVar5[1].super_Output_data.data_size_;\n  *(Free_list **)((int)&pOVar5[1].super_Output_data.data_size_ + 4) = this_01;\n  *(Free_list **)&pOVar5[1].super_Output_data.data_size_ = this_01;\n  *(Free_list **)((int)&pOVar5[1].super_Output_data.offset_ + 4) = this_01;\n  *(EVP_PKEY_CTX **)&(pOVar5->super_Output_data).data_size_ = (EVP_PKEY_CTX *)(got_count << 3);\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;\n  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;\n  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n  *(undefined4 *)&pOVar5[1].super_Output_data.address_ = 0;\n  *(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4) = 0;\n  *(undefined4 *)&pOVar5[1].super_Output_data.offset_ = 0;\n  pOVar5[1].super_Output_data.field_0x1c = 0;\n  pOVar5[1].output_section_ = (Output_section *)0x0;\n  *(undefined4 *)&pOVar5[1].addralign_ = 0;\n  *(undefined4 *)((int)&pOVar5[1].addralign_ + 4) = 0;\n  pOVar5[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n  if ((got_count & 0x1fffffff) != 0) {\n                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */\n    std::\n    vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n    ::_M_default_append((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1),got_count & 0x1fffffff);\n  }\n                    /* try { // try from 00070892 to 00070896 has its CatchHandler @ 00070c3d */\n  gold::Free_list::init(this_01,(EVP_PKEY_CTX *)(got_count << 3));\n  (this->x86_64_info).dynamic_linker = (char *)pOVar5;\n  gold::Layout::add_output_section_data(layout,".got",1,3,pOVar5,ORDER_RELRO_LAST,true);\n  pOVar5 = (Output_section_data *)operator_new(0x30);\n  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;\n  *(uint *)&(pOVar5->super_Output_data).data_size_ = plt_count * 8 + 0x18;\n  bVar1 = (pOVar5->super_Output_data).field_0x1c;\n  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)layout;\n  pOVar5->output_section_ = (Output_section *)0x0;\n  *(Output_section_data **)((int)&(this->x86_64_info).default_text_segment_address + 4) = pOVar5;\n  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;\n  (pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_00339344;\n  *(undefined4 *)&pOVar5->addralign_ = 8;\n  *(undefined4 *)((int)&pOVar5->addralign_ + 4) = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;\n  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;\n  gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);\n  pSVar6 = gold::Symbol_table::define_in_output_data\n                     (symtab,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,\n                      *(Output_data **)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      0,0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);\n  *(Symbol **)&(this->x86_64_info).common_pagesize = pSVar6;\n  pOVar5 = (Output_section_data *)operator_new(0x5c);\n                    /* try { // try from 00070993 to 00070997 has its CatchHandler @ 00070c35 */\n  uVar7 = gold::Output_data::default_alignment_for_size(0x40);\n  *(int *)&pOVar5->addralign_ = (int)uVar7;\n  bVar1 = (pOVar5->super_Output_data).field_0x1c;\n  pOVar5->output_section_ = (Output_section *)0x0;\n  *(int *)((int)&pOVar5->addralign_ + 4) = (int)(uVar7 >> 0x20);\n  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;\n  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;\n  (pOVar5->super_Output_data)._vptr_Output_data = (_func_int_varargs **)this_00;\n  layout_00 = (Layout *)&pOVar5[1].super_Output_data.data_size_;\n  *(undefined4 *)&(pOVar5->super_Output_data).data_size_ = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;\n  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;\n  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n  *(undefined4 *)&pOVar5[1].super_Output_data.address_ = 0;\n  *(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4) = 0;\n  *(Layout **)((int)&pOVar5[1].super_Output_data.data_size_ + 4) = layout_00;\n  *(Layout **)&pOVar5[1].super_Output_data.data_size_ = layout_00;\n  *(undefined4 *)&pOVar5[1].super_Output_data.offset_ = 0;\n  *(Layout **)((int)&pOVar5[1].super_Output_data.offset_ + 4) = layout_00;\n  pOVar5[1].super_Output_data.field_0x1c = 0;\n  pOVar5[1].output_section_ = (Output_section *)0x0;\n  *(undefined4 *)&pOVar5[1].addralign_ = 0;\n  *(undefined4 *)((int)&pOVar5[1].addralign_ + 4) = 0;\n  pOVar5[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n                    /* try { // try from 00070a36 to 00070a3a has its CatchHandler @ 00070c2d */\n  gold::Free_list::init((Free_list *)layout_00,(EVP_PKEY_CTX *)0x0);\n  *(Output_section_data **)((int)&(this->x86_64_info).abi_pagesize + 4) = pOVar5;\n  gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);\n  pOVar5 = (Output_section_data *)operator_new(0x30);\n  bVar1 = (pOVar5->super_Output_data).field_0x1c;\n  pOVar5->output_section_ = (Output_section *)0x0;\n  *(Output_section_data **)&(this->x86_64_info).abi_pagesize = pOVar5;\n  *(undefined4 *)&pOVar5->addralign_ = 8;\n  *(undefined4 *)((int)&pOVar5->addralign_ + 4) = 0;\n  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;\n  (pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_space_00338cb8;\n  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT";\n  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;\n  *(undefined4 *)&(pOVar5->super_Output_data).data_size_ = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;\n  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;\n  gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);\n  pOVar5 = (Output_section_data *)\n           (**(code **)((this->x86_64_info).size + 0x104))\n                     (this,layout,(this->x86_64_info).dynamic_linker,\n                      *(undefined4 *)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      (int)(this->x86_64_info).abi_pagesize,plt_count);\n  pPVar4 = gold::parameters;\n  *(Output_section_data **)&(this->x86_64_info).default_text_segment_address = pOVar5;\n  if (pPVar4->options_ != (General_options *)0x0) {\n    if ((pPVar4->options_->ld_generated_unwind_info_).value != false) {\n      (*(pOVar5->super_Output_data)._vptr_Output_data[0x1f])(pOVar5,layout);\n      pOVar5 = *(Output_section_data **)&(this->x86_64_info).default_text_segment_address;\n    }\n    gold::Layout::add_output_section_data(layout,".plt",1,6,pOVar5,ORDER_PLT,false);\n    iVar3 = (int)(this->x86_64_info).default_text_segment_address;\n    iVar2 = *(int *)(iVar3 + 0x20);\n    iVar3 = *(int *)(*(int *)(iVar3 + 0x2c) + 0x20);\n    if ((((*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar3 + 0x48) == 0)) && (*(int *)(iVar3 + 0x4c) == 0)) {\n      *(byte *)(iVar3 + 0x91) = *(byte *)(iVar3 + 0x91) | 1;\n      *(int *)(iVar3 + 0x44) = iVar2;\n      rela_dyn_section((Target_x86_64<32> *)this_00,layout_00);\n      return (Output_data_got_base *)(this->x86_64_info).dynamic_linker;\n    }\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xd3a,"set_info_section");\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n}\n\n" comment comment comment comment comment comment (ERROR "Output_data_got_base * __thiscall\nanon_unknown.dwarf_32964f::Target_x86_64<32>::init_got_plt_for_update\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,uint got_count,uint plt_count\n          )" (binary_expression "Output_data_got_base * __thiscall\nanon_unknown.dwarf_32964f::Target_x86_64<32>::init_got_plt_for_update\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,uint got_count,uint plt_count\n          )" (binary_expression "Output_data_got_base * __thiscall\nanon_unknown.dwarf_32964f::Target_x86_64<32" (binary_expression "Output_data_got_base * __thiscall\nanon_unknown.dwarf_32964f" identifier * (ERROR "__thiscall" identifier) (field_expression "anon_unknown.dwarf_32964f" identifier . field_identifier)) (ERROR "::Target_x86_64" : : identifier) < number_literal) > (ERROR "::" : :) (call_expression "init_got_plt_for_update\n          (Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,uint got_count,uint plt_count\n          )" identifier (argument_list "(Target_x86_64<32> *this,Symbol_table *symtab,Layout *layout,uint got_count,uint plt_count\n          )" ( (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) , (ERROR "uint" identifier) identifier , (ERROR "uint" identifier) identifier ))))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  Parameters *pPVar4;\n  Output_section_data *pOVar5;\n  Symbol *pSVar6;\n  uint64_t uVar7;\n  undefined **this_00;\n  Layout *layout_00;\n  Free_list *this_01;\n  \n  if ((this->x86_64_info).dynamic_linker != (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }\n  pOVar5 = (Output_section_data *)operator_new(0x5c);\n                    /* try { // try from 000707d7 to 000707db has its CatchHandler @ 00070c25 */\n  uVar7 = gold::Output_data::default_alignment_for_size(0x40);\n  *(int *)&pOVar5->addralign_ = (int)uVar7;\n  bVar1 = (pOVar5->super_Output_data).field_0x1c;\n  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;\n  pOVar5->output_section_ = (Output_section *)0x0;\n  *(int *)((int)&pOVar5->addralign_ + 4) = (int)(uVar7 >> 0x20);\n  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;\n  this_00 = &PTR__Output_data_got_00339948;\n  (pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_00339948;\n  this_01 = (Free_list *)&pOVar5[1].super_Output_data.data_size_;\n  *(Free_list **)((int)&pOVar5[1].super_Output_data.data_size_ + 4) = this_01;\n  *(Free_list **)&pOVar5[1].super_Output_data.data_size_ = this_01;\n  *(Free_list **)((int)&pOVar5[1].super_Output_data.offset_ + 4) = this_01;\n  *(EVP_PKEY_CTX **)&(pOVar5->super_Output_data).data_size_ = (EVP_PKEY_CTX *)(got_count << 3);\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;\n  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;\n  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n  *(undefined4 *)&pOVar5[1].super_Output_data.address_ = 0;\n  *(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4) = 0;\n  *(undefined4 *)&pOVar5[1].super_Output_data.offset_ = 0;\n  pOVar5[1].super_Output_data.field_0x1c = 0;\n  pOVar5[1].output_section_ = (Output_section *)0x0;\n  *(undefined4 *)&pOVar5[1].addralign_ = 0;\n  *(undefined4 *)((int)&pOVar5[1].addralign_ + 4) = 0;\n  pOVar5[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n  if ((got_count & 0x1fffffff) != 0) {\n                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */\n    std::\n    vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n    ::_M_default_append((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1),got_count & 0x1fffffff);\n  }\n                    /* try { // try from 00070892 to 00070896 has its CatchHandler @ 00070c3d */\n  gold::Free_list::init(this_01,(EVP_PKEY_CTX *)(got_count << 3));\n  (this->x86_64_info).dynamic_linker = (char *)pOVar5;\n  gold::Layout::add_output_section_data(layout,".got",1,3,pOVar5,ORDER_RELRO_LAST,true);\n  pOVar5 = (Output_section_data *)operator_new(0x30);\n  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;\n  *(uint *)&(pOVar5->super_Output_data).data_size_ = plt_count * 8 + 0x18;\n  bVar1 = (pOVar5->super_Output_data).field_0x1c;\n  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)layout;\n  pOVar5->output_section_ = (Output_section *)0x0;\n  *(Output_section_data **)((int)&(this->x86_64_info).default_text_segment_address + 4) = pOVar5;\n  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;\n  (pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_00339344;\n  *(undefined4 *)&pOVar5->addralign_ = 8;\n  *(undefined4 *)((int)&pOVar5->addralign_ + 4) = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;\n  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;\n  gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);\n  pSVar6 = gold::Symbol_table::define_in_output_data\n                     (symtab,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,\n                      *(Output_data **)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      0,0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);\n  *(Symbol **)&(this->x86_64_info).common_pagesize = pSVar6;\n  pOVar5 = (Output_section_data *)operator_new(0x5c);\n                    /* try { // try from 00070993 to 00070997 has its CatchHandler @ 00070c35 */\n  uVar7 = gold::Output_data::default_alignment_for_size(0x40);\n  *(int *)&pOVar5->addralign_ = (int)uVar7;\n  bVar1 = (pOVar5->super_Output_data).field_0x1c;\n  pOVar5->output_section_ = (Output_section *)0x0;\n  *(int *)((int)&pOVar5->addralign_ + 4) = (int)(uVar7 >> 0x20);\n  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;\n  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;\n  (pOVar5->super_Output_data)._vptr_Output_data = (_func_int_varargs **)this_00;\n  layout_00 = (Layout *)&pOVar5[1].super_Output_data.data_size_;\n  *(undefined4 *)&(pOVar5->super_Output_data).data_size_ = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;\n  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;\n  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n  *(undefined4 *)&pOVar5[1].super_Output_data.address_ = 0;\n  *(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4) = 0;\n  *(Layout **)((int)&pOVar5[1].super_Output_data.data_size_ + 4) = layout_00;\n  *(Layout **)&pOVar5[1].super_Output_data.data_size_ = layout_00;\n  *(undefined4 *)&pOVar5[1].super_Output_data.offset_ = 0;\n  *(Layout **)((int)&pOVar5[1].super_Output_data.offset_ + 4) = layout_00;\n  pOVar5[1].super_Output_data.field_0x1c = 0;\n  pOVar5[1].output_section_ = (Output_section *)0x0;\n  *(undefined4 *)&pOVar5[1].addralign_ = 0;\n  *(undefined4 *)((int)&pOVar5[1].addralign_ + 4) = 0;\n  pOVar5[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;\n                    /* try { // try from 00070a36 to 00070a3a has its CatchHandler @ 00070c2d */\n  gold::Free_list::init((Free_list *)layout_00,(EVP_PKEY_CTX *)0x0);\n  *(Output_section_data **)((int)&(this->x86_64_info).abi_pagesize + 4) = pOVar5;\n  gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);\n  pOVar5 = (Output_section_data *)operator_new(0x30);\n  bVar1 = (pOVar5->super_Output_data).field_0x1c;\n  pOVar5->output_section_ = (Output_section *)0x0;\n  *(Output_section_data **)&(this->x86_64_info).abi_pagesize = pOVar5;\n  *(undefined4 *)&pOVar5->addralign_ = 8;\n  *(undefined4 *)((int)&pOVar5->addralign_ + 4) = 0;\n  (pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;\n  (pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_space_00338cb8;\n  pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT";\n  *(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;\n  *(undefined4 *)&(pOVar5->super_Output_data).data_size_ = 0;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;\n  *(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;\n  gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);\n  pOVar5 = (Output_section_data *)\n           (**(code **)((this->x86_64_info).size + 0x104))\n                     (this,layout,(this->x86_64_info).dynamic_linker,\n                      *(undefined4 *)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      (int)(this->x86_64_info).abi_pagesize,plt_count);\n  pPVar4 = gold::parameters;\n  *(Output_section_data **)&(this->x86_64_info).default_text_segment_address = pOVar5;\n  if (pPVar4->options_ != (General_options *)0x0) {\n    if ((pPVar4->options_->ld_generated_unwind_info_).value != false) {\n      (*(pOVar5->super_Output_data)._vptr_Output_data[0x1f])(pOVar5,layout);\n      pOVar5 = *(Output_section_data **)&(this->x86_64_info).default_text_segment_address;\n    }\n    gold::Layout::add_output_section_data(layout,".plt",1,6,pOVar5,ORDER_PLT,false);\n    iVar3 = (int)(this->x86_64_info).default_text_segment_address;\n    iVar2 = *(int *)(iVar3 + 0x20);\n    iVar3 = *(int *)(*(int *)(iVar3 + 0x2c) + 0x20);\n    if ((((*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar3 + 0x48) == 0)) && (*(int *)(iVar3 + 0x4c) == 0)) {\n      *(byte *)(iVar3 + 0x91) = *(byte *)(iVar3 + 0x91) | 1;\n      *(int *)(iVar3 + 0x44) = iVar2;\n      rela_dyn_section((Target_x86_64<32> *)this_00,layout_00);\n      return (Output_data_got_base *)(this->x86_64_info).dynamic_linker;\n    }\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xd3a,"set_info_section");\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "Parameters *pPVar4;" type_identifier (pointer_declarator "*pPVar4" * identifier) ;) (declaration "Output_section_data *pOVar5;" type_identifier (pointer_declarator "*pOVar5" * identifier) ;) (declaration "Symbol *pSVar6;" type_identifier (pointer_declarator "*pSVar6" * identifier) ;) (declaration "uint64_t uVar7;" primitive_type identifier ;) (declaration "undefined **this_00;" type_identifier (pointer_declarator "**this_00" * (pointer_declarator "*this_00" * identifier)) ;) (declaration "Layout *layout_00;" type_identifier (pointer_declarator "*layout_00" * identifier) ;) (declaration "Free_list *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (if_statement "if ((this->x86_64_info).dynamic_linker != (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }" if (parenthesized_expression "((this->x86_64_info).dynamic_linker != (char *)0x0)" ( (binary_expression "(this->x86_64_info).dynamic_linker != (char *)0x0" (field_expression "(this->x86_64_info).dynamic_linker" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");" (call_expression "do_gold_unreachable("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update")" identifier (argument_list "("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update")" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""init_got_plt_for_update"" " string_content ") ))) ;)) })) (expression_statement "pOVar5 = (Output_section_data *)operator_new(0x5c);" (assignment_expression "pOVar5 = (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 "uVar7 = gold::" (assignment_expression "uVar7 = 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 *)&pOVar5->addralign_ = (int)uVar7;" (assignment_expression "*(int *)&pOVar5->addralign_ = (int)uVar7" (pointer_expression "*(int *)&pOVar5->addralign_" * (cast_expression "(int *)&pOVar5->addralign_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5->addralign_" & (field_expression "pOVar5->addralign_" identifier -> field_identifier)))) = (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar1 = (pOVar5->super_Output_data).field_0x1c;" (assignment_expression "bVar1 = (pOVar5->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar5->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar5->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar5->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar5->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).address_" & (field_expression "(pOVar5->super_Output_data).address_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).address_" & (field_expression "(pOVar5->super_Output_data).address_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar5->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar5->output_section_ = (Output_section *)0x0" (field_expression "pOVar5->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)((int)&pOVar5->addralign_ + 4) = (int)(uVar7 >> 0x20);" (assignment_expression "*(int *)((int)&pOVar5->addralign_ + 4) = (int)(uVar7 >> 0x20)" (pointer_expression "*(int *)((int)&pOVar5->addralign_ + 4)" * (cast_expression "(int *)((int)&pOVar5->addralign_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar5->addralign_ + 4)" ( (binary_expression "(int)&pOVar5->addralign_ + 4" (cast_expression "(int)&pOVar5->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5->addralign_" & (field_expression "pOVar5->addralign_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)(uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar7 >> 0x20)" ( (binary_expression "uVar7 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "(pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;" (assignment_expression "(pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2" (field_expression "(pOVar5->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 0xe0 | 2" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "this_00 = &PTR__Output_data_got_00339948;" (assignment_expression "this_00 = &PTR__Output_data_got_00339948" identifier = (pointer_expression "&PTR__Output_data_got_00339948" & identifier)) ;) (expression_statement "(pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_00339948;" (assignment_expression "(pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_00339948" (field_expression "(pOVar5->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_got_00339948" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_got_00339948" & identifier))) ;) (expression_statement "this_01 = (Free_list *)&pOVar5[1].super_Output_data.data_size_;" (assignment_expression "this_01 = (Free_list *)&pOVar5[1].super_Output_data.data_size_" identifier = (cast_expression "(Free_list *)&pOVar5[1].super_Output_data.data_size_" ( (type_descriptor "Free_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5[1].super_Output_data.data_size_" & (field_expression "pOVar5[1].super_Output_data.data_size_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) ;) (expression_statement "*(Free_list **)((int)&pOVar5[1].super_Output_data.data_size_ + 4) = this_01;" (assignment_expression "*(Free_list **)((int)&pOVar5[1].super_Output_data.data_size_ + 4) = this_01" (pointer_expression "*(Free_list **)((int)&pOVar5[1].super_Output_data.data_size_ + 4)" * (cast_expression "(Free_list **)((int)&pOVar5[1].super_Output_data.data_size_ + 4)" ( (type_descriptor "Free_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar5[1].super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&pOVar5[1].super_Output_data.data_size_ + 4" (cast_expression "(int)&pOVar5[1].super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5[1].super_Output_data.data_size_" & (field_expression "pOVar5[1].super_Output_data.data_size_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(Free_list **)&pOVar5[1].super_Output_data.data_size_ = this_01;" (assignment_expression "*(Free_list **)&pOVar5[1].super_Output_data.data_size_ = this_01" (pointer_expression "*(Free_list **)&pOVar5[1].super_Output_data.data_size_" * (cast_expression "(Free_list **)&pOVar5[1].super_Output_data.data_size_" ( (type_descriptor "Free_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar5[1].super_Output_data.data_size_" & (field_expression "pOVar5[1].super_Output_data.data_size_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "*(Free_list **)((int)&pOVar5[1].super_Output_data.offset_ + 4) = this_01;" (assignment_expression "*(Free_list **)((int)&pOVar5[1].super_Output_data.offset_ + 4) = this_01" (pointer_expression "*(Free_list **)((int)&pOVar5[1].super_Output_data.offset_ + 4)" * (cast_expression "(Free_list **)((int)&pOVar5[1].super_Output_data.offset_ + 4)" ( (type_descriptor "Free_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar5[1].super_Output_data.offset_ + 4)" ( (binary_expression "(int)&pOVar5[1].super_Output_data.offset_ + 4" (cast_expression "(int)&pOVar5[1].super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5[1].super_Output_data.offset_" & (field_expression "pOVar5[1].super_Output_data.offset_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(EVP_PKEY_CTX **)&(pOVar5->super_Output_data).data_size_ = (EVP_PKEY_CTX *)(got_count << 3);" (assignment_expression "*(EVP_PKEY_CTX **)&(pOVar5->super_Output_data).data_size_ = (EVP_PKEY_CTX *)(got_count << 3)" (pointer_expression "*(EVP_PKEY_CTX **)&(pOVar5->super_Output_data).data_size_" * (cast_expression "(EVP_PKEY_CTX **)&(pOVar5->super_Output_data).data_size_" ( (type_descriptor "EVP_PKEY_CTX **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pOVar5->super_Output_data).data_size_" & (field_expression "(pOVar5->super_Output_data).data_size_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = (cast_expression "(EVP_PKEY_CTX *)(got_count << 3)" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(got_count << 3)" ( (binary_expression "got_count << 3" identifier << number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).data_size_" & (field_expression "(pOVar5->super_Output_data).data_size_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar5->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar5->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).offset_" & (field_expression "(pOVar5->super_Output_data).offset_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).offset_" & (field_expression "(pOVar5->super_Output_data).offset_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;" (assignment_expression "pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0" (field_expression "pOVar5[1].super_Output_data._vptr_Output_data" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[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 *)&pOVar5[1].super_Output_data.address_ = 0;" (assignment_expression "*(undefined4 *)&pOVar5[1].super_Output_data.address_ = 0" (pointer_expression "*(undefined4 *)&pOVar5[1].super_Output_data.address_" * (cast_expression "(undefined4 *)&pOVar5[1].super_Output_data.address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5[1].super_Output_data.address_" & (field_expression "pOVar5[1].super_Output_data.address_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar5[1].super_Output_data.address_ + 4)" ( (binary_expression "(int)&pOVar5[1].super_Output_data.address_ + 4" (cast_expression "(int)&pOVar5[1].super_Output_data.address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5[1].super_Output_data.address_" & (field_expression "pOVar5[1].super_Output_data.address_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&pOVar5[1].super_Output_data.offset_ = 0;" (assignment_expression "*(undefined4 *)&pOVar5[1].super_Output_data.offset_ = 0" (pointer_expression "*(undefined4 *)&pOVar5[1].super_Output_data.offset_" * (cast_expression "(undefined4 *)&pOVar5[1].super_Output_data.offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5[1].super_Output_data.offset_" & (field_expression "pOVar5[1].super_Output_data.offset_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "pOVar5[1].super_Output_data.field_0x1c = 0;" (assignment_expression "pOVar5[1].super_Output_data.field_0x1c = 0" (field_expression "pOVar5[1].super_Output_data.field_0x1c" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pOVar5[1].output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar5[1].output_section_ = (Output_section *)0x0" (field_expression "pOVar5[1].output_section_" (subscript_expression "pOVar5[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 *)&pOVar5[1].addralign_ = 0;" (assignment_expression "*(undefined4 *)&pOVar5[1].addralign_ = 0" (pointer_expression "*(undefined4 *)&pOVar5[1].addralign_" * (cast_expression "(undefined4 *)&pOVar5[1].addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5[1].addralign_" & (field_expression "pOVar5[1].addralign_" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar5[1].addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar5[1].addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar5[1].addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar5[1].addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar5[1].addralign_ + 4)" ( (binary_expression "(int)&pOVar5[1].addralign_ + 4" (cast_expression "(int)&pOVar5[1].addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5[1].addralign_" & (field_expression "pOVar5[1].addralign_" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar5[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;" (assignment_expression "pOVar5[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0" (field_expression "pOVar5[2].super_Output_data._vptr_Output_data" (field_expression "pOVar5[2].super_Output_data" (subscript_expression "pOVar5[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)) ;) (if_statement "if ((got_count & 0x1fffffff) != 0) {\n                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */\n    std::\n    vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n    ::_M_default_append((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1),got_count & 0x1fffffff);\n  }" if (parenthesized_expression "((got_count & 0x1fffffff) != 0)" ( (binary_expression "(got_count & 0x1fffffff) != 0" (parenthesized_expression "(got_count & 0x1fffffff)" ( (binary_expression "got_count & 0x1fffffff" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */\n    std::\n    vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n    ::_M_default_append((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1),got_count & 0x1fffffff);\n  }" { comment (labeled_statement "std::\n    vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n    ::_M_default_append((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1),got_count & 0x1fffffff);" statement_identifier (ERROR "::\n    vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_data_got<64,_false>::Got_entry,_std" (binary_expression "Output_data_got<64" identifier < number_literal) , (comma_expression "_false>::Got_entry,_std" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Output_data_got<64,_false>::Got_entry>_>\n    ::_M_default_append((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1),got_count & 0x1fffffff);" (comma_expression "Output_data_got<64,_false>::Got_entry>_>\n    ::_M_default_append((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1),got_count & 0x1fffffff)" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "_false>::Got_entry>_>\n    ::_M_default_append((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1),got_count & 0x1fffffff)" (binary_expression "_false>::Got_entry>_" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_default_append((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1),got_count & 0x1fffffff)" identifier (argument_list "((vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1),got_count & 0x1fffffff)" ( (call_expression "(vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)(pOVar5 + 1)" (parenthesized_expression "(vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::Output_data_got<64,_false>::Got_entry>_>\n                         *)" ( (ERROR "vector<gold::Output_data_got<64,_false>::Got_entry,_std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Output_data_got<64,_false>::Got_entry,_std" (binary_expression "Output_data_got<64" identifier < number_literal) , (comma_expression "_false>::Got_entry,_std" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Output_data_got<64,_false>::Got_entry>_>\n                         *" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "_false>::Got_entry>_>\n                         *" (binary_expression "_false>::Got_entry>_" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) > (pointer_expression "*" * identifier))) )) (argument_list "(pOVar5 + 1)" ( (binary_expression "pOVar5 + 1" identifier + number_literal) ))) , (binary_expression "got_count & 0x1fffffff" identifier & number_literal) ))))) ;)) })) comment (labeled_statement "gold::Free_list::init(this_01,(EVP_PKEY_CTX *)(got_count << 3));" statement_identifier : (ERROR ":" :) (labeled_statement "Free_list::init(this_01,(EVP_PKEY_CTX *)(got_count << 3));" statement_identifier : (ERROR ":" :) (expression_statement "init(this_01,(EVP_PKEY_CTX *)(got_count << 3));" (call_expression "init(this_01,(EVP_PKEY_CTX *)(got_count << 3))" identifier (argument_list "(this_01,(EVP_PKEY_CTX *)(got_count << 3))" ( identifier , (cast_expression "(EVP_PKEY_CTX *)(got_count << 3)" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(got_count << 3)" ( (binary_expression "got_count << 3" identifier << number_literal) ))) ))) ;))) (expression_statement "(this->x86_64_info).dynamic_linker = (char *)pOVar5;" (assignment_expression "(this->x86_64_info).dynamic_linker = (char *)pOVar5" (field_expression "(this->x86_64_info).dynamic_linker" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)pOVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "gold::Layout::add_output_section_data(layout,".got",1,3,pOVar5,ORDER_RELRO_LAST,true);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data(layout,".got",1,3,pOVar5,ORDER_RELRO_LAST,true);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(layout,".got",1,3,pOVar5,ORDER_RELRO_LAST,true);" (call_expression "add_output_section_data(layout,".got",1,3,pOVar5,ORDER_RELRO_LAST,true)" identifier (argument_list "(layout,".got",1,3,pOVar5,ORDER_RELRO_LAST,true)" ( identifier , (string_literal "".got"" " string_content ") , number_literal , number_literal , identifier , identifier , true ))) ;))) (expression_statement "pOVar5 = (Output_section_data *)operator_new(0x30);" (assignment_expression "pOVar5 = (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 "*(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar5->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar5->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar5->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).address_" & (field_expression "(pOVar5->super_Output_data).address_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).address_" & (field_expression "(pOVar5->super_Output_data).address_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&(pOVar5->super_Output_data).data_size_ = plt_count * 8 + 0x18;" (assignment_expression "*(uint *)&(pOVar5->super_Output_data).data_size_ = plt_count * 8 + 0x18" (pointer_expression "*(uint *)&(pOVar5->super_Output_data).data_size_" * (cast_expression "(uint *)&(pOVar5->super_Output_data).data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).data_size_" & (field_expression "(pOVar5->super_Output_data).data_size_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "plt_count * 8 + 0x18" (binary_expression "plt_count * 8" identifier * number_literal) + number_literal)) ;) (expression_statement "bVar1 = (pOVar5->super_Output_data).field_0x1c;" (assignment_expression "bVar1 = (pOVar5->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar5->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)layout;" (assignment_expression "pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)layout" (field_expression "pOVar5[1].super_Output_data._vptr_Output_data" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)layout" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pOVar5->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar5->output_section_ = (Output_section *)0x0" (field_expression "pOVar5->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(Output_section_data **)((int)&(this->x86_64_info).default_text_segment_address + 4) = pOVar5;" (assignment_expression "*(Output_section_data **)((int)&(this->x86_64_info).default_text_segment_address + 4) = pOVar5" (pointer_expression "*(Output_section_data **)((int)&(this->x86_64_info).default_text_segment_address + 4)" * (cast_expression "(Output_section_data **)((int)&(this->x86_64_info).default_text_segment_address + 4)" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(this->x86_64_info).default_text_segment_address + 4)" ( (binary_expression "(int)&(this->x86_64_info).default_text_segment_address + 4" (cast_expression "(int)&(this->x86_64_info).default_text_segment_address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->x86_64_info).default_text_segment_address" & (field_expression "(this->x86_64_info).default_text_segment_address" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;" (assignment_expression "(pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2" (field_expression "(pOVar5->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 0xe0 | 2" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "(pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_00339344;" (assignment_expression "(pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_00339344" (field_expression "(pOVar5->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_got_plt_x86_64_00339344" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_got_plt_x86_64_00339344" & identifier))) ;) (expression_statement "*(undefined4 *)&pOVar5->addralign_ = 8;" (assignment_expression "*(undefined4 *)&pOVar5->addralign_ = 8" (pointer_expression "*(undefined4 *)&pOVar5->addralign_" * (cast_expression "(undefined4 *)&pOVar5->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5->addralign_" & (field_expression "pOVar5->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar5->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar5->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar5->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar5->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar5->addralign_ + 4)" ( (binary_expression "(int)&pOVar5->addralign_ + 4" (cast_expression "(int)&pOVar5->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5->addralign_" & (field_expression "pOVar5->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).data_size_" & (field_expression "(pOVar5->super_Output_data).data_size_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar5->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar5->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).offset_" & (field_expression "(pOVar5->super_Output_data).offset_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).offset_" & (field_expression "(pOVar5->super_Output_data).offset_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);" (call_expression "add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false)" identifier (argument_list "(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false)" ( identifier , (string_literal "".got.plt"" " string_content ") , number_literal , number_literal , identifier , identifier , false ))) ;))) (ERROR "pSVar6 = gold::" (assignment_expression "pSVar6 = gold" identifier = identifier) : :) (labeled_statement "Symbol_table::define_in_output_data\n                     (symtab,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,\n                      *(Output_data **)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      0,0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);" statement_identifier : (ERROR ":" :) (expression_statement "define_in_output_data\n                     (symtab,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,\n                      *(Output_data **)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      0,0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);" (call_expression "define_in_output_data\n                     (symtab,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,\n                      *(Output_data **)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      0,0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false)" identifier (argument_list "(symtab,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,\n                      *(Output_data **)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      0,0,STT_OBJECT,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 , (pointer_expression "*(Output_data **)((int)&(this->x86_64_info).default_text_segment_address + 4)" * (cast_expression "(Output_data **)((int)&(this->x86_64_info).default_text_segment_address + 4)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(this->x86_64_info).default_text_segment_address + 4)" ( (binary_expression "(int)&(this->x86_64_info).default_text_segment_address + 4" (cast_expression "(int)&(this->x86_64_info).default_text_segment_address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->x86_64_info).default_text_segment_address" & (field_expression "(this->x86_64_info).default_text_segment_address" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) , number_literal , number_literal , identifier , identifier , identifier , (char_literal "'\0'" ' escape_sequence ') , false , false ))) ;)) (expression_statement "*(Symbol **)&(this->x86_64_info).common_pagesize = pSVar6;" (assignment_expression "*(Symbol **)&(this->x86_64_info).common_pagesize = pSVar6" (pointer_expression "*(Symbol **)&(this->x86_64_info).common_pagesize" * (cast_expression "(Symbol **)&(this->x86_64_info).common_pagesize" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(this->x86_64_info).common_pagesize" & (field_expression "(this->x86_64_info).common_pagesize" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "pOVar5 = (Output_section_data *)operator_new(0x5c);" (assignment_expression "pOVar5 = (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 "uVar7 = gold::" (assignment_expression "uVar7 = 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 *)&pOVar5->addralign_ = (int)uVar7;" (assignment_expression "*(int *)&pOVar5->addralign_ = (int)uVar7" (pointer_expression "*(int *)&pOVar5->addralign_" * (cast_expression "(int *)&pOVar5->addralign_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5->addralign_" & (field_expression "pOVar5->addralign_" identifier -> field_identifier)))) = (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar1 = (pOVar5->super_Output_data).field_0x1c;" (assignment_expression "bVar1 = (pOVar5->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar5->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pOVar5->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar5->output_section_ = (Output_section *)0x0" (field_expression "pOVar5->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)((int)&pOVar5->addralign_ + 4) = (int)(uVar7 >> 0x20);" (assignment_expression "*(int *)((int)&pOVar5->addralign_ + 4) = (int)(uVar7 >> 0x20)" (pointer_expression "*(int *)((int)&pOVar5->addralign_ + 4)" * (cast_expression "(int *)((int)&pOVar5->addralign_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar5->addralign_ + 4)" ( (binary_expression "(int)&pOVar5->addralign_ + 4" (cast_expression "(int)&pOVar5->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5->addralign_" & (field_expression "pOVar5->addralign_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)(uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar7 >> 0x20)" ( (binary_expression "uVar7 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "*(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar5->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar5->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar5->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).address_" & (field_expression "(pOVar5->super_Output_data).address_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "(pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;" (assignment_expression "(pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2" (field_expression "(pOVar5->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 0xe0 | 2" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).address_" & (field_expression "(pOVar5->super_Output_data).address_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(pOVar5->super_Output_data)._vptr_Output_data = (_func_int_varargs **)this_00;" (assignment_expression "(pOVar5->super_Output_data)._vptr_Output_data = (_func_int_varargs **)this_00" (field_expression "(pOVar5->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)this_00" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "layout_00 = (Layout *)&pOVar5[1].super_Output_data.data_size_;" (assignment_expression "layout_00 = (Layout *)&pOVar5[1].super_Output_data.data_size_" identifier = (cast_expression "(Layout *)&pOVar5[1].super_Output_data.data_size_" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5[1].super_Output_data.data_size_" & (field_expression "pOVar5[1].super_Output_data.data_size_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) ;) (expression_statement "*(undefined4 *)&(pOVar5->super_Output_data).data_size_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar5->super_Output_data).data_size_ = 0" (pointer_expression "*(undefined4 *)&(pOVar5->super_Output_data).data_size_" * (cast_expression "(undefined4 *)&(pOVar5->super_Output_data).data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).data_size_" & (field_expression "(pOVar5->super_Output_data).data_size_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).data_size_" & (field_expression "(pOVar5->super_Output_data).data_size_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar5->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar5->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).offset_" & (field_expression "(pOVar5->super_Output_data).offset_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).offset_" & (field_expression "(pOVar5->super_Output_data).offset_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;" (assignment_expression "pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0" (field_expression "pOVar5[1].super_Output_data._vptr_Output_data" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[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 *)&pOVar5[1].super_Output_data.address_ = 0;" (assignment_expression "*(undefined4 *)&pOVar5[1].super_Output_data.address_ = 0" (pointer_expression "*(undefined4 *)&pOVar5[1].super_Output_data.address_" * (cast_expression "(undefined4 *)&pOVar5[1].super_Output_data.address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5[1].super_Output_data.address_" & (field_expression "pOVar5[1].super_Output_data.address_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar5[1].super_Output_data.address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar5[1].super_Output_data.address_ + 4)" ( (binary_expression "(int)&pOVar5[1].super_Output_data.address_ + 4" (cast_expression "(int)&pOVar5[1].super_Output_data.address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5[1].super_Output_data.address_" & (field_expression "pOVar5[1].super_Output_data.address_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(Layout **)((int)&pOVar5[1].super_Output_data.data_size_ + 4) = layout_00;" (assignment_expression "*(Layout **)((int)&pOVar5[1].super_Output_data.data_size_ + 4) = layout_00" (pointer_expression "*(Layout **)((int)&pOVar5[1].super_Output_data.data_size_ + 4)" * (cast_expression "(Layout **)((int)&pOVar5[1].super_Output_data.data_size_ + 4)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar5[1].super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&pOVar5[1].super_Output_data.data_size_ + 4" (cast_expression "(int)&pOVar5[1].super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5[1].super_Output_data.data_size_" & (field_expression "pOVar5[1].super_Output_data.data_size_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(Layout **)&pOVar5[1].super_Output_data.data_size_ = layout_00;" (assignment_expression "*(Layout **)&pOVar5[1].super_Output_data.data_size_ = layout_00" (pointer_expression "*(Layout **)&pOVar5[1].super_Output_data.data_size_" * (cast_expression "(Layout **)&pOVar5[1].super_Output_data.data_size_" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar5[1].super_Output_data.data_size_" & (field_expression "pOVar5[1].super_Output_data.data_size_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)&pOVar5[1].super_Output_data.offset_ = 0;" (assignment_expression "*(undefined4 *)&pOVar5[1].super_Output_data.offset_ = 0" (pointer_expression "*(undefined4 *)&pOVar5[1].super_Output_data.offset_" * (cast_expression "(undefined4 *)&pOVar5[1].super_Output_data.offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5[1].super_Output_data.offset_" & (field_expression "pOVar5[1].super_Output_data.offset_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "*(Layout **)((int)&pOVar5[1].super_Output_data.offset_ + 4) = layout_00;" (assignment_expression "*(Layout **)((int)&pOVar5[1].super_Output_data.offset_ + 4) = layout_00" (pointer_expression "*(Layout **)((int)&pOVar5[1].super_Output_data.offset_ + 4)" * (cast_expression "(Layout **)((int)&pOVar5[1].super_Output_data.offset_ + 4)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar5[1].super_Output_data.offset_ + 4)" ( (binary_expression "(int)&pOVar5[1].super_Output_data.offset_ + 4" (cast_expression "(int)&pOVar5[1].super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5[1].super_Output_data.offset_" & (field_expression "pOVar5[1].super_Output_data.offset_" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pOVar5[1].super_Output_data.field_0x1c = 0;" (assignment_expression "pOVar5[1].super_Output_data.field_0x1c = 0" (field_expression "pOVar5[1].super_Output_data.field_0x1c" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pOVar5[1].output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar5[1].output_section_ = (Output_section *)0x0" (field_expression "pOVar5[1].output_section_" (subscript_expression "pOVar5[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 *)&pOVar5[1].addralign_ = 0;" (assignment_expression "*(undefined4 *)&pOVar5[1].addralign_ = 0" (pointer_expression "*(undefined4 *)&pOVar5[1].addralign_" * (cast_expression "(undefined4 *)&pOVar5[1].addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5[1].addralign_" & (field_expression "pOVar5[1].addralign_" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar5[1].addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar5[1].addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar5[1].addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar5[1].addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar5[1].addralign_ + 4)" ( (binary_expression "(int)&pOVar5[1].addralign_ + 4" (cast_expression "(int)&pOVar5[1].addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5[1].addralign_" & (field_expression "pOVar5[1].addralign_" (subscript_expression "pOVar5[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar5[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0;" (assignment_expression "pOVar5[2].super_Output_data._vptr_Output_data = (_func_int_varargs **)0x0" (field_expression "pOVar5[2].super_Output_data._vptr_Output_data" (field_expression "pOVar5[2].super_Output_data" (subscript_expression "pOVar5[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)) ;) comment (labeled_statement "gold::Free_list::init((Free_list *)layout_00,(EVP_PKEY_CTX *)0x0);" statement_identifier : (ERROR ":" :) (labeled_statement "Free_list::init((Free_list *)layout_00,(EVP_PKEY_CTX *)0x0);" statement_identifier : (ERROR ":" :) (expression_statement "init((Free_list *)layout_00,(EVP_PKEY_CTX *)0x0);" (call_expression "init((Free_list *)layout_00,(EVP_PKEY_CTX *)0x0)" identifier (argument_list "((Free_list *)layout_00,(EVP_PKEY_CTX *)0x0)" ( (cast_expression "(Free_list *)layout_00" ( (type_descriptor "Free_list *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(EVP_PKEY_CTX *)0x0" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;))) (expression_statement "*(Output_section_data **)((int)&(this->x86_64_info).abi_pagesize + 4) = pOVar5;" (assignment_expression "*(Output_section_data **)((int)&(this->x86_64_info).abi_pagesize + 4) = pOVar5" (pointer_expression "*(Output_section_data **)((int)&(this->x86_64_info).abi_pagesize + 4)" * (cast_expression "(Output_section_data **)((int)&(this->x86_64_info).abi_pagesize + 4)" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(this->x86_64_info).abi_pagesize + 4)" ( (binary_expression "(int)&(this->x86_64_info).abi_pagesize + 4" (cast_expression "(int)&(this->x86_64_info).abi_pagesize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->x86_64_info).abi_pagesize" & (field_expression "(this->x86_64_info).abi_pagesize" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (labeled_statement "gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);" (call_expression "add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false)" identifier (argument_list "(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false)" ( identifier , (string_literal "".got.plt"" " string_content ") , number_literal , number_literal , identifier , identifier , false ))) ;))) (expression_statement "pOVar5 = (Output_section_data *)operator_new(0x30);" (assignment_expression "pOVar5 = (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 "bVar1 = (pOVar5->super_Output_data).field_0x1c;" (assignment_expression "bVar1 = (pOVar5->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar5->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pOVar5->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar5->output_section_ = (Output_section *)0x0" (field_expression "pOVar5->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(Output_section_data **)&(this->x86_64_info).abi_pagesize = pOVar5;" (assignment_expression "*(Output_section_data **)&(this->x86_64_info).abi_pagesize = pOVar5" (pointer_expression "*(Output_section_data **)&(this->x86_64_info).abi_pagesize" * (cast_expression "(Output_section_data **)&(this->x86_64_info).abi_pagesize" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(this->x86_64_info).abi_pagesize" & (field_expression "(this->x86_64_info).abi_pagesize" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)&pOVar5->addralign_ = 8;" (assignment_expression "*(undefined4 *)&pOVar5->addralign_ = 8" (pointer_expression "*(undefined4 *)&pOVar5->addralign_" * (cast_expression "(undefined4 *)&pOVar5->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar5->addralign_" & (field_expression "pOVar5->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar5->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar5->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar5->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar5->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar5->addralign_ + 4)" ( (binary_expression "(int)&pOVar5->addralign_ + 4" (cast_expression "(int)&pOVar5->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar5->addralign_" & (field_expression "pOVar5->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2;" (assignment_expression "(pOVar5->super_Output_data).field_0x1c = bVar1 & 0xe0 | 2" (field_expression "(pOVar5->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 0xe0 | 2" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "(pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_space_00338cb8;" (assignment_expression "(pOVar5->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_space_00338cb8" (field_expression "(pOVar5->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_space_00338cb8" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_space_00338cb8" & identifier))) ;) (expression_statement "pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT";" (assignment_expression "pOVar5[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** GOT IRELATIVE PLT"" (field_expression "pOVar5[1].super_Output_data._vptr_Output_data" (field_expression "pOVar5[1].super_Output_data" (subscript_expression "pOVar5[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 "*(undefined4 *)&(pOVar5->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar5->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar5->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar5->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).address_" & (field_expression "(pOVar5->super_Output_data).address_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).address_" & (field_expression "(pOVar5->super_Output_data).address_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar5->super_Output_data).data_size_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar5->super_Output_data).data_size_ = 0" (pointer_expression "*(undefined4 *)&(pOVar5->super_Output_data).data_size_" * (cast_expression "(undefined4 *)&(pOVar5->super_Output_data).data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).data_size_" & (field_expression "(pOVar5->super_Output_data).data_size_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).data_size_" & (field_expression "(pOVar5->super_Output_data).data_size_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar5->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar5->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar5->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar5->super_Output_data).offset_" & (field_expression "(pOVar5->super_Output_data).offset_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar5->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar5->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar5->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar5->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar5->super_Output_data).offset_" & (field_expression "(pOVar5->super_Output_data).offset_" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false);" (call_expression "add_output_section_data(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false)" identifier (argument_list "(layout,".got.plt",1,3,pOVar5,ORDER_NON_RELRO_FIRST,false)" ( identifier , (string_literal "".got.plt"" " string_content ") , number_literal , number_literal , identifier , identifier , false ))) ;))) (expression_statement "pOVar5 = (Output_section_data *)\n           (**(code **)((this->x86_64_info).size + 0x104))\n                     (this,layout,(this->x86_64_info).dynamic_linker,\n                      *(undefined4 *)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      (int)(this->x86_64_info).abi_pagesize,plt_count);" (assignment_expression "pOVar5 = (Output_section_data *)\n           (**(code **)((this->x86_64_info).size + 0x104))\n                     (this,layout,(this->x86_64_info).dynamic_linker,\n                      *(undefined4 *)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      (int)(this->x86_64_info).abi_pagesize,plt_count)" identifier = (cast_expression "(Output_section_data *)\n           (**(code **)((this->x86_64_info).size + 0x104))\n                     (this,layout,(this->x86_64_info).dynamic_linker,\n                      *(undefined4 *)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      (int)(this->x86_64_info).abi_pagesize,plt_count)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)((this->x86_64_info).size + 0x104))\n                     (this,layout,(this->x86_64_info).dynamic_linker,\n                      *(undefined4 *)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      (int)(this->x86_64_info).abi_pagesize,plt_count)" (parenthesized_expression "(**(code **)((this->x86_64_info).size + 0x104))" ( (pointer_expression "**(code **)((this->x86_64_info).size + 0x104)" * (pointer_expression "*(code **)((this->x86_64_info).size + 0x104)" * (cast_expression "(code **)((this->x86_64_info).size + 0x104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((this->x86_64_info).size + 0x104)" ( (binary_expression "(this->x86_64_info).size + 0x104" (field_expression "(this->x86_64_info).size" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) )) (argument_list "(this,layout,(this->x86_64_info).dynamic_linker,\n                      *(undefined4 *)((int)&(this->x86_64_info).default_text_segment_address + 4),\n                      (int)(this->x86_64_info).abi_pagesize,plt_count)" ( identifier , identifier , (field_expression "(this->x86_64_info).dynamic_linker" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier) , (pointer_expression "*(undefined4 *)((int)&(this->x86_64_info).default_text_segment_address + 4)" * (cast_expression "(undefined4 *)((int)&(this->x86_64_info).default_text_segment_address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->x86_64_info).default_text_segment_address + 4)" ( (binary_expression "(int)&(this->x86_64_info).default_text_segment_address + 4" (cast_expression "(int)&(this->x86_64_info).default_text_segment_address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->x86_64_info).default_text_segment_address" & (field_expression "(this->x86_64_info).default_text_segment_address" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) , (cast_expression "(int)(this->x86_64_info).abi_pagesize" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->x86_64_info).abi_pagesize" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier)) , identifier ))))) ;) (expression_statement "pPVar4 = gold::parameters;" (assignment_expression "pPVar4 = gold" identifier = identifier) (ERROR "::parameters" : : identifier) ;) (expression_statement "*(Output_section_data **)&(this->x86_64_info).default_text_segment_address = pOVar5;" (assignment_expression "*(Output_section_data **)&(this->x86_64_info).default_text_segment_address = pOVar5" (pointer_expression "*(Output_section_data **)&(this->x86_64_info).default_text_segment_address" * (cast_expression "(Output_section_data **)&(this->x86_64_info).default_text_segment_address" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(this->x86_64_info).default_text_segment_address" & (field_expression "(this->x86_64_info).default_text_segment_address" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (if_statement "if (pPVar4->options_ != (General_options *)0x0) {\n    if ((pPVar4->options_->ld_generated_unwind_info_).value != false) {\n      (*(pOVar5->super_Output_data)._vptr_Output_data[0x1f])(pOVar5,layout);\n      pOVar5 = *(Output_section_data **)&(this->x86_64_info).default_text_segment_address;\n    }\n    gold::Layout::add_output_section_data(layout,".plt",1,6,pOVar5,ORDER_PLT,false);\n    iVar3 = (int)(this->x86_64_info).default_text_segment_address;\n    iVar2 = *(int *)(iVar3 + 0x20);\n    iVar3 = *(int *)(*(int *)(iVar3 + 0x2c) + 0x20);\n    if ((((*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar3 + 0x48) == 0)) && (*(int *)(iVar3 + 0x4c) == 0)) {\n      *(byte *)(iVar3 + 0x91) = *(byte *)(iVar3 + 0x91) | 1;\n      *(int *)(iVar3 + 0x44) = iVar2;\n      rela_dyn_section((Target_x86_64<32> *)this_00,layout_00);\n      return (Output_data_got_base *)(this->x86_64_info).dynamic_linker;\n    }\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xd3a,"set_info_section");\n  }" if (parenthesized_expression "(pPVar4->options_ != (General_options *)0x0)" ( (binary_expression "pPVar4->options_ != (General_options *)0x0" (field_expression "pPVar4->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((pPVar4->options_->ld_generated_unwind_info_).value != false) {\n      (*(pOVar5->super_Output_data)._vptr_Output_data[0x1f])(pOVar5,layout);\n      pOVar5 = *(Output_section_data **)&(this->x86_64_info).default_text_segment_address;\n    }\n    gold::Layout::add_output_section_data(layout,".plt",1,6,pOVar5,ORDER_PLT,false);\n    iVar3 = (int)(this->x86_64_info).default_text_segment_address;\n    iVar2 = *(int *)(iVar3 + 0x20);\n    iVar3 = *(int *)(*(int *)(iVar3 + 0x2c) + 0x20);\n    if ((((*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar3 + 0x48) == 0)) && (*(int *)(iVar3 + 0x4c) == 0)) {\n      *(byte *)(iVar3 + 0x91) = *(byte *)(iVar3 + 0x91) | 1;\n      *(int *)(iVar3 + 0x44) = iVar2;\n      rela_dyn_section((Target_x86_64<32> *)this_00,layout_00);\n      return (Output_data_got_base *)(this->x86_64_info).dynamic_linker;\n    }\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xd3a,"set_info_section");\n  }" { (if_statement "if ((pPVar4->options_->ld_generated_unwind_info_).value != false) {\n      (*(pOVar5->super_Output_data)._vptr_Output_data[0x1f])(pOVar5,layout);\n      pOVar5 = *(Output_section_data **)&(this->x86_64_info).default_text_segment_address;\n    }" if (parenthesized_expression "((pPVar4->options_->ld_generated_unwind_info_).value != false)" ( (binary_expression "(pPVar4->options_->ld_generated_unwind_info_).value != false" (field_expression "(pPVar4->options_->ld_generated_unwind_info_).value" (parenthesized_expression "(pPVar4->options_->ld_generated_unwind_info_)" ( (field_expression "pPVar4->options_->ld_generated_unwind_info_" (field_expression "pPVar4->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n      (*(pOVar5->super_Output_data)._vptr_Output_data[0x1f])(pOVar5,layout);\n      pOVar5 = *(Output_section_data **)&(this->x86_64_info).default_text_segment_address;\n    }" { (expression_statement "(*(pOVar5->super_Output_data)._vptr_Output_data[0x1f])(pOVar5,layout);" (call_expression "(*(pOVar5->super_Output_data)._vptr_Output_data[0x1f])(pOVar5,layout)" (parenthesized_expression "(*(pOVar5->super_Output_data)._vptr_Output_data[0x1f])" ( (pointer_expression "*(pOVar5->super_Output_data)._vptr_Output_data[0x1f]" * (subscript_expression "(pOVar5->super_Output_data)._vptr_Output_data[0x1f]" (field_expression "(pOVar5->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar5->super_Output_data)" ( (field_expression "pOVar5->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pOVar5,layout)" ( identifier , identifier ))) ;) (expression_statement "pOVar5 = *(Output_section_data **)&(this->x86_64_info).default_text_segment_address;" (assignment_expression "pOVar5 = *(Output_section_data **)&(this->x86_64_info).default_text_segment_address" identifier = (pointer_expression "*(Output_section_data **)&(this->x86_64_info).default_text_segment_address" * (cast_expression "(Output_section_data **)&(this->x86_64_info).default_text_segment_address" ( (type_descriptor "Output_section_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(this->x86_64_info).default_text_segment_address" & (field_expression "(this->x86_64_info).default_text_segment_address" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier))))) ;) })) (labeled_statement "gold::Layout::add_output_section_data(layout,".plt",1,6,pOVar5,ORDER_PLT,false);" statement_identifier : (ERROR ":" :) (labeled_statement "Layout::add_output_section_data(layout,".plt",1,6,pOVar5,ORDER_PLT,false);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(layout,".plt",1,6,pOVar5,ORDER_PLT,false);" (call_expression "add_output_section_data(layout,".plt",1,6,pOVar5,ORDER_PLT,false)" identifier (argument_list "(layout,".plt",1,6,pOVar5,ORDER_PLT,false)" ( identifier , (string_literal "".plt"" " string_content ") , number_literal , number_literal , identifier , identifier , false ))) ;))) (expression_statement "iVar3 = (int)(this->x86_64_info).default_text_segment_address;" (assignment_expression "iVar3 = (int)(this->x86_64_info).default_text_segment_address" identifier = (cast_expression "(int)(this->x86_64_info).default_text_segment_address" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->x86_64_info).default_text_segment_address" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "iVar2 = *(int *)(iVar3 + 0x20);" (assignment_expression "iVar2 = *(int *)(iVar3 + 0x20)" identifier = (pointer_expression "*(int *)(iVar3 + 0x20)" * (cast_expression "(int *)(iVar3 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(*(int *)(iVar3 + 0x2c) + 0x20);" (assignment_expression "iVar3 = *(int *)(*(int *)(iVar3 + 0x2c) + 0x20)" identifier = (pointer_expression "*(int *)(*(int *)(iVar3 + 0x2c) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x2c) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x2c) + 0x20)" ( (binary_expression "*(int *)(iVar3 + 0x2c) + 0x20" (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((((*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar3 + 0x48) == 0)) && (*(int *)(iVar3 + 0x4c) == 0)) {\n      *(byte *)(iVar3 + 0x91) = *(byte *)(iVar3 + 0x91) | 1;\n      *(int *)(iVar3 + 0x44) = iVar2;\n      rela_dyn_section((Target_x86_64<32> *)this_00,layout_00);\n      return (Output_data_got_base *)(this->x86_64_info).dynamic_linker;\n    }" if (parenthesized_expression "((((*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar3 + 0x48) == 0)) && (*(int *)(iVar3 + 0x4c) == 0))" ( (binary_expression "(((*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar3 + 0x48) == 0)) && (*(int *)(iVar3 + 0x4c) == 0)" (parenthesized_expression "(((*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar3 + 0x48) == 0))" ( (binary_expression "((*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar3 + 0x48) == 0)" (parenthesized_expression "((*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0))))" ( (binary_expression "(*(int *)(iVar3 + 0x44) == 0) ||\n         ((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))" (parenthesized_expression "(*(int *)(iVar3 + 0x44) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x44) == 0" (pointer_expression "*(int *)(iVar3 + 0x44)" * (cast_expression "(int *)(iVar3 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x44)" ( (binary_expression "iVar3 + 0x44" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "((iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)))" ( (parenthesized_expression "(iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0))" ( (binary_expression "iVar2 == *(int *)(iVar3 + 0x44) && ((*(byte *)(iVar3 + 0x91) & 1) != 0)" (binary_expression "iVar2 == *(int *)(iVar3 + 0x44)" identifier == (pointer_expression "*(int *)(iVar3 + 0x44)" * (cast_expression "(int *)(iVar3 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x44)" ( (binary_expression "iVar3 + 0x44" identifier + number_literal) ))))) && (parenthesized_expression "((*(byte *)(iVar3 + 0x91) & 1) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x91) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x91) & 1)" ( (binary_expression "*(byte *)(iVar3 + 0x91) & 1" (pointer_expression "*(byte *)(iVar3 + 0x91)" * (cast_expression "(byte *)(iVar3 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x91)" ( (binary_expression "iVar3 + 0x91" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) && (parenthesized_expression "(*(int *)(iVar3 + 0x48) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x48) == 0" (pointer_expression "*(int *)(iVar3 + 0x48)" * (cast_expression "(int *)(iVar3 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(int *)(iVar3 + 0x4c) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x4c) == 0" (pointer_expression "*(int *)(iVar3 + 0x4c)" * (cast_expression "(int *)(iVar3 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4c)" ( (binary_expression "iVar3 + 0x4c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *(byte *)(iVar3 + 0x91) = *(byte *)(iVar3 + 0x91) | 1;\n      *(int *)(iVar3 + 0x44) = iVar2;\n      rela_dyn_section((Target_x86_64<32> *)this_00,layout_00);\n      return (Output_data_got_base *)(this->x86_64_info).dynamic_linker;\n    }" { (expression_statement "*(byte *)(iVar3 + 0x91) = *(byte *)(iVar3 + 0x91) | 1;" (assignment_expression "*(byte *)(iVar3 + 0x91) = *(byte *)(iVar3 + 0x91) | 1" (pointer_expression "*(byte *)(iVar3 + 0x91)" * (cast_expression "(byte *)(iVar3 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x91)" ( (binary_expression "iVar3 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar3 + 0x91) | 1" (pointer_expression "*(byte *)(iVar3 + 0x91)" * (cast_expression "(byte *)(iVar3 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x91)" ( (binary_expression "iVar3 + 0x91" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(int *)(iVar3 + 0x44) = iVar2;" (assignment_expression "*(int *)(iVar3 + 0x44) = iVar2" (pointer_expression "*(int *)(iVar3 + 0x44)" * (cast_expression "(int *)(iVar3 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x44)" ( (binary_expression "iVar3 + 0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "rela_dyn_section((Target_x86_64<32> *)this_00,layout_00);" (call_expression "rela_dyn_section((Target_x86_64<32> *)this_00,layout_00)" identifier (argument_list "((Target_x86_64<32> *)this_00,layout_00)" ( (parenthesized_expression "(Target_x86_64<32> *)this_00,layout_00)" ( (comma_expression "Target_x86_64<32> *)this_00,layout_00" (binary_expression "Target_x86_64<32> *)this_00" (binary_expression "Target_x86_64<32" identifier < number_literal) > (pointer_expression "*)this_00" * (ERROR ")" )) identifier)) , identifier) )) ))) ;) (return_statement "return (Output_data_got_base *)(this->x86_64_info).dynamic_linker;" return (cast_expression "(Output_data_got_base *)(this->x86_64_info).dynamic_linker" ( (type_descriptor "Output_data_got_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this->x86_64_info).dynamic_linker" (parenthesized_expression "(this->x86_64_info)" ( (field_expression "this->x86_64_info" identifier -> field_identifier) )) . field_identifier)) ;) })) comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0xd3a,"set_info_section");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0xd3a,"set_info_section");" (call_expression "do_gold_unreachable("../../gold/output.h",0xd3a,"set_info_section")" identifier (argument_list "("../../gold/output.h",0xd3a,"set_info_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info_section"" " string_content ") ))) ;)) })) 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 ") ))) ;)) }))
(translation_unit "int FUN_00070790(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined8 uVar8;\n  undefined **ppuVar9;\n  char *pcVar10;\n  \n  if (param_1[5] != 0) {\n                    \n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n  uVar4 = param_4 << 3;\n                    \n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  ppuVar9 = &PTR_FUN_00339948;\n  *puVar3 = &PTR_FUN_00339948;\n  puVar6 = puVar3 + 0xe;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x11] = puVar6;\n  puVar3[3] = uVar4;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\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  if (uVar4 >> 3 != 0) {\n                    \n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }\n                    \n  FUN_000a8120(puVar6,uVar4,0,0);\n  param_1[5] = (int)puVar3;\n  FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x30);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = param_5 * 8 + 0x18;\n  bVar1 = *(byte *)(puVar3 + 7);\n  puVar3[0xb] = param_3;\n  puVar3[8] = 0;\n  param_1[7] = (int)puVar3;\n  *(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;\n  *puVar3 = &PTR_FUN_00339344;\n  puVar3[9] = 8;\n  puVar3[10] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  pcVar10 = ".got.plt";\n  FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");\n  iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);\n  param_1[10] = iVar5;\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n                    \n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  puVar3[1] = 0;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  puVar3[2] = 0;\n  *puVar3 = ppuVar9;\n  puVar6 = puVar3 + 0xe;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x10] = 0;\n  puVar3[0x11] = puVar6;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n                    \n  FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);\n  param_1[9] = (int)puVar3;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);\n  puVar6 = (undefined4 *)FUN_001aa8c0(0x30);\n  bVar1 = *(byte *)(puVar6 + 7);\n  puVar6[8] = 0;\n  param_1[8] = (int)puVar6;\n  puVar6[9] = 8;\n  puVar6[10] = 0;\n  *(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;\n  *puVar6 = &PTR_FUN_00338cb8;\n  puVar6[0xb] = "** GOT IRELATIVE PLT";\n  puVar6[1] = 0;\n  puVar6[2] = 0;\n  puVar6[3] = 0;\n  puVar6[4] = 0;\n  puVar6[5] = 0xffffffff;\n  puVar6[6] = 0xffffffff;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);\n  piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);\n  iVar5 = DAT_0033f2f0;\n  param_1[6] = (int)piVar7;\n  if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }\n                    \n  FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);\n}\n\n" (function_definition "int FUN_00070790(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined8 uVar8;\n  undefined **ppuVar9;\n  char *pcVar10;\n  \n  if (param_1[5] != 0) {\n                    \n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n  uVar4 = param_4 << 3;\n                    \n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  ppuVar9 = &PTR_FUN_00339948;\n  *puVar3 = &PTR_FUN_00339948;\n  puVar6 = puVar3 + 0xe;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x11] = puVar6;\n  puVar3[3] = uVar4;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\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  if (uVar4 >> 3 != 0) {\n                    \n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }\n                    \n  FUN_000a8120(puVar6,uVar4,0,0);\n  param_1[5] = (int)puVar3;\n  FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x30);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = param_5 * 8 + 0x18;\n  bVar1 = *(byte *)(puVar3 + 7);\n  puVar3[0xb] = param_3;\n  puVar3[8] = 0;\n  param_1[7] = (int)puVar3;\n  *(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;\n  *puVar3 = &PTR_FUN_00339344;\n  puVar3[9] = 8;\n  puVar3[10] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  pcVar10 = ".got.plt";\n  FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");\n  iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);\n  param_1[10] = iVar5;\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n                    \n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  puVar3[1] = 0;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  puVar3[2] = 0;\n  *puVar3 = ppuVar9;\n  puVar6 = puVar3 + 0xe;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x10] = 0;\n  puVar3[0x11] = puVar6;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n                    \n  FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);\n  param_1[9] = (int)puVar3;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);\n  puVar6 = (undefined4 *)FUN_001aa8c0(0x30);\n  bVar1 = *(byte *)(puVar6 + 7);\n  puVar6[8] = 0;\n  param_1[8] = (int)puVar6;\n  puVar6[9] = 8;\n  puVar6[10] = 0;\n  *(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;\n  *puVar6 = &PTR_FUN_00338cb8;\n  puVar6[0xb] = "** GOT IRELATIVE PLT";\n  puVar6[1] = 0;\n  puVar6[2] = 0;\n  puVar6[3] = 0;\n  puVar6[4] = 0;\n  puVar6[5] = 0xffffffff;\n  puVar6[6] = 0xffffffff;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);\n  piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);\n  iVar5 = DAT_0033f2f0;\n  param_1[6] = (int)piVar7;\n  if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }\n                    \n  FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);\n}" primitive_type (function_declarator "FUN_00070790(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined8 uVar8;\n  undefined **ppuVar9;\n  char *pcVar10;\n  \n  if (param_1[5] != 0) {\n                    \n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n  uVar4 = param_4 << 3;\n                    \n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  ppuVar9 = &PTR_FUN_00339948;\n  *puVar3 = &PTR_FUN_00339948;\n  puVar6 = puVar3 + 0xe;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x11] = puVar6;\n  puVar3[3] = uVar4;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\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  if (uVar4 >> 3 != 0) {\n                    \n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }\n                    \n  FUN_000a8120(puVar6,uVar4,0,0);\n  param_1[5] = (int)puVar3;\n  FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x30);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = param_5 * 8 + 0x18;\n  bVar1 = *(byte *)(puVar3 + 7);\n  puVar3[0xb] = param_3;\n  puVar3[8] = 0;\n  param_1[7] = (int)puVar3;\n  *(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;\n  *puVar3 = &PTR_FUN_00339344;\n  puVar3[9] = 8;\n  puVar3[10] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  pcVar10 = ".got.plt";\n  FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");\n  iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);\n  param_1[10] = iVar5;\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n                    \n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  puVar3[1] = 0;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  puVar3[2] = 0;\n  *puVar3 = ppuVar9;\n  puVar6 = puVar3 + 0xe;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x10] = 0;\n  puVar3[0x11] = puVar6;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n                    \n  FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);\n  param_1[9] = (int)puVar3;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);\n  puVar6 = (undefined4 *)FUN_001aa8c0(0x30);\n  bVar1 = *(byte *)(puVar6 + 7);\n  puVar6[8] = 0;\n  param_1[8] = (int)puVar6;\n  puVar6[9] = 8;\n  puVar6[10] = 0;\n  *(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;\n  *puVar6 = &PTR_FUN_00338cb8;\n  puVar6[0xb] = "** GOT IRELATIVE PLT";\n  puVar6[1] = 0;\n  puVar6[2] = 0;\n  puVar6[3] = 0;\n  puVar6[4] = 0;\n  puVar6[5] = 0xffffffff;\n  puVar6[6] = 0xffffffff;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);\n  piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);\n  iVar5 = DAT_0033f2f0;\n  param_1[6] = (int)piVar7;\n  if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }\n                    \n  FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (if_statement "if (param_1[5] != 0) {\n                    \n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }" if (parenthesized_expression "(param_1[5] != 0)" ( (binary_expression "param_1[5] != 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }" { (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update")" identifier (argument_list "("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update")" ( (string_literal ""../../gold/x86_64.cc"" " string_content ") , number_literal , (string_literal ""init_got_plt_for_update"" " string_content ") ))) ;) })) (expression_statement "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c)" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0(0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x5c)" identifier (argument_list "(0x5c)" ( number_literal ))))) ;) (expression_statement "uVar4 = param_4 << 3;" (assignment_expression "uVar4 = param_4 << 3" identifier = (binary_expression "param_4 << 3" identifier << number_literal)) ;) (expression_statement "uVar8 = FUN_000e8010(0x40);" (assignment_expression "uVar8 = FUN_000e8010(0x40)" identifier = (call_expression "FUN_000e8010(0x40)" identifier (argument_list "(0x40)" ( number_literal )))) ;) (expression_statement "puVar3[9] = (int)uVar8;" (assignment_expression "puVar3[9] = (int)uVar8" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) 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[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20)" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)((ulonglong)uVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar8 >> 0x20)" ( (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2" (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 | 2" (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) | number_literal)) ;) (expression_statement "ppuVar9 = &PTR_FUN_00339948;" (assignment_expression "ppuVar9 = &PTR_FUN_00339948" identifier = (pointer_expression "&PTR_FUN_00339948" & identifier)) ;) (expression_statement "*puVar3 = &PTR_FUN_00339948;" (assignment_expression "*puVar3 = &PTR_FUN_00339948" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_00339948" & identifier)) ;) (expression_statement "puVar6 = puVar3 + 0xe;" (assignment_expression "puVar6 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) (expression_statement "puVar3[0xf] = puVar6;" (assignment_expression "puVar3[0xf] = puVar6" (subscript_expression "puVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xe] = puVar6;" (assignment_expression "puVar3[0xe] = puVar6" (subscript_expression "puVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0x11] = puVar6;" (assignment_expression "puVar3[0x11] = puVar6" (subscript_expression "puVar3[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[3] = uVar4;" (assignment_expression "puVar3[3] = uVar4" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (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 "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) ;) (if_statement "if (uVar4 >> 3 != 0) {\n                    \n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }" if (parenthesized_expression "(uVar4 >> 3 != 0)" ( (binary_expression "uVar4 >> 3 != 0" (binary_expression "uVar4 >> 3" identifier >> number_literal) != number_literal) )) (compound_statement "{\n                    \n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }" { (expression_statement "FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);" (call_expression "FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3)" identifier (argument_list "(puVar3 + 0xb,uVar4 >> 3)" ( (binary_expression "puVar3 + 0xb" identifier + number_literal) , (binary_expression "uVar4 >> 3" identifier >> number_literal) ))) ;) })) (expression_statement "FUN_000a8120(puVar6,uVar4,0,0);" (call_expression "FUN_000a8120(puVar6,uVar4,0,0)" identifier (argument_list "(puVar6,uVar4,0,0)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "param_1[5] = (int)puVar3;" (assignment_expression "param_1[5] = (int)puVar3" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);" (call_expression "FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1)" identifier (argument_list "(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1)" ( identifier , (pointer_expression "&DAT_0024b406" & identifier) , number_literal , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "puVar3 = (undefined4 *)FUN_001aa8c0(0x30);" (assignment_expression "puVar3 = (undefined4 *)FUN_001aa8c0(0x30)" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (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] = param_5 * 8 + 0x18;" (assignment_expression "puVar3[3] = param_5 * 8 + 0x18" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = (binary_expression "param_5 * 8 + 0x18" (binary_expression "param_5 * 8" identifier * number_literal) + number_literal)) ;) (expression_statement "bVar1 = *(byte *)(puVar3 + 7);" (assignment_expression "bVar1 = *(byte *)(puVar3 + 7)" identifier = (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) ))))) ;) (expression_statement "puVar3[0xb] = param_3;" (assignment_expression "puVar3[0xb] = param_3" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[7] = (int)puVar3;" (assignment_expression "param_1[7] = (int)puVar3" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2" (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 "bVar1 & 0xe0 | 2" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*puVar3 = &PTR_FUN_00339344;" (assignment_expression "*puVar3 = &PTR_FUN_00339344" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_00339344" & identifier)) ;) (expression_statement "puVar3[9] = 8;" (assignment_expression "puVar3[9] = 8" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" 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 "pcVar10 = ".got.plt";" (assignment_expression "pcVar10 = ".got.plt"" identifier = (string_literal "".got.plt"" " string_content ")) ;) (expression_statement "FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");" (call_expression "FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt")" identifier (argument_list "(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt")" ( identifier , (string_literal "".got.plt"" " string_content ") , number_literal , number_literal , number_literal , identifier , number_literal , number_literal , identifier , identifier , (string_literal "".got.plt"" " string_content ") ))) ;) (expression_statement "iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);" (assignment_expression "iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0)" identifier = (call_expression "FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0)" identifier (argument_list "(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0)" ( identifier , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") , number_literal , number_literal , (subscript_expression "param_1[7]" identifier [ number_literal ]) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "param_1[10] = iVar5;" (assignment_expression "param_1[10] = iVar5" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c)" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0(0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x5c)" identifier (argument_list "(0x5c)" ( number_literal ))))) ;) (expression_statement "uVar8 = FUN_000e8010(0x40);" (assignment_expression "uVar8 = FUN_000e8010(0x40)" identifier = (call_expression "FUN_000e8010(0x40)" identifier (argument_list "(0x40)" ( number_literal )))) ;) (expression_statement "puVar3[9] = (int)uVar8;" (assignment_expression "puVar3[9] = (int)uVar8" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20)" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = (cast_expression "(int)((ulonglong)uVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar8 >> 0x20)" ( (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2" (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 | 2" (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) | number_literal)) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar3 = ppuVar9;" (assignment_expression "*puVar3 = ppuVar9" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar6 = puVar3 + 0xe;" (assignment_expression "puVar6 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + 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 "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[0xf] = puVar6;" (assignment_expression "puVar3[0xf] = puVar6" (subscript_expression "puVar3[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xe] = puVar6;" (assignment_expression "puVar3[0xe] = puVar6" (subscript_expression "puVar3[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0x10] = 0;" (assignment_expression "puVar3[0x10] = 0" (subscript_expression "puVar3[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0x11] = puVar6;" (assignment_expression "puVar3[0x11] = puVar6" (subscript_expression "puVar3[0x11]" identifier [ number_literal ]) = identifier) ;) (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_000a8120(puVar6,0,0,0,ppuVar9,puVar6);" (call_expression "FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6)" identifier (argument_list "(puVar6,0,0,0,ppuVar9,puVar6)" ( identifier , number_literal , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "param_1[9] = (int)puVar3;" (assignment_expression "param_1[9] = (int)puVar3" (subscript_expression "param_1[9]" identifier [ number_literal ]) = (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);" (call_expression "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0)" identifier (argument_list "(param_3,pcVar10,1,3,0,puVar3,0x15,0)" ( identifier , identifier , number_literal , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "puVar6 = (undefined4 *)FUN_001aa8c0(0x30);" (assignment_expression "puVar6 = (undefined4 *)FUN_001aa8c0(0x30)" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "bVar1 = *(byte *)(puVar6 + 7);" (assignment_expression "bVar1 = *(byte *)(puVar6 + 7)" identifier = (pointer_expression "*(byte *)(puVar6 + 7)" * (cast_expression "(byte *)(puVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) ))))) ;) (expression_statement "puVar6[8] = 0;" (assignment_expression "puVar6[8] = 0" (subscript_expression "puVar6[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[8] = (int)puVar6;" (assignment_expression "param_1[8] = (int)puVar6" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar6[9] = 8;" (assignment_expression "puVar6[9] = 8" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[10] = 0;" (assignment_expression "puVar6[10] = 0" (subscript_expression "puVar6[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2" (pointer_expression "*(byte *)(puVar6 + 7)" * (cast_expression "(byte *)(puVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xe0 | 2" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*puVar6 = &PTR_FUN_00338cb8;" (assignment_expression "*puVar6 = &PTR_FUN_00338cb8" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_00338cb8" & identifier)) ;) (expression_statement "puVar6[0xb] = "** GOT IRELATIVE PLT";" (assignment_expression "puVar6[0xb] = "** GOT IRELATIVE PLT"" (subscript_expression "puVar6[0xb]" identifier [ number_literal ]) = (string_literal ""** GOT IRELATIVE PLT"" " string_content ")) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[2] = 0;" (assignment_expression "puVar6[2] = 0" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[4] = 0;" (assignment_expression "puVar6[4] = 0" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[5] = 0xffffffff;" (assignment_expression "puVar6[5] = 0xffffffff" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[6] = 0xffffffff;" (assignment_expression "puVar6[6] = 0xffffffff" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);" (call_expression "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0)" identifier (argument_list "(param_3,pcVar10,1,3,0,puVar6,0x15,0)" ( identifier , identifier , number_literal , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);" (assignment_expression "piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" identifier = (cast_expression "(int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" (parenthesized_expression "(**(code **)(*param_1 + 0x104))" ( (pointer_expression "**(code **)(*param_1 + 0x104)" * (pointer_expression "*(code **)(*param_1 + 0x104)" * (cast_expression "(code **)(*param_1 + 0x104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x104)" ( (binary_expression "*param_1 + 0x104" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" ( identifier , identifier , (subscript_expression "param_1[5]" identifier [ number_literal ]) , (subscript_expression "param_1[7]" identifier [ number_literal ]) , (subscript_expression "param_1[8]" identifier [ number_literal ]) , identifier ))))) ;) (expression_statement "iVar5 = DAT_0033f2f0;" (assignment_expression "iVar5 = DAT_0033f2f0" identifier = identifier) ;) (expression_statement "param_1[6] = (int)piVar7;" (assignment_expression "param_1[6] = (int)piVar7" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 8) != 0)" ( (binary_expression "*(int *)(iVar5 + 8) != 0" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }" { (if_statement "if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }" if (parenthesized_expression "(*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0')" ( (binary_expression "*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0'" (pointer_expression "*(char *)(*(int *)(iVar5 + 8) + 0x2105)" * (cast_expression "(char *)(*(int *)(iVar5 + 8) + 0x2105)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x2105)" ( (binary_expression "*(int *)(iVar5 + 8) + 0x2105" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }" { (expression_statement "(**(code **)(*piVar7 + 0x7c))(piVar7,param_3);" (call_expression "(**(code **)(*piVar7 + 0x7c))(piVar7,param_3)" (parenthesized_expression "(**(code **)(*piVar7 + 0x7c))" ( (pointer_expression "**(code **)(*piVar7 + 0x7c)" * (pointer_expression "*(code **)(*piVar7 + 0x7c)" * (cast_expression "(code **)(*piVar7 + 0x7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x7c)" ( (binary_expression "*piVar7 + 0x7c" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) )) (argument_list "(piVar7,param_3)" ( identifier , identifier ))) ;) (expression_statement "piVar7 = (int *)param_1[6];" (assignment_expression "piVar7 = (int *)param_1[6]" identifier = (cast_expression "(int *)param_1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) })) (expression_statement "FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);" (call_expression "FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0)" identifier (argument_list "(param_3,".plt",1,6,0,piVar7,7,0)" ( identifier , (string_literal "".plt"" " string_content ") , number_literal , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "iVar5 = *(int *)(param_1[6] + 0x20);" (assignment_expression "iVar5 = *(int *)(param_1[6] + 0x20)" identifier = (pointer_expression "*(int *)(param_1[6] + 0x20)" * (cast_expression "(int *)(param_1[6] + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + 0x20)" ( (binary_expression "param_1[6] + 0x20" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);" (assignment_expression "iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20)" identifier = (pointer_expression "*(int *)(*(int *)(param_1[6] + 0x2c) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1[6] + 0x2c) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1[6] + 0x2c) + 0x20)" ( (binary_expression "*(int *)(param_1[6] + 0x2c) + 0x20" (pointer_expression "*(int *)(param_1[6] + 0x2c)" * (cast_expression "(int *)(param_1[6] + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[6] + 0x2c)" ( (binary_expression "param_1[6] + 0x2c" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }" if (parenthesized_expression "((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0))" ( (binary_expression "(((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)" (parenthesized_expression "(((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0))" ( (binary_expression "((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)" (parenthesized_expression "((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0))))" ( (binary_expression "(*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))" (parenthesized_expression "(*(int *)(iVar2 + 0x44) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x44) == 0" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))" ( (parenthesized_expression "(iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0))" ( (binary_expression "iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)" (binary_expression "iVar5 == *(int *)(iVar2 + 0x44)" identifier == (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) && (parenthesized_expression "((*(byte *)(iVar2 + 0x91) & 1) != 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x91) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x91) & 1)" ( (binary_expression "*(byte *)(iVar2 + 0x91) & 1" (pointer_expression "*(byte *)(iVar2 + 0x91)" * (cast_expression "(byte *)(iVar2 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x91)" ( (binary_expression "iVar2 + 0x91" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) && (parenthesized_expression "(*(int *)(iVar2 + 0x48) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x48) == 0" (pointer_expression "*(int *)(iVar2 + 0x48)" * (cast_expression "(int *)(iVar2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(int *)(iVar2 + 0x4c) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x4c) == 0" (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }" { (expression_statement "*(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;" (assignment_expression "*(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1" (pointer_expression "*(byte *)(iVar2 + 0x91)" * (cast_expression "(byte *)(iVar2 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x91)" ( (binary_expression "iVar2 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar2 + 0x91) | 1" (pointer_expression "*(byte *)(iVar2 + 0x91)" * (cast_expression "(byte *)(iVar2 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x91)" ( (binary_expression "iVar2 + 0x91" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(int *)(iVar2 + 0x44) = iVar5;" (assignment_expression "*(int *)(iVar2 + 0x44) = iVar5" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0005e690();" (call_expression "FUN_0005e690()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_1[5];" return (subscript_expression "param_1[5]" identifier [ number_literal ]) ;) })) (expression_statement "FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");" (call_expression "FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section")" identifier (argument_list "("../../gold/output.h",0xd3a,"set_info_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info_section"" " string_content ") ))) ;) })) (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",piVar7)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & 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 ]) = 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 (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT >> LIT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , LIT , LIT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 , LIT , LIT , IDENT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , (subscript_expression IDENT [ LIT ]) , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression (subscript_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 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 (subscript_expression IDENT [ LIT ]) = 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (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 ]) = 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 ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (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 , LIT , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT , IDENT , 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (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 , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , LIT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (subscript_expression IDENT [ LIT ]) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "int FUN_00070790(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined8 uVar8;\n  undefined **ppuVar9;\n  char *pcVar10;\n  \n  if (param_1[5] != 0) {\n                    \n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n  uVar4 = param_4 << 3;\n                    \n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  ppuVar9 = &PTR_FUN_00339948;\n  *puVar3 = &PTR_FUN_00339948;\n  puVar6 = puVar3 + 0xe;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x11] = puVar6;\n  puVar3[3] = uVar4;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\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  if (uVar4 >> 3 != 0) {\n                    \n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }\n                    \n  FUN_000a8120(puVar6,uVar4,0,0);\n  param_1[5] = (int)puVar3;\n  FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x30);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = param_5 * 8 + 0x18;\n  bVar1 = *(byte *)(puVar3 + 7);\n  puVar3[0xb] = param_3;\n  puVar3[8] = 0;\n  param_1[7] = (int)puVar3;\n  *(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;\n  *puVar3 = &PTR_FUN_00339344;\n  puVar3[9] = 8;\n  puVar3[10] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  pcVar10 = ".got.plt";\n  FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");\n  iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);\n  param_1[10] = iVar5;\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n                    \n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  puVar3[1] = 0;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  puVar3[2] = 0;\n  *puVar3 = ppuVar9;\n  puVar6 = puVar3 + 0xe;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x10] = 0;\n  puVar3[0x11] = puVar6;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n                    \n  FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);\n  param_1[9] = (int)puVar3;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);\n  puVar6 = (undefined4 *)FUN_001aa8c0(0x30);\n  bVar1 = *(byte *)(puVar6 + 7);\n  puVar6[8] = 0;\n  param_1[8] = (int)puVar6;\n  puVar6[9] = 8;\n  puVar6[10] = 0;\n  *(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;\n  *puVar6 = &PTR_FUN_00338cb8;\n  puVar6[0xb] = "** GOT IRELATIVE PLT";\n  puVar6[1] = 0;\n  puVar6[2] = 0;\n  puVar6[3] = 0;\n  puVar6[4] = 0;\n  puVar6[5] = 0xffffffff;\n  puVar6[6] = 0xffffffff;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);\n  piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);\n  iVar5 = DAT_0033f2f0;\n  param_1[6] = (int)piVar7;\n  if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }\n                    \n  FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);\n}" (primitive_type "int") (function_declarator "FUN_00070790(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)" (identifier "FUN_00070790") (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined8 uVar8;\n  undefined **ppuVar9;\n  char *pcVar10;\n  \n  if (param_1[5] != 0) {\n                    \n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n  uVar4 = param_4 << 3;\n                    \n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  ppuVar9 = &PTR_FUN_00339948;\n  *puVar3 = &PTR_FUN_00339948;\n  puVar6 = puVar3 + 0xe;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x11] = puVar6;\n  puVar3[3] = uVar4;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\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  if (uVar4 >> 3 != 0) {\n                    \n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }\n                    \n  FUN_000a8120(puVar6,uVar4,0,0);\n  param_1[5] = (int)puVar3;\n  FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x30);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[3] = param_5 * 8 + 0x18;\n  bVar1 = *(byte *)(puVar3 + 7);\n  puVar3[0xb] = param_3;\n  puVar3[8] = 0;\n  param_1[7] = (int)puVar3;\n  *(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;\n  *puVar3 = &PTR_FUN_00339344;\n  puVar3[9] = 8;\n  puVar3[10] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  pcVar10 = ".got.plt";\n  FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");\n  iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);\n  param_1[10] = iVar5;\n  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);\n                    \n  uVar8 = FUN_000e8010(0x40);\n  puVar3[9] = (int)uVar8;\n  puVar3[8] = 0;\n  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);\n  puVar3[1] = 0;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;\n  puVar3[2] = 0;\n  *puVar3 = ppuVar9;\n  puVar6 = puVar3 + 0xe;\n  puVar3[3] = 0;\n  puVar3[4] = 0;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xb] = 0;\n  puVar3[0xc] = 0;\n  puVar3[0xd] = 0;\n  puVar3[0xf] = puVar6;\n  puVar3[0xe] = puVar6;\n  puVar3[0x10] = 0;\n  puVar3[0x11] = puVar6;\n  *(undefined1 *)(puVar3 + 0x12) = 0;\n  puVar3[0x13] = 0;\n  puVar3[0x14] = 0;\n  puVar3[0x15] = 0;\n  puVar3[0x16] = 0;\n                    \n  FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);\n  param_1[9] = (int)puVar3;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);\n  puVar6 = (undefined4 *)FUN_001aa8c0(0x30);\n  bVar1 = *(byte *)(puVar6 + 7);\n  puVar6[8] = 0;\n  param_1[8] = (int)puVar6;\n  puVar6[9] = 8;\n  puVar6[10] = 0;\n  *(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;\n  *puVar6 = &PTR_FUN_00338cb8;\n  puVar6[0xb] = "** GOT IRELATIVE PLT";\n  puVar6[1] = 0;\n  puVar6[2] = 0;\n  puVar6[3] = 0;\n  puVar6[4] = 0;\n  puVar6[5] = 0xffffffff;\n  puVar6[6] = 0xffffffff;\n  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);\n  piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);\n  iVar5 = DAT_0033f2f0;\n  param_1[6] = (int)piVar7;\n  if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }\n                    \n  FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "undefined **ppuVar9;" (type_identifier "undefined") (pointer_declarator "**ppuVar9" (* "*") (pointer_declarator "*ppuVar9" (* "*") (identifier "ppuVar9"))) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (if_statement "if (param_1[5] != 0) {\n                    \n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }" (if "if") (parenthesized_expression "(param_1[5] != 0)" (( "(") (binary_expression "param_1[5] != 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");\n  }" ({ "{") (expression_statement "FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");" (call_expression "FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update")" (identifier "FUN_0008b620") (argument_list "("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update")" (( "(") (string_literal ""../../gold/x86_64.cc"" (" """) (string_content "../../gold/x86_64.cc") (" """)) (, ",") (number_literal "0xbc5") (, ",") (string_literal ""init_got_plt_for_update"" (" """) (string_content "init_got_plt_for_update") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_001aa8c0(0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0(0x5c)" (identifier "FUN_001aa8c0") (argument_list "(0x5c)" (( "(") (number_literal "0x5c") () ")"))))) (; ";")) (expression_statement "uVar4 = param_4 << 3;" (assignment_expression "uVar4 = param_4 << 3" (identifier "uVar4") (= "=") (binary_expression "param_4 << 3" (identifier "param_4") (<< "<<") (number_literal "3"))) (; ";")) (expression_statement "uVar8 = FUN_000e8010(0x40);" (assignment_expression "uVar8 = FUN_000e8010(0x40)" (identifier "uVar8") (= "=") (call_expression "FUN_000e8010(0x40)" (identifier "FUN_000e8010") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "puVar3[9] = (int)uVar8;" (assignment_expression "puVar3[9] = (int)uVar8" (subscript_expression "puVar3[9]" (identifier "puVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) (; ";")) (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[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20)" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(int)((ulonglong)uVar8 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2" (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 | 2" (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")) (| "|") (number_literal "2"))) (; ";")) (expression_statement "ppuVar9 = &PTR_FUN_00339948;" (assignment_expression "ppuVar9 = &PTR_FUN_00339948" (identifier "ppuVar9") (= "=") (pointer_expression "&PTR_FUN_00339948" (& "&") (identifier "PTR_FUN_00339948"))) (; ";")) (expression_statement "*puVar3 = &PTR_FUN_00339948;" (assignment_expression "*puVar3 = &PTR_FUN_00339948" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "&PTR_FUN_00339948" (& "&") (identifier "PTR_FUN_00339948"))) (; ";")) (expression_statement "puVar6 = puVar3 + 0xe;" (assignment_expression "puVar6 = puVar3 + 0xe" (identifier "puVar6") (= "=") (binary_expression "puVar3 + 0xe" (identifier "puVar3") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "puVar3[0xf] = puVar6;" (assignment_expression "puVar3[0xf] = puVar6" (subscript_expression "puVar3[0xf]" (identifier "puVar3") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar3[0xe] = puVar6;" (assignment_expression "puVar3[0xe] = puVar6" (subscript_expression "puVar3[0xe]" (identifier "puVar3") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar3[0x11] = puVar6;" (assignment_expression "puVar3[0x11] = puVar6" (subscript_expression "puVar3[0x11]" (identifier "puVar3") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar3[3] = uVar4;" (assignment_expression "puVar3[3] = uVar4" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (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 "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")) (; ";")) (if_statement "if (uVar4 >> 3 != 0) {\n                    \n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }" (if "if") (parenthesized_expression "(uVar4 >> 3 != 0)" (( "(") (binary_expression "uVar4 >> 3 != 0" (binary_expression "uVar4 >> 3" (identifier "uVar4") (>> ">>") (number_literal "3")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);\n  }" ({ "{") (expression_statement "FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);" (call_expression "FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3)" (identifier "FUN_00077cd0") (argument_list "(puVar3 + 0xb,uVar4 >> 3)" (( "(") (binary_expression "puVar3 + 0xb" (identifier "puVar3") (+ "+") (number_literal "0xb")) (, ",") (binary_expression "uVar4 >> 3" (identifier "uVar4") (>> ">>") (number_literal "3")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000a8120(puVar6,uVar4,0,0);" (call_expression "FUN_000a8120(puVar6,uVar4,0,0)" (identifier "FUN_000a8120") (argument_list "(puVar6,uVar4,0,0)" (( "(") (identifier "puVar6") (, ",") (identifier "uVar4") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "param_1[5] = (int)puVar3;" (assignment_expression "param_1[5] = (int)puVar3" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3"))) (; ";")) (expression_statement "FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);" (call_expression "FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1)" (identifier "FUN_000b25f0") (argument_list "(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1)" (( "(") (identifier "param_3") (, ",") (pointer_expression "&DAT_0024b406" (& "&") (identifier "DAT_0024b406")) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "puVar3") (, ",") (number_literal "0x14") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)FUN_001aa8c0(0x30);" (assignment_expression "puVar3 = (undefined4 *)FUN_001aa8c0(0x30)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_001aa8c0(0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0(0x30)" (identifier "FUN_001aa8c0") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (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] = param_5 * 8 + 0x18;" (assignment_expression "puVar3[3] = param_5 * 8 + 0x18" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "param_5 * 8 + 0x18" (binary_expression "param_5 * 8" (identifier "param_5") (* "*") (number_literal "8")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "bVar1 = *(byte *)(puVar3 + 7);" (assignment_expression "bVar1 = *(byte *)(puVar3 + 7)" (identifier "bVar1") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "puVar3[0xb] = param_3;" (assignment_expression "puVar3[0xb] = param_3" (subscript_expression "puVar3[0xb]" (identifier "puVar3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[7] = (int)puVar3;" (assignment_expression "param_1[7] = (int)puVar3" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3"))) (; ";")) (expression_statement "*(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2" (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 "bVar1 & 0xe0 | 2" (binary_expression "bVar1 & 0xe0" (identifier "bVar1") (& "&") (number_literal "0xe0")) (| "|") (number_literal "2"))) (; ";")) (expression_statement "*puVar3 = &PTR_FUN_00339344;" (assignment_expression "*puVar3 = &PTR_FUN_00339344" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "&PTR_FUN_00339344" (& "&") (identifier "PTR_FUN_00339344"))) (; ";")) (expression_statement "puVar3[9] = 8;" (assignment_expression "puVar3[9] = 8" (subscript_expression "puVar3[9]" (identifier "puVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (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 "pcVar10 = ".got.plt";" (assignment_expression "pcVar10 = ".got.plt"" (identifier "pcVar10") (= "=") (string_literal "".got.plt"" (" """) (string_content ".got.plt") (" """))) (; ";")) (expression_statement "FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");" (call_expression "FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt")" (identifier "FUN_000b25f0") (argument_list "(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt")" (( "(") (identifier "param_3") (, ",") (string_literal "".got.plt"" (" """) (string_content ".got.plt") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "puVar3") (, ",") (number_literal "0x15") (, ",") (number_literal "0") (, ",") (identifier "ppuVar9") (, ",") (identifier "puVar6") (, ",") (string_literal "".got.plt"" (" """) (string_content ".got.plt") (" """)) () ")"))) (; ";")) (expression_statement "iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);" (assignment_expression "iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0)" (identifier "iVar5") (= "=") (call_expression "FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0)" (identifier "FUN_00151380") (argument_list "(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],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") (, ",") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (, ",") (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 "param_1[10] = iVar5;" (assignment_expression "param_1[10] = iVar5" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);" (assignment_expression "puVar3 = (undefined4 *)FUN_001aa8c0(0x5c)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_001aa8c0(0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0(0x5c)" (identifier "FUN_001aa8c0") (argument_list "(0x5c)" (( "(") (number_literal "0x5c") () ")"))))) (; ";")) (expression_statement "uVar8 = FUN_000e8010(0x40);" (assignment_expression "uVar8 = FUN_000e8010(0x40)" (identifier "uVar8") (= "=") (call_expression "FUN_000e8010(0x40)" (identifier "FUN_000e8010") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "puVar3[9] = (int)uVar8;" (assignment_expression "puVar3[9] = (int)uVar8" (subscript_expression "puVar3[9]" (identifier "puVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) (; ";")) (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[10] = (int)((ulonglong)uVar8 >> 0x20);" (assignment_expression "puVar3[10] = (int)((ulonglong)uVar8 >> 0x20)" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(int)((ulonglong)uVar8 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar8 >> 0x20" (cast_expression "(ulonglong)uVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2" (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 | 2" (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")) (| "|") (number_literal "2"))) (; ";")) (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 = ppuVar9;" (assignment_expression "*puVar3 = ppuVar9" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "ppuVar9")) (; ";")) (expression_statement "puVar6 = puVar3 + 0xe;" (assignment_expression "puVar6 = puVar3 + 0xe" (identifier "puVar6") (= "=") (binary_expression "puVar3 + 0xe" (identifier "puVar3") (+ "+") (number_literal "0xe"))) (; ";")) (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 "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[0xf] = puVar6;" (assignment_expression "puVar3[0xf] = puVar6" (subscript_expression "puVar3[0xf]" (identifier "puVar3") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar3[0xe] = puVar6;" (assignment_expression "puVar3[0xe] = puVar6" (subscript_expression "puVar3[0xe]" (identifier "puVar3") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar3[0x10] = 0;" (assignment_expression "puVar3[0x10] = 0" (subscript_expression "puVar3[0x10]" (identifier "puVar3") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0x11] = puVar6;" (assignment_expression "puVar3[0x11] = puVar6" (subscript_expression "puVar3[0x11]" (identifier "puVar3") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (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_000a8120(puVar6,0,0,0,ppuVar9,puVar6);" (call_expression "FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6)" (identifier "FUN_000a8120") (argument_list "(puVar6,0,0,0,ppuVar9,puVar6)" (( "(") (identifier "puVar6") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "ppuVar9") (, ",") (identifier "puVar6") () ")"))) (; ";")) (expression_statement "param_1[9] = (int)puVar3;" (assignment_expression "param_1[9] = (int)puVar3" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3"))) (; ";")) (expression_statement "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);" (call_expression "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0)" (identifier "FUN_000b25f0") (argument_list "(param_3,pcVar10,1,3,0,puVar3,0x15,0)" (( "(") (identifier "param_3") (, ",") (identifier "pcVar10") (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "puVar3") (, ",") (number_literal "0x15") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_001aa8c0(0x30);" (assignment_expression "puVar6 = (undefined4 *)FUN_001aa8c0(0x30)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_001aa8c0(0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0(0x30)" (identifier "FUN_001aa8c0") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "bVar1 = *(byte *)(puVar6 + 7);" (assignment_expression "bVar1 = *(byte *)(puVar6 + 7)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(puVar6 + 7)" (* "*") (cast_expression "(byte *)(puVar6 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 7)" (( "(") (binary_expression "puVar6 + 7" (identifier "puVar6") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "puVar6[8] = 0;" (assignment_expression "puVar6[8] = 0" (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[8] = (int)puVar6;" (assignment_expression "param_1[8] = (int)puVar6" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) (; ";")) (expression_statement "puVar6[9] = 8;" (assignment_expression "puVar6[9] = 8" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "puVar6[10] = 0;" (assignment_expression "puVar6[10] = 0" (subscript_expression "puVar6[10]" (identifier "puVar6") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;" (assignment_expression "*(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2" (pointer_expression "*(byte *)(puVar6 + 7)" (* "*") (cast_expression "(byte *)(puVar6 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 7)" (( "(") (binary_expression "puVar6 + 7" (identifier "puVar6") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar1 & 0xe0 | 2" (binary_expression "bVar1 & 0xe0" (identifier "bVar1") (& "&") (number_literal "0xe0")) (| "|") (number_literal "2"))) (; ";")) (expression_statement "*puVar6 = &PTR_FUN_00338cb8;" (assignment_expression "*puVar6 = &PTR_FUN_00338cb8" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "&PTR_FUN_00338cb8" (& "&") (identifier "PTR_FUN_00338cb8"))) (; ";")) (expression_statement "puVar6[0xb] = "** GOT IRELATIVE PLT";" (assignment_expression "puVar6[0xb] = "** GOT IRELATIVE PLT"" (subscript_expression "puVar6[0xb]" (identifier "puVar6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (string_literal ""** GOT IRELATIVE PLT"" (" """) (string_content "** GOT IRELATIVE PLT") (" """))) (; ";")) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[2] = 0;" (assignment_expression "puVar6[2] = 0" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[3] = 0;" (assignment_expression "puVar6[3] = 0" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[4] = 0;" (assignment_expression "puVar6[4] = 0" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[5] = 0xffffffff;" (assignment_expression "puVar6[5] = 0xffffffff" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar6[6] = 0xffffffff;" (assignment_expression "puVar6[6] = 0xffffffff" (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);" (call_expression "FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0)" (identifier "FUN_000b25f0") (argument_list "(param_3,pcVar10,1,3,0,puVar6,0x15,0)" (( "(") (identifier "param_3") (, ",") (identifier "pcVar10") (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "puVar6") (, ",") (number_literal "0x15") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);" (assignment_expression "piVar7 = (int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" (identifier "piVar7") (= "=") (cast_expression "(int *)(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*param_1 + 0x104))\n                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" (parenthesized_expression "(**(code **)(*param_1 + 0x104))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x104)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x104)" (* "*") (cast_expression "(code **)(*param_1 + 0x104)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x104)" (( "(") (binary_expression "*param_1 + 0x104" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x104")) () ")"))))) () ")")) (argument_list "(param_1,param_3,param_1[5],param_1[7],param_1[8],param_5)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (, ",") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (, ",") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (, ",") (identifier "param_5") () ")"))))) (; ";")) (expression_statement "iVar5 = DAT_0033f2f0;" (assignment_expression "iVar5 = DAT_0033f2f0" (identifier "iVar5") (= "=") (identifier "DAT_0033f2f0")) (; ";")) (expression_statement "param_1[6] = (int)piVar7;" (assignment_expression "param_1[6] = (int)piVar7" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7"))) (; ";")) (if_statement "if (*(int *)(iVar5 + 8) != 0) {\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 8) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 8) != 0" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }\n    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);\n    iVar5 = *(int *)(param_1[6] + 0x20);\n    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);\n    if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }\n                    \n    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");\n  }" ({ "{") (if_statement "if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0'" (pointer_expression "*(char *)(*(int *)(iVar5 + 8) + 0x2105)" (* "*") (cast_expression "(char *)(*(int *)(iVar5 + 8) + 0x2105)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 8) + 0x2105)" (( "(") (binary_expression "*(int *)(iVar5 + 8) + 0x2105" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2105")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);\n      piVar7 = (int *)param_1[6];\n    }" ({ "{") (expression_statement "(**(code **)(*piVar7 + 0x7c))(piVar7,param_3);" (call_expression "(**(code **)(*piVar7 + 0x7c))(piVar7,param_3)" (parenthesized_expression "(**(code **)(*piVar7 + 0x7c))" (( "(") (pointer_expression "**(code **)(*piVar7 + 0x7c)" (* "*") (pointer_expression "*(code **)(*piVar7 + 0x7c)" (* "*") (cast_expression "(code **)(*piVar7 + 0x7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar7 + 0x7c)" (( "(") (binary_expression "*piVar7 + 0x7c" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "0x7c")) () ")"))))) () ")")) (argument_list "(piVar7,param_3)" (( "(") (identifier "piVar7") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "piVar7 = (int *)param_1[6];" (assignment_expression "piVar7 = (int *)param_1[6]" (identifier "piVar7") (= "=") (cast_expression "(int *)param_1[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}"))) (expression_statement "FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);" (call_expression "FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0)" (identifier "FUN_000b25f0") (argument_list "(param_3,".plt",1,6,0,piVar7,7,0)" (( "(") (identifier "param_3") (, ",") (string_literal "".plt"" (" """) (string_content ".plt") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") (, ",") (number_literal "0") (, ",") (identifier "piVar7") (, ",") (number_literal "7") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(param_1[6] + 0x20);" (assignment_expression "iVar5 = *(int *)(param_1[6] + 0x20)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1[6] + 0x20)" (* "*") (cast_expression "(int *)(param_1[6] + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[6] + 0x20)" (( "(") (binary_expression "param_1[6] + 0x20" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);" (assignment_expression "iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)(param_1[6] + 0x2c) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1[6] + 0x2c) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1[6] + 0x2c) + 0x20)" (( "(") (binary_expression "*(int *)(param_1[6] + 0x2c) + 0x20" (pointer_expression "*(int *)(param_1[6] + 0x2c)" (* "*") (cast_expression "(int *)(param_1[6] + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[6] + 0x2c)" (( "(") (binary_expression "param_1[6] + 0x2c" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if ((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }" (if "if") (parenthesized_expression "((((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0))" (( "(") (binary_expression "(((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)" (parenthesized_expression "(((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0))" (( "(") (binary_expression "((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&\n        (*(int *)(iVar2 + 0x48) == 0)" (parenthesized_expression "((*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0))))" (( "(") (binary_expression "(*(int *)(iVar2 + 0x44) == 0) ||\n         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))" (parenthesized_expression "(*(int *)(iVar2 + 0x44) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x44) == 0" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))" (( "(") (parenthesized_expression "(iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0))" (( "(") (binary_expression "iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)" (binary_expression "iVar5 == *(int *)(iVar2 + 0x44)" (identifier "iVar5") (== "==") (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")"))))) (&& "&&") (parenthesized_expression "((*(byte *)(iVar2 + 0x91) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x91) & 1) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x91) & 1)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x91) & 1" (pointer_expression "*(byte *)(iVar2 + 0x91)" (* "*") (cast_expression "(byte *)(iVar2 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x91)" (( "(") (binary_expression "iVar2 + 0x91" (identifier "iVar2") (+ "+") (number_literal "0x91")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar2 + 0x48) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x48) == 0" (pointer_expression "*(int *)(iVar2 + 0x48)" (* "*") (cast_expression "(int *)(iVar2 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x48)" (( "(") (binary_expression "iVar2 + 0x48" (identifier "iVar2") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar2 + 0x4c) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x4c) == 0" (pointer_expression "*(int *)(iVar2 + 0x4c)" (* "*") (cast_expression "(int *)(iVar2 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x4c)" (( "(") (binary_expression "iVar2 + 0x4c" (identifier "iVar2") (+ "+") (number_literal "0x4c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;\n      *(int *)(iVar2 + 0x44) = iVar5;\n      FUN_0005e690();\n      return param_1[5];\n    }" ({ "{") (expression_statement "*(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;" (assignment_expression "*(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1" (pointer_expression "*(byte *)(iVar2 + 0x91)" (* "*") (cast_expression "(byte *)(iVar2 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x91)" (( "(") (binary_expression "iVar2 + 0x91" (identifier "iVar2") (+ "+") (number_literal "0x91")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar2 + 0x91) | 1" (pointer_expression "*(byte *)(iVar2 + 0x91)" (* "*") (cast_expression "(byte *)(iVar2 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x91)" (( "(") (binary_expression "iVar2 + 0x91" (identifier "iVar2") (+ "+") (number_literal "0x91")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar2 + 0x44) = iVar5;" (assignment_expression "*(int *)(iVar2 + 0x44) = iVar5" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "FUN_0005e690();" (call_expression "FUN_0005e690()" (identifier "FUN_0005e690") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return param_1[5];" (return "return") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (; ";")) (} "}"))) (expression_statement "FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");" (call_expression "FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section")" (identifier "FUN_0008b620") (argument_list "("../../gold/output.h",0xd3a,"set_info_section")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xd3a") (, ",") (string_literal ""set_info_section"" (" """) (string_content "set_info_section") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7)" (identifier "FUN_0008b620") (argument_list "("../../gold/parameters.h",0x5c,"options",piVar7)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "piVar7") () ")"))) (; ";")) (} "}")))

/* 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_base * init_got_plt_for_update(Target_x86_64<32> *
   this, Symbol_table * symtab, Layout * layout, uint got_count, uint plt_count) */

type_16 * __thiscall
anon_unknown.dwarf_32964f::var_20<32>::init_got_plt_for_update
          (var_20<32> *this,Symbol_table *symtab,type_6 *layout,type_12 var_6,type_12 var_15
          )

{
  type_1 var_5;
  int var_18;
  int var_17;
  type_2 *pPVar4;
  type_3 *var_12;
  type_4 *pSVar6;
  uint64_t var_4;
  type_5 **this_00;
  type_6 *layout_00;
  type_7 *this_01;
  
  if ((this->x86_64_info).dynamic_linker != (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::var_1("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");
  }
  var_12 = (type_3 *)var_2(0x5c);
                    /* try { // try from 000707d7 to 000707db has its CatchHandler @ 00070c25 */
  var_4 = gold::Output_data::var_3(0x40);
  *(int *)&var_12->addralign_ = (int)var_4;
  var_5 = (var_12->super_Output_data).field_0x1c;
  *(type_8 *)&(var_12->super_Output_data).address_ = 0;
  *(type_8 *)((int)&(var_12->super_Output_data).address_ + 4) = 0;
  var_12->output_section_ = (type_9 *)0x0;
  *(int *)((int)&var_12->addralign_ + 4) = (int)(var_4 >> 0x20);
  (var_12->super_Output_data).field_0x1c = var_5 & 0xe0 | 2;
  this_00 = &PTR__Output_data_got_00339948;
  (var_12->super_Output_data)._vptr_Output_data =
       (type_10 **)&PTR__Output_data_got_00339948;
  this_01 = (type_7 *)&var_12[1].super_Output_data.data_size_;
  *(type_7 **)((int)&var_12[1].super_Output_data.data_size_ + 4) = this_01;
  *(type_7 **)&var_12[1].super_Output_data.data_size_ = this_01;
  *(type_7 **)((int)&var_12[1].super_Output_data.offset_ + 4) = this_01;
  *(type_11 **)&(var_12->super_Output_data).data_size_ = (type_11 *)(var_6 << 3);
  *(type_8 *)((int)&(var_12->super_Output_data).data_size_ + 4) = 0;
  *(type_8 *)&(var_12->super_Output_data).offset_ = 0xffffffff;
  *(type_8 *)((int)&(var_12->super_Output_data).offset_ + 4) = 0xffffffff;
  var_12[1].super_Output_data._vptr_Output_data = (type_10 **)0x0;
  *(type_8 *)&var_12[1].super_Output_data.address_ = 0;
  *(type_8 *)((int)&var_12[1].super_Output_data.address_ + 4) = 0;
  *(type_8 *)&var_12[1].super_Output_data.offset_ = 0;
  var_12[1].super_Output_data.field_0x1c = 0;
  var_12[1].output_section_ = (type_9 *)0x0;
  *(type_8 *)&var_12[1].addralign_ = 0;
  *(type_8 *)((int)&var_12[1].addralign_ + 4) = 0;
  var_12[2].super_Output_data._vptr_Output_data = (type_10 **)0x0;
  if ((var_6 & 0x1fffffff) != 0) {
                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */
    std::
    vector<gold::var_7<64,var_8>::var_9,_std::allocator<gold::var_7<64,var_8>::var_9>var_10>
    ::var_11((vector<gold::var_7<64,var_8>::var_9,_std::allocator<gold::var_7<64,var_8>::var_9>var_10>
                         *)(var_12 + 1),var_6 & 0x1fffffff);
  }
                    /* try { // try from 00070892 to 00070896 has its CatchHandler @ 00070c3d */
  gold::Free_list::var_13(this_01,(type_11 *)(var_6 << 3));
  (this->x86_64_info).dynamic_linker = (char *)var_12;
  gold::Layout::var_14(layout,".got",1,3,var_12,ORDER_RELRO_LAST,true);
  var_12 = (type_3 *)var_2(0x30);
  *(type_8 *)&(var_12->super_Output_data).address_ = 0;
  *(type_8 *)((int)&(var_12->super_Output_data).address_ + 4) = 0;
  *(type_12 *)&(var_12->super_Output_data).data_size_ = var_15 * 8 + 0x18;
  var_5 = (var_12->super_Output_data).field_0x1c;
  var_12[1].super_Output_data._vptr_Output_data = (type_10 **)layout;
  var_12->output_section_ = (type_9 *)0x0;
  *(type_3 **)((int)&(this->x86_64_info).default_text_segment_address + 4) = var_12;
  (var_12->super_Output_data).field_0x1c = var_5 & 0xe0 | 2;
  (var_12->super_Output_data)._vptr_Output_data =
       (type_10 **)&PTR__Output_data_got_plt_x86_64_00339344;
  *(type_8 *)&var_12->addralign_ = 8;
  *(type_8 *)((int)&var_12->addralign_ + 4) = 0;
  *(type_8 *)((int)&(var_12->super_Output_data).data_size_ + 4) = 0;
  *(type_8 *)&(var_12->super_Output_data).offset_ = 0xffffffff;
  *(type_8 *)((int)&(var_12->super_Output_data).offset_ + 4) = 0xffffffff;
  gold::Layout::var_14(layout,".got.plt",1,3,var_12,ORDER_NON_RELRO_FIRST,false);
  pSVar6 = gold::Symbol_table::var_16
                     (symtab,"_GLOBAL_OFFSET_TABLE_",(char *)0x0,PREDEFINED,
                      *(type_13 **)((int)&(this->x86_64_info).default_text_segment_address + 4),
                      0,0,STT_OBJECT,STB_LOCAL,STV_HIDDEN,'\0',false,false);
  *(type_4 **)&(this->x86_64_info).common_pagesize = pSVar6;
  var_12 = (type_3 *)var_2(0x5c);
                    /* try { // try from 00070993 to 00070997 has its CatchHandler @ 00070c35 */
  var_4 = gold::Output_data::var_3(0x40);
  *(int *)&var_12->addralign_ = (int)var_4;
  var_5 = (var_12->super_Output_data).field_0x1c;
  var_12->output_section_ = (type_9 *)0x0;
  *(int *)((int)&var_12->addralign_ + 4) = (int)(var_4 >> 0x20);
  *(type_8 *)&(var_12->super_Output_data).address_ = 0;
  (var_12->super_Output_data).field_0x1c = var_5 & 0xe0 | 2;
  *(type_8 *)((int)&(var_12->super_Output_data).address_ + 4) = 0;
  (var_12->super_Output_data)._vptr_Output_data = (type_10 **)this_00;
  layout_00 = (type_6 *)&var_12[1].super_Output_data.data_size_;
  *(type_8 *)&(var_12->super_Output_data).data_size_ = 0;
  *(type_8 *)((int)&(var_12->super_Output_data).data_size_ + 4) = 0;
  *(type_8 *)&(var_12->super_Output_data).offset_ = 0xffffffff;
  *(type_8 *)((int)&(var_12->super_Output_data).offset_ + 4) = 0xffffffff;
  var_12[1].super_Output_data._vptr_Output_data = (type_10 **)0x0;
  *(type_8 *)&var_12[1].super_Output_data.address_ = 0;
  *(type_8 *)((int)&var_12[1].super_Output_data.address_ + 4) = 0;
  *(type_6 **)((int)&var_12[1].super_Output_data.data_size_ + 4) = layout_00;
  *(type_6 **)&var_12[1].super_Output_data.data_size_ = layout_00;
  *(type_8 *)&var_12[1].super_Output_data.offset_ = 0;
  *(type_6 **)((int)&var_12[1].super_Output_data.offset_ + 4) = layout_00;
  var_12[1].super_Output_data.field_0x1c = 0;
  var_12[1].output_section_ = (type_9 *)0x0;
  *(type_8 *)&var_12[1].addralign_ = 0;
  *(type_8 *)((int)&var_12[1].addralign_ + 4) = 0;
  var_12[2].super_Output_data._vptr_Output_data = (type_10 **)0x0;
                    /* try { // try from 00070a36 to 00070a3a has its CatchHandler @ 00070c2d */
  gold::Free_list::var_13((type_7 *)layout_00,(type_11 *)0x0);
  *(type_3 **)((int)&(this->x86_64_info).abi_pagesize + 4) = var_12;
  gold::Layout::var_14(layout,".got.plt",1,3,var_12,ORDER_NON_RELRO_FIRST,false);
  var_12 = (type_3 *)var_2(0x30);
  var_5 = (var_12->super_Output_data).field_0x1c;
  var_12->output_section_ = (type_9 *)0x0;
  *(type_3 **)&(this->x86_64_info).abi_pagesize = var_12;
  *(type_8 *)&var_12->addralign_ = 8;
  *(type_8 *)((int)&var_12->addralign_ + 4) = 0;
  (var_12->super_Output_data).field_0x1c = var_5 & 0xe0 | 2;
  (var_12->super_Output_data)._vptr_Output_data =
       (type_10 **)&PTR__Output_data_space_00338cb8;
  var_12[1].super_Output_data._vptr_Output_data = (type_10 **)"** GOT IRELATIVE PLT";
  *(type_8 *)&(var_12->super_Output_data).address_ = 0;
  *(type_8 *)((int)&(var_12->super_Output_data).address_ + 4) = 0;
  *(type_8 *)&(var_12->super_Output_data).data_size_ = 0;
  *(type_8 *)((int)&(var_12->super_Output_data).data_size_ + 4) = 0;
  *(type_8 *)&(var_12->super_Output_data).offset_ = 0xffffffff;
  *(type_8 *)((int)&(var_12->super_Output_data).offset_ + 4) = 0xffffffff;
  gold::Layout::var_14(layout,".got.plt",1,3,var_12,ORDER_NON_RELRO_FIRST,false);
  var_12 = (type_3 *)
           (**(type_14 **)((this->x86_64_info).size + 0x104))
                     (this,layout,(this->x86_64_info).dynamic_linker,
                      *(type_8 *)((int)&(this->x86_64_info).default_text_segment_address + 4),
                      (int)(this->x86_64_info).abi_pagesize,var_15);
  pPVar4 = gold::parameters;
  *(type_3 **)&(this->x86_64_info).default_text_segment_address = var_12;
  if (pPVar4->options_ != (type_15 *)0x0) {
    if ((pPVar4->options_->ld_generated_unwind_info_).value != false) {
      (*(var_12->super_Output_data)._vptr_Output_data[0x1f])(var_12,layout);
      var_12 = *(type_3 **)&(this->x86_64_info).default_text_segment_address;
    }
    gold::Layout::var_14(layout,".plt",1,6,var_12,ORDER_PLT,false);
    var_17 = (int)(this->x86_64_info).default_text_segment_address;
    var_18 = *(int *)(var_17 + 0x20);
    var_17 = *(int *)(*(int *)(var_17 + 0x2c) + 0x20);
    if ((((*(int *)(var_17 + 0x44) == 0) ||
         ((var_18 == *(int *)(var_17 + 0x44) && ((*(type_1 *)(var_17 + 0x91) & 1) != 0)))) &&
        (*(int *)(var_17 + 0x48) == 0)) && (*(int *)(var_17 + 0x4c) == 0)) {
      *(type_1 *)(var_17 + 0x91) = *(type_1 *)(var_17 + 0x91) | 1;
      *(int *)(var_17 + 0x44) = var_18;
      var_19((var_20<32> *)this_00,layout_00);
      return (type_16 *)(this->x86_64_info).dynamic_linker;
    }
                    /* WARNING: Subroutine does not return */
    gold::var_1("../../gold/output.h",0xd3a,"set_info_section");
  }
                    /* WARNING: Subroutine does not return */
  gold::var_1("../../gold/parameters.h",0x5c,"options");
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (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: (binary_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (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: (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: (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: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal) (number_literal) (number_literal) (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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) (number_literal) (number_literal) (identifier) (identifier) (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (number_literal) (number_literal) (subscript_expression argument: (identifier) index: (number_literal)) (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: (subscript_expression argument: (identifier) index: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (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: (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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (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) (number_literal) (number_literal) (number_literal) (identifier) (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (number_literal) (identifier) (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: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (string_literal (string_content)))) (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) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (number_literal) (number_literal) (number_literal) (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_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)))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (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 MASKED(int *param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5)

{
  byte bVar1;
  int iVar2;
  undefined4 *puVar3;
  uint uVar4;
  int iVar5;
  undefined4 *puVar6;
  int *piVar7;
  undefined8 uVar8;
  undefined **ppuVar9;
  char *pcVar10;
  
  if (param_1[5] != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/x86_64.cc",0xbc5,"init_got_plt_for_update");
  }
  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);
  uVar4 = param_4 << 3;
                    /* try { // try from 000707d7 to 000707db has its CatchHandler @ 00070c25 */
  uVar8 = FUN_000e8010(0x40);
  puVar3[9] = (int)uVar8;
  puVar3[1] = 0;
  puVar3[2] = 0;
  puVar3[8] = 0;
  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);
  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;
  ppuVar9 = &PTR_FUN_00339948;
  *puVar3 = &PTR_FUN_00339948;
  puVar6 = puVar3 + 0xe;
  puVar3[0xf] = puVar6;
  puVar3[0xe] = puVar6;
  puVar3[0x11] = puVar6;
  puVar3[3] = uVar4;
  puVar3[4] = 0;
  puVar3[5] = 0xffffffff;
  puVar3[6] = 0xffffffff;
  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;
  if (uVar4 >> 3 != 0) {
                    /* try { // try from 00070bc8 to 00070bcc has its CatchHandler @ 00070c3d */
    FUN_00077cd0(puVar3 + 0xb,uVar4 >> 3);
  }
                    /* try { // try from 00070892 to 00070896 has its CatchHandler @ 00070c3d */
  FUN_000a8120(puVar6,uVar4,0,0);
  param_1[5] = (int)puVar3;
  FUN_000b25f0(param_3,&DAT_0024b406,1,3,0,puVar3,0x14,1);
  puVar3 = (undefined4 *)FUN_001aa8c0(0x30);
  puVar3[1] = 0;
  puVar3[2] = 0;
  puVar3[3] = param_5 * 8 + 0x18;
  bVar1 = *(byte *)(puVar3 + 7);
  puVar3[0xb] = param_3;
  puVar3[8] = 0;
  param_1[7] = (int)puVar3;
  *(byte *)(puVar3 + 7) = bVar1 & 0xe0 | 2;
  *puVar3 = &PTR_FUN_00339344;
  puVar3[9] = 8;
  puVar3[10] = 0;
  puVar3[4] = 0;
  puVar3[5] = 0xffffffff;
  puVar3[6] = 0xffffffff;
  pcVar10 = ".got.plt";
  FUN_000b25f0(param_3,".got.plt",1,3,0,puVar3,0x15,0,ppuVar9,puVar6,".got.plt");
  iVar5 = FUN_00151380(param_2,"_GLOBAL_OFFSET_TABLE_",0,5,param_1[7],0,0,0,0,1,0,2,0,0,0);
  param_1[10] = iVar5;
  puVar3 = (undefined4 *)FUN_001aa8c0(0x5c);
                    /* try { // try from 00070993 to 00070997 has its CatchHandler @ 00070c35 */
  uVar8 = FUN_000e8010(0x40);
  puVar3[9] = (int)uVar8;
  puVar3[8] = 0;
  puVar3[10] = (int)((ulonglong)uVar8 >> 0x20);
  puVar3[1] = 0;
  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 2;
  puVar3[2] = 0;
  *puVar3 = ppuVar9;
  puVar6 = puVar3 + 0xe;
  puVar3[3] = 0;
  puVar3[4] = 0;
  puVar3[5] = 0xffffffff;
  puVar3[6] = 0xffffffff;
  puVar3[0xb] = 0;
  puVar3[0xc] = 0;
  puVar3[0xd] = 0;
  puVar3[0xf] = puVar6;
  puVar3[0xe] = puVar6;
  puVar3[0x10] = 0;
  puVar3[0x11] = puVar6;
  *(undefined1 *)(puVar3 + 0x12) = 0;
  puVar3[0x13] = 0;
  puVar3[0x14] = 0;
  puVar3[0x15] = 0;
  puVar3[0x16] = 0;
                    /* try { // try from 00070a36 to 00070a3a has its CatchHandler @ 00070c2d */
  FUN_000a8120(puVar6,0,0,0,ppuVar9,puVar6);
  param_1[9] = (int)puVar3;
  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar3,0x15,0);
  puVar6 = (undefined4 *)FUN_001aa8c0(0x30);
  bVar1 = *(byte *)(puVar6 + 7);
  puVar6[8] = 0;
  param_1[8] = (int)puVar6;
  puVar6[9] = 8;
  puVar6[10] = 0;
  *(byte *)(puVar6 + 7) = bVar1 & 0xe0 | 2;
  *puVar6 = &PTR_FUN_00338cb8;
  puVar6[0xb] = "** GOT IRELATIVE PLT";
  puVar6[1] = 0;
  puVar6[2] = 0;
  puVar6[3] = 0;
  puVar6[4] = 0;
  puVar6[5] = 0xffffffff;
  puVar6[6] = 0xffffffff;
  FUN_000b25f0(param_3,pcVar10,1,3,0,puVar6,0x15,0);
  piVar7 = (int *)(**(code **)(*param_1 + 0x104))
                            (param_1,param_3,param_1[5],param_1[7],param_1[8],param_5);
  iVar5 = DAT_0033f2f0;
  param_1[6] = (int)piVar7;
  if (*(int *)(iVar5 + 8) != 0) {
    if (*(char *)(*(int *)(iVar5 + 8) + 0x2105) != '\0') {
      (**(code **)(*piVar7 + 0x7c))(piVar7,param_3);
      piVar7 = (int *)param_1[6];
    }
    FUN_000b25f0(param_3,".plt",1,6,0,piVar7,7,0);
    iVar5 = *(int *)(param_1[6] + 0x20);
    iVar2 = *(int *)(*(int *)(param_1[6] + 0x2c) + 0x20);
    if ((((*(int *)(iVar2 + 0x44) == 0) ||
         ((iVar5 == *(int *)(iVar2 + 0x44) && ((*(byte *)(iVar2 + 0x91) & 1) != 0)))) &&
        (*(int *)(iVar2 + 0x48) == 0)) && (*(int *)(iVar2 + 0x4c) == 0)) {
      *(byte *)(iVar2 + 0x91) = *(byte *)(iVar2 + 0x91) | 1;
      *(int *)(iVar2 + 0x44) = iVar5;
      FUN_0005e690();
      return param_1[5];
    }
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/output.h",0xd3a,"set_info_section");
  }
                    /* WARNING: Subroutine does not return */
  FUN_0008b620("../../gold/parameters.h",0x5c,"options",piVar7);
}

