
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void make_copy_reloc(Copy_relocs<9,_32,_false> * this, Symbol_table *
   symtab, Layout * layout, Sized_symbol<32> * sym, Sized_relobj_file<32,_false> * object,
   Output_data_reloc<9,_true,_32,_false> * reloc_section) */

void __thiscall
gold::Copy_relocs<9,_32,_false>::make_copy_reloc
          (Copy_relocs<9,_32,_false> *this,Symbol_table *symtab,Layout *layout,Sized_symbol<32> *sym
          ,Sized_relobj_file<32,_false> *object,Output_data_reloc<9,_true,_32,_false> *reloc_section
          )

{
  byte *pbVar1;
  undefined1 *puVar2;
  uint uVar3;
  Output_segment *pOVar4;
  Object *pOVar5;
  _func_int_varargs *p_Var6;
  pointer pcVar7;
  char *pcVar8;
  pointer ppOVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  char *format;
  undefined4 extraout_var;
  Output_data_space *pOVar13;
  ulong uVar14;
  ulong addralign;
  char local_5d;
  uint local_5c;
  undefined1 *local_58 [2];
  undefined1 auStack_48 [24];
  
  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->copyreloc_).value == false) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");
  }
  if ((((sym->super_Symbol).field_0x3a & 7) != 0) ||
     (pOVar4 = (sym->super_Symbol).u1_.output_segment,
     ((ulong)pOVar4->output_lists_[2].
             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
             _M_finish & 0x100000000) == 0)) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");
  }
  if (((sym->super_Symbol).field_0x3c & 8) == 0) {
    local_5c = sym->symsize_;
  }
  else {
    pcVar7 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.
             _M_p;
    pcVar8 = (sym->super_Symbol).name_;
    ppOVar9 = pOVar4->output_lists_[0].
              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
              _M_finish;
    format = (char *)gettext(
                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"
                            );
    gold_error(format,pcVar7,pcVar8,ppOVar9);
    local_5c = sym->symsize_;
    if (((sym->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");
    }
  }
  uVar3 = (sym->super_Symbol).u2_.shndx;
  if (((sym->super_Symbol).field_0x3b & 0x20) == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");
  }
  pOVar5 = (sym->super_Symbol).u1_.object;
  if (pOVar5->input_file_ != (Input_file *)0x0) {
    File_read::lock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);
  }
                    /* try { // try from 0018dd32 to 0018dd94 has its CatchHandler @ 0018e111 */
  uVar10 = (*pOVar5->_vptr_Object[0x17])(pOVar5,uVar3);
  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  local_5d = (parameters->options_->relro_).value;
  if (((bool)local_5d != false) &&
     (uVar11 = (*pOVar5->_vptr_Object[0x11])(pOVar5,uVar3), (uVar11 & 1) != 0)) {
    (*pOVar5->_vptr_Object[0x10])((string *)local_58,pOVar5,uVar3);
    iVar12 = std::string::compare((string *)local_58,".data.rel.ro");
    if (local_58[0] != auStack_48) {
      operator_delete(local_58[0]);
    }
    local_5d = iVar12 == 0;
  }
  if (pOVar5->input_file_ != (Input_file *)0x0) {
    File_read::unlock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);
  }
  for (; (uVar10 - 1 & sym->value_) != 0; uVar10 = uVar10 >> 1) {
  }
  if (((sym->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");
  }
  addralign = (ulong)uVar10;
  pbVar1 = (byte *)((long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].
                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                           ._M_impl._M_finish + 4);
  *pbVar1 = *pbVar1 | 2;
  if (local_5d == '\0') {
    pOVar13 = this->dynbss_;
    if (pOVar13 == (Output_data_space *)0x0) {
      pOVar13 = (Output_data_space *)operator_new(0x40);
      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      address_ = 0;
      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;
      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      data_size_ = 0;
      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_
           = -1;
      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.field_0x20;
      *puVar2 = *puVar2 & 0xe0;
      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =
           (Output_section *)0x0;
      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;
      pOVar13->map_name_ = "** dynbss";
      this->dynbss_ = pOVar13;
      Layout::add_output_section_data
                (layout,".bss",8,3,(Output_section_data *)pOVar13,ORDER_BSS,false);
      pOVar13 = this->dynbss_;
    }
  }
  else {
    pOVar13 = this->dynrelro_;
    if (pOVar13 == (Output_data_space *)0x0) {
      pOVar13 = (Output_data_space *)operator_new(0x40);
      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      address_ = 0;
      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;
      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      data_size_ = 0;
      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_
           = -1;
      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.field_0x20;
      *puVar2 = *puVar2 & 0xe0;
      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =
           (Output_section *)0x0;
      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;
      pOVar13->map_name_ = "** dynrelro";
      this->dynrelro_ = pOVar13;
      Layout::add_output_section_data
                (layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false);
      pOVar13 = this->dynrelro_;
    }
  }
  p_Var6 = (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.
           _vptr_Output_data[3];
  if (p_Var6 == Output_section_data::do_addralign) {
    uVar14 = (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_;
  }
  else {
    iVar12 = (*p_Var6)(pOVar13);
    uVar14 = CONCAT44(extraout_var,iVar12);
  }
  if (uVar14 < addralign) {
    Output_section_data::set_addralign((Output_section_data *)pOVar13,addralign);
  }
  uVar14 = (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.
           data_size_;
  if (uVar10 != 0) {
    uVar14 = (uVar14 - 1) + addralign & -addralign;
  }
  if (((pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.
       field_0x20 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_
       = local_5c + uVar14;
  emit_copy_reloc(this,symtab,sym,(Output_data *)pOVar13,uVar14,reloc_section);
  return;
}



void FUN_0018dc90(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,
                 long param_5,undefined8 param_6)

{
  undefined4 uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  uint uVar5;
  int iVar6;
  ulong uVar7;
  undefined8 uVar8;
  undefined8 *puVar9;
  ulong uVar10;
  long *plVar11;
  char local_5d;
  uint local_5c;
  undefined1 *local_58 [2];
  undefined1 auStack_48 [24];
  
  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/parameters.h",0x5c,"options");
  }
  if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");
  }
  if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");
  }
  if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {
    local_5c = *(uint *)((long)param_4 + 0x44);
  }
  else {
    uVar2 = *(undefined8 *)(param_5 + 8);
    uVar3 = *param_4;
    uVar4 = *(undefined8 *)(param_4[2] + 8);
    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");
    FUN_00191870(uVar8,uVar2,uVar3,uVar4);
    local_5c = *(uint *)((long)param_4 + 0x44);
    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");
    }
  }
  uVar1 = *(undefined4 *)(param_4 + 3);
  if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");
  }
  plVar11 = (long *)param_4[2];
  if (plVar11[5] != 0) {
    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);
  }
                    /* try { // try from 0018dd32 to 0018dd94 has its CatchHandler @ 0018e111 */
  uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);
  uVar10 = (ulong)uVar5;
  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */
    FUN_00199900("../../gold/parameters.h",0x5c,"options");
  }
  local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);
  if ((local_5d != '\0') &&
     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {
    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);
    iVar6 = FUN_002ab760(local_58,".data.rel.ro");
    if (local_58[0] != auStack_48) {
      FUN_002a2980();
    }
    local_5d = iVar6 == 0;
  }
  if (plVar11[5] != 0) {
    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);
  }
  while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {
    uVar10 = uVar10 >> 1;
    uVar5 = (uint)uVar10;
  }
  if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/symtab.h",0xa1,"object");
  }
  uVar10 = (ulong)uVar5;
  *(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;
  if (local_5d == '\0') {
    plVar11 = *(long **)(param_1 + 0x20);
    if (plVar11 == (long *)0x0) {
      puVar9 = (undefined8 *)FUN_002a11b0(0x40);
      puVar9[1] = 0;
      puVar9[6] = uVar10;
      puVar9[2] = 0;
      puVar9[3] = 0xffffffffffffffff;
      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;
      puVar9[5] = 0;
      *puVar9 = &PTR_FUN_003ebea8;
      puVar9[7] = "** dynbss";
      *(undefined8 **)(param_1 + 0x20) = puVar9;
      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);
      plVar11 = *(long **)(param_1 + 0x20);
    }
  }
  else {
    plVar11 = *(long **)(param_1 + 0x28);
    if (plVar11 == (long *)0x0) {
      puVar9 = (undefined8 *)FUN_002a11b0(0x40);
      puVar9[1] = 0;
      puVar9[6] = uVar10;
      puVar9[2] = 0;
      puVar9[3] = 0xffffffffffffffff;
      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;
      puVar9[5] = 0;
      *puVar9 = &PTR_FUN_003ebea8;
      puVar9[7] = "** dynrelro";
      *(undefined8 **)(param_1 + 0x28) = puVar9;
      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);
      plVar11 = *(long **)(param_1 + 0x28);
    }
  }
  if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {
    uVar7 = plVar11[6];
  }
  else {
    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);
  }
  if (uVar7 < uVar10) {
    FUN_001ee4b0(plVar11,uVar10);
  }
  uVar7 = plVar11[2];
  if (uVar5 != 0) {
    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;
  }
  if ((*(byte *)(plVar11 + 4) & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  plVar11[2] = local_5c + uVar7;
  FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x48
MOV RAX,qword ptr [0x003f85c0]
MOV qword ptr [RSP],RDX
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x0018e099
CMP byte ptr [RAX + 0x8619],0x0
JZ 0x0018e081
MOV RBP,RCX
TEST byte ptr [RCX + 0x3a],0x7
JNZ 0x0018dea8
MOV RAX,qword ptr [RCX + 0x10]
TEST byte ptr [RAX + 0x3c],0x1
JZ 0x0018dea8
MOV R13,RDI
MOV R14,RSI
MOV R15,R9
TEST byte ptr [RCX + 0x3c],0x8
JNZ 0x0018dec0
MOV EAX,dword ptr [RCX + 0x44]
MOV dword ptr [RSP + 0x1c],EAX
MOV EAX,dword ptr [RBP + 0x18]
MOV dword ptr [RSP + 0x8],EAX
TEST byte ptr [RBP + 0x3b],0x20
JZ 0x0018e0e1
MOV R12,qword ptr [RBP + 0x10]
MOV RDI,qword ptr [R12 + 0x28]
TEST RDI,RDI
JZ 0x0018dd27
ADD RDI,0x28
MOV RSI,-0x1
CALL 0x00192a40
MOV RAX,qword ptr [R12]
MOV ESI,dword ptr [RSP + 0x8]
MOV RDI,R12
CALL qword ptr [RAX + 0xb8]
MOV qword ptr [RSP + 0x10],RAX
MOV EBX,EAX
MOV RAX,qword ptr [0x003f85c0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x0018e0b1
MOVZX EAX,byte ptr [RAX + 0x8c59]
MOV byte ptr [RSP + 0x1b],AL
TEST AL,AL
JZ 0x0018ddcd
MOV RAX,qword ptr [R12]
MOV ESI,dword ptr [RSP + 0x8]
MOV RDI,R12
CALL qword ptr [RAX + 0x88]
TEST AL,0x1
JZ 0x0018ddcd
MOV RAX,qword ptr [R12]
LEA RCX,[RSP + 0x20]
MOV EDX,dword ptr [RSP + 0x8]
MOV RSI,R12
MOV qword ptr [RSP + 0x8],RCX
MOV RDI,RCX
CALL qword ptr [RAX + 0x80]
MOV RDI,qword ptr [RSP + 0x8]
LEA RSI,[0x33f409]
CALL 0x002ab760
MOV RDX,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [RSP + 0x20]
ADD RDX,0x10
CMP RDI,RDX
JZ 0x0018ddc6
MOV dword ptr [RSP + 0x8],EAX
CALL 0x002a2980
MOV EAX,dword ptr [RSP + 0x8]
TEST EAX,EAX
SETZ byte ptr [RSP + 0x1b]
MOV RDI,qword ptr [R12 + 0x28]
TEST RDI,RDI
JZ 0x0018dde7
ADD RDI,0x28
MOV RSI,-0x1
CALL 0x00193600
MOV EAX,dword ptr [RSP + 0x10]
MOV EDX,dword ptr [RBP + 0x40]
SUB EAX,0x1
TEST EAX,EDX
JZ 0x0018de01
NOP dword ptr [RAX]
SHR EBX,0x1
LEA EAX,[RBX + -0x1]
TEST EAX,EDX
JNZ 0x0018ddf8
TEST byte ptr [RBP + 0x3a],0x7
JNZ 0x0018e0f9
MOV RAX,qword ptr [RBP + 0x10]
MOV R10D,EBX
OR byte ptr [RAX + 0x3c],0x2
CMP byte ptr [RSP + 0x1b],0x0
JZ 0x0018df20
MOV R12,qword ptr [R13 + 0x28]
TEST R12,R12
JZ 0x0018dff2
MOV RAX,qword ptr [R12]
LEA RDX,[0x168610]
MOV RAX,qword ptr [RAX + 0x18]
CMP RAX,RDX
JNZ 0x0018dfe0
MOV RAX,qword ptr [R12 + 0x30]
CMP RAX,R10
JC 0x0018dfc0
MOV R8,qword ptr [R12 + 0x10]
TEST EBX,EBX
JZ 0x0018de68
LEA R8,[R8 + R10*0x1 + -0x1]
NEG R10
AND R8,R10
MOV EAX,dword ptr [RSP + 0x1c]
ADD RAX,R8
TEST byte ptr [R12 + 0x20],0x2
JNZ 0x0018e0c9
MOV qword ptr [R12 + 0x10],RAX
MOV R9,R15
MOV RCX,R12
MOV RDX,RBP
MOV RSI,R14
MOV RDI,R13
CALL 0x0018db00
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RDX,[0x33f5f0]
MOV ESI,0x78
LEA RDI,[0x33f3ef]
CALL 0x00199900
MOV RSI,qword ptr [R8 + 0x8]
MOV RBX,qword ptr [RCX]
LEA RDI,[0x33f438]
MOV R12,qword ptr [RAX + 0x8]
MOV qword ptr [RSP + 0x8],RSI
CALL 0x00144320
MOV RSI,qword ptr [RSP + 0x8]
MOV RCX,R12
MOV RDX,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00191870
MOV EAX,dword ptr [RBP + 0x44]
MOV dword ptr [RSP + 0x1c],EAX
TEST byte ptr [RBP + 0x3a],0x7
JZ 0x0018dcf8
LEA RDX,[0x33f5e0]
MOV ESI,0xaa
LEA RDI,[0x338407]
CALL 0x00199900
MOV R12,qword ptr [R13 + 0x20]
TEST R12,R12
JNZ 0x0018de2e
MOV EDI,0x40
MOV qword ptr [RSP + 0x8],R10
CALL 0x002a11b0
MOV R10,qword ptr [RSP + 0x8]
SUB RSP,0x8
MOV EDX,0x8
MOV R8,RAX
MOV qword ptr [RAX + 0x8],0x0
MOV R9D,0x1b
MOV ECX,0x3
MOV qword ptr [RAX + 0x30],R10
LEA RSI,[0x33f42c]
MOV qword ptr [RAX + 0x10],0x0
MOV qword ptr [RAX + 0x18],-0x1
AND byte ptr [RAX + 0x20],0xe0
MOV qword ptr [RAX + 0x28],0x0
LEA RAX,[0x3ebea8]
MOV qword ptr [R8],RAX
LEA RAX,[0x33f422]
MOV qword ptr [R8 + 0x38],RAX
MOV qword ptr [R13 + 0x20],R8
PUSH 0x0
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x001bc730
POP RAX
MOV R12,qword ptr [R13 + 0x20]
POP RDX
MOV R10,qword ptr [RSP + 0x8]
JMP 0x0018de2e
MOV RSI,R10
MOV RDI,R12
MOV qword ptr [RSP],R10
CALL 0x001ee4b0
MOV R10,qword ptr [RSP]
JMP 0x0018de54
MOV qword ptr [RSP],R10
MOV RDI,R12
CALL RAX
MOV R10,qword ptr [RSP]
JMP 0x0018de4b
MOV EDI,0x40
MOV qword ptr [RSP + 0x8],R10
CALL 0x002a11b0
MOV R10,qword ptr [RSP + 0x8]
SUB RSP,0x8
MOV ECX,0x3
MOV R8,RAX
MOV qword ptr [RAX + 0x8],0x0
LEA RSI,[0x33f409]
MOV R9D,0x13
MOV qword ptr [RAX + 0x30],R10
MOV EDX,0x1
MOV qword ptr [RAX + 0x10],0x0
MOV qword ptr [RAX + 0x18],-0x1
AND byte ptr [RAX + 0x20],0xe0
MOV qword ptr [RAX + 0x28],0x0
LEA RAX,[0x3ebea8]
MOV qword ptr [R8],RAX
LEA RAX,[0x33f416]
MOV qword ptr [R8 + 0x38],RAX
MOV qword ptr [R13 + 0x28],R8
PUSH 0x0
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x001bc730
POP RCX
MOV R12,qword ptr [R13 + 0x28]
POP RSI
MOV R10,qword ptr [RSP + 0x8]
JMP 0x0018de2e
LEA RDX,[0x33f5f0]
MOV ESI,0x76
LEA RDI,[0x33f3ef]
CALL 0x00199900
LEA RDX,[0x33f5d8]
MOV ESI,0x5c
LEA RDI,[0x333279]
CALL 0x00199900
LEA RDX,[0x33f5d8]
MOV ESI,0x5c
LEA RDI,[0x333279]
CALL 0x00199900
LEA RDX,[0x33f620]
MOV ESI,0x231
LEA RDI,[0x338384]
CALL 0x00199900
LEA RDX,[0x33f5f0]
MOV ESI,0x8e
LEA RDI,[0x33f3ef]
CALL 0x00199900
LEA RDX,[0x33f613]
MOV ESI,0xa1
LEA RDI,[0x338407]
CALL 0x00199900
(translation_unit "void FUN_0018dc90(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  undefined8 *puVar9;\n  ulong uVar10;\n  long *plVar11;\n  char local_5d;\n  uint local_5c;\n  undefined1 *local_58 [2];\n  undefined1 auStack_48 [24];\n  \n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }\n  if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }\n  if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }\n  uVar1 = *(undefined4 *)(param_4 + 3);\n  if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }\n  plVar11 = (long *)param_4[2];\n  if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n                    /* try { // try from 0018dd32 to 0018dd94 has its CatchHandler @ 0018e111 */\n  uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);\n  uVar10 = (ulong)uVar5;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */\n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);\n  if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }\n  if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n  while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }\n  if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }\n  uVar10 = (ulong)uVar5;\n  *(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;\n  if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }\n  if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }\n  if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }\n  uVar7 = plVar11[2];\n  if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }\n  if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  plVar11[2] = local_5c + uVar7;\n  FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);\n  return;\n}\n\n" (function_definition "void FUN_0018dc90(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  undefined8 *puVar9;\n  ulong uVar10;\n  long *plVar11;\n  char local_5d;\n  uint local_5c;\n  undefined1 *local_58 [2];\n  undefined1 auStack_48 [24];\n  \n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }\n  if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }\n  if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }\n  uVar1 = *(undefined4 *)(param_4 + 3);\n  if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }\n  plVar11 = (long *)param_4[2];\n  if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n                    /* try { // try from 0018dd32 to 0018dd94 has its CatchHandler @ 0018e111 */\n  uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);\n  uVar10 = (ulong)uVar5;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */\n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);\n  if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }\n  if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n  while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }\n  if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }\n  uVar10 = (ulong)uVar5;\n  *(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;\n  if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }\n  if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }\n  if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }\n  uVar7 = plVar11[2];\n  if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }\n  if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  plVar11[2] = local_5c + uVar7;\n  FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);\n  return;\n}" primitive_type (function_declarator "FUN_0018dc90(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  undefined8 *puVar9;\n  ulong uVar10;\n  long *plVar11;\n  char local_5d;\n  uint local_5c;\n  undefined1 *local_58 [2];\n  undefined1 auStack_48 [24];\n  \n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }\n  if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }\n  if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }\n  uVar1 = *(undefined4 *)(param_4 + 3);\n  if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }\n  plVar11 = (long *)param_4[2];\n  if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n                    /* try { // try from 0018dd32 to 0018dd94 has its CatchHandler @ 0018e111 */\n  uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);\n  uVar10 = (ulong)uVar5;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */\n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);\n  if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }\n  if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n  while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }\n  if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }\n  uVar10 = (ulong)uVar5;\n  *(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;\n  if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }\n  if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }\n  if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }\n  uVar7 = plVar11[2];\n  if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }\n  if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  plVar11[2] = local_5c + uVar7;\n  FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "char local_5d;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined1 *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_48 [24];" type_identifier (array_declarator "auStack_48 [24]" identifier [ number_literal ]) ;) (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../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 ") ))) ;) })) (if_statement "if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619)" * (cast_expression "(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }" { comment (expression_statement "FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");" (call_expression "FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc")" identifier (argument_list "("../../gold/copy-relocs.cc",0x76,"make_copy_reloc")" ( (string_literal ""../../gold/copy-relocs.cc"" " string_content ") , number_literal , (string_literal ""make_copy_reloc"" " string_content ") ))) ;) })) (if_statement "if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }" if (parenthesized_expression "(((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0))" ( (binary_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)" (parenthesized_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_4 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_4 + 0x3a)" * (cast_expression "(byte *)((long)param_4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x3a)" ( (binary_expression "(long)param_4 + 0x3a" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)(param_4[2] + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)(param_4[2] + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_4[2] + 0x3c) & 1)" ( (binary_expression "*(byte *)(param_4[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_4[2] + 0x3c)" * (cast_expression "(byte *)(param_4[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 0x3c)" ( (binary_expression "param_4[2] + 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }" { comment (expression_statement "FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");" (call_expression "FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc")" identifier (argument_list "("../../gold/copy-relocs.cc",0x78,"make_copy_reloc")" ( (string_literal ""../../gold/copy-relocs.cc"" " string_content ") , number_literal , (string_literal ""make_copy_reloc"" " string_content ") ))) ;) })) (if_statement "if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" if (parenthesized_expression "((*(byte *)((long)param_4 + 0x3c) & 8) == 0)" ( (binary_expression "(*(byte *)((long)param_4 + 0x3c) & 8) == 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3c) & 8)" ( (binary_expression "*(byte *)((long)param_4 + 0x3c) & 8" (pointer_expression "*(byte *)((long)param_4 + 0x3c)" * (cast_expression "(byte *)((long)param_4 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x3c)" ( (binary_expression "(long)param_4 + 0x3c" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }" { (expression_statement "local_5c = *(uint *)((long)param_4 + 0x44);" (assignment_expression "local_5c = *(uint *)((long)param_4 + 0x44)" identifier = (pointer_expression "*(uint *)((long)param_4 + 0x44)" * (cast_expression "(uint *)((long)param_4 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x44)" ( (binary_expression "(long)param_4 + 0x44" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" else (compound_statement "{\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" { (expression_statement "uVar2 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar2 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *param_4;" (assignment_expression "uVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "uVar4 = *(undefined8 *)(param_4[2] + 8);" (assignment_expression "uVar4 = *(undefined8 *)(param_4[2] + 8)" identifier = (pointer_expression "*(undefined8 *)(param_4[2] + 8)" * (cast_expression "(undefined8 *)(param_4[2] + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 8)" ( (binary_expression "param_4[2] + 8" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");" (assignment_expression "uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s")" identifier = (call_expression "gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s")" identifier (argument_list "("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s")" ( (string_literal ""%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_00191870(uVar8,uVar2,uVar3,uVar4);" (call_expression "FUN_00191870(uVar8,uVar2,uVar3,uVar4)" identifier (argument_list "(uVar8,uVar2,uVar3,uVar4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_5c = *(uint *)((long)param_4 + 0x44);" (assignment_expression "local_5c = *(uint *)((long)param_4 + 0x44)" identifier = (pointer_expression "*(uint *)((long)param_4 + 0x44)" * (cast_expression "(uint *)((long)param_4 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x44)" ( (binary_expression "(long)param_4 + 0x44" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }" if (parenthesized_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_4 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_4 + 0x3a)" * (cast_expression "(byte *)((long)param_4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x3a)" ( (binary_expression "(long)param_4 + 0x3a" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }" { comment (expression_statement "FUN_00199900("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_00199900("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) }))) (expression_statement "uVar1 = *(undefined4 *)(param_4 + 3);" (assignment_expression "uVar1 = *(undefined4 *)(param_4 + 3)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 3)" * (cast_expression "(undefined4 *)(param_4 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 3)" ( (binary_expression "param_4 + 3" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }" if (parenthesized_expression "((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)((long)param_4 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)((long)param_4 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)param_4 + 0x3b)" * (cast_expression "(byte *)((long)param_4 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x3b)" ( (binary_expression "(long)param_4 + 0x3b" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }" { comment (expression_statement "FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");" (call_expression "FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc")" identifier (argument_list "("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc")" ( (string_literal ""../../gold/copy-relocs.cc"" " string_content ") , number_literal , (string_literal ""make_copy_reloc"" " string_content ") ))) ;) })) (expression_statement "plVar11 = (long *)param_4[2];" (assignment_expression "plVar11 = (long *)param_4[2]" identifier = (cast_expression "(long *)param_4[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ]))) ;) (if_statement "if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" if (parenthesized_expression "(plVar11[5] != 0)" ( (binary_expression "plVar11[5] != 0" (subscript_expression "plVar11[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" { (expression_statement "FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);" (call_expression "FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff)" identifier (argument_list "(plVar11[5] + 0x28,0xffffffffffffffff)" ( (binary_expression "plVar11[5] + 0x28" (subscript_expression "plVar11[5]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) })) comment (expression_statement "uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);" (assignment_expression "uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1)" identifier = (call_expression "(**(code **)(*plVar11 + 0xb8))(plVar11,uVar1)" (parenthesized_expression "(**(code **)(*plVar11 + 0xb8))" ( (pointer_expression "**(code **)(*plVar11 + 0xb8)" * (pointer_expression "*(code **)(*plVar11 + 0xb8)" * (cast_expression "(code **)(*plVar11 + 0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar11 + 0xb8)" ( (binary_expression "*plVar11 + 0xb8" (pointer_expression "*plVar11" * identifier) + number_literal) ))))) )) (argument_list "(plVar11,uVar1)" ( identifier , identifier )))) ;) (expression_statement "uVar10 = (ulong)uVar5;" (assignment_expression "uVar10 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */\n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */\n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" { comment comment (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);" (assignment_expression "local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" identifier = (pointer_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" * (cast_expression "(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }" if (parenthesized_expression "((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0))" ( (binary_expression "(local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)" (parenthesized_expression "(local_5d != '\0')" ( (binary_expression "local_5d != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)" ( (comma_expression "uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0" (assignment_expression "uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1)" identifier = (call_expression "(**(code **)(*plVar11 + 0x88))(plVar11,uVar1)" (parenthesized_expression "(**(code **)(*plVar11 + 0x88))" ( (pointer_expression "**(code **)(*plVar11 + 0x88)" * (pointer_expression "*(code **)(*plVar11 + 0x88)" * (cast_expression "(code **)(*plVar11 + 0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar11 + 0x88)" ( (binary_expression "*plVar11 + 0x88" (pointer_expression "*plVar11" * identifier) + number_literal) ))))) )) (argument_list "(plVar11,uVar1)" ( identifier , identifier )))) , (binary_expression "(uVar7 & 1) != 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }" { (expression_statement "(**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);" (call_expression "(**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1)" (parenthesized_expression "(**(code **)(*plVar11 + 0x80))" ( (pointer_expression "**(code **)(*plVar11 + 0x80)" * (pointer_expression "*(code **)(*plVar11 + 0x80)" * (cast_expression "(code **)(*plVar11 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar11 + 0x80)" ( (binary_expression "*plVar11 + 0x80" (pointer_expression "*plVar11" * identifier) + number_literal) ))))) )) (argument_list "(local_58,plVar11,uVar1)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = FUN_002ab760(local_58,".data.rel.ro");" (assignment_expression "iVar6 = FUN_002ab760(local_58,".data.rel.ro")" identifier = (call_expression "FUN_002ab760(local_58,".data.rel.ro")" identifier (argument_list "(local_58,".data.rel.ro")" ( identifier , (string_literal "".data.rel.ro"" " string_content ") )))) ;) (if_statement "if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }" if (parenthesized_expression "(local_58[0] != auStack_48)" ( (binary_expression "local_58[0] != auStack_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      FUN_002a2980();\n    }" { (expression_statement "FUN_002a2980();" (call_expression "FUN_002a2980()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5d = iVar6 == 0;" (assignment_expression "local_5d = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) })) (if_statement "if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" if (parenthesized_expression "(plVar11[5] != 0)" ( (binary_expression "plVar11[5] != 0" (subscript_expression "plVar11[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" { (expression_statement "FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);" (call_expression "FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff)" identifier (argument_list "(plVar11[5] + 0x28,0xffffffffffffffff)" ( (binary_expression "plVar11[5] + 0x28" (subscript_expression "plVar11[5]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) })) (while_statement "while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }" while (parenthesized_expression "((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0)" ( (binary_expression "(uVar5 - 1 & *(uint *)(param_4 + 8)) != 0" (parenthesized_expression "(uVar5 - 1 & *(uint *)(param_4 + 8))" ( (binary_expression "uVar5 - 1 & *(uint *)(param_4 + 8)" (binary_expression "uVar5 - 1" identifier - number_literal) & (pointer_expression "*(uint *)(param_4 + 8)" * (cast_expression "(uint *)(param_4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) )) != number_literal) )) (compound_statement "{\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }" { (expression_statement "uVar10 = uVar10 >> 1;" (assignment_expression "uVar10 = uVar10 >> 1" identifier = (binary_expression "uVar10 >> 1" identifier >> number_literal)) ;) (expression_statement "uVar5 = (uint)uVar10;" (assignment_expression "uVar5 = (uint)uVar10" identifier = (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (if_statement "if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }" if (parenthesized_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_4 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_4 + 0x3a)" * (cast_expression "(byte *)((long)param_4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x3a)" ( (binary_expression "(long)param_4 + 0x3a" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }" { comment (expression_statement "FUN_00199900("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_00199900("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) (expression_statement "uVar10 = (ulong)uVar5;" (assignment_expression "uVar10 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;" (assignment_expression "*(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2" (pointer_expression "*(byte *)(param_4[2] + 0x3c)" * (cast_expression "(byte *)(param_4[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 0x3c)" ( (binary_expression "param_4[2] + 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) )))) = (binary_expression "*(byte *)(param_4[2] + 0x3c) | 2" (pointer_expression "*(byte *)(param_4[2] + 0x3c)" * (cast_expression "(byte *)(param_4[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 0x3c)" ( (binary_expression "param_4[2] + 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) )))) | number_literal)) ;) (if_statement "if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }" if (parenthesized_expression "(local_5d == '\0')" ( (binary_expression "local_5d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }" { (expression_statement "plVar11 = *(long **)(param_1 + 0x20);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x20)" identifier = (pointer_expression "*(long **)(param_1 + 0x20)" * (cast_expression "(long **)(param_1 + 0x20)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }" if (parenthesized_expression "(plVar11 == (long *)0x0)" ( (binary_expression "plVar11 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }" { (expression_statement "puVar9 = (undefined8 *)FUN_002a11b0(0x40);" (assignment_expression "puVar9 = (undefined8 *)FUN_002a11b0(0x40)" identifier = (cast_expression "(undefined8 *)FUN_002a11b0(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a11b0(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[6] = uVar10;" (assignment_expression "puVar9[6] = uVar10" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = 0;" (assignment_expression "puVar9[2] = 0" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0xffffffffffffffff;" (assignment_expression "puVar9[3] = 0xffffffffffffffff" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" * (cast_expression "(byte *)(puVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" * (cast_expression "(byte *)(puVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar9[5] = 0;" (assignment_expression "puVar9[5] = 0" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar9 = &PTR_FUN_003ebea8;" (assignment_expression "*puVar9 = &PTR_FUN_003ebea8" (pointer_expression "*puVar9" * identifier) = (pointer_expression "&PTR_FUN_003ebea8" & identifier)) ;) (expression_statement "puVar9[7] = "** dynbss";" (assignment_expression "puVar9[7] = "** dynbss"" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (string_literal ""** dynbss"" " string_content ")) ;) (expression_statement "*(undefined8 **)(param_1 + 0x20) = puVar9;" (assignment_expression "*(undefined8 **)(param_1 + 0x20) = puVar9" (pointer_expression "*(undefined8 **)(param_1 + 0x20)" * (cast_expression "(undefined8 **)(param_1 + 0x20)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);" (call_expression "FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0)" identifier (argument_list "(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0)" ( identifier , (pointer_expression "&DAT_0033f42c" & identifier) , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "plVar11 = *(long **)(param_1 + 0x20);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x20)" identifier = (pointer_expression "*(long **)(param_1 + 0x20)" * (cast_expression "(long **)(param_1 + 0x20)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }" else (compound_statement "{\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }" { (expression_statement "plVar11 = *(long **)(param_1 + 0x28);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x28)" identifier = (pointer_expression "*(long **)(param_1 + 0x28)" * (cast_expression "(long **)(param_1 + 0x28)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }" if (parenthesized_expression "(plVar11 == (long *)0x0)" ( (binary_expression "plVar11 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }" { (expression_statement "puVar9 = (undefined8 *)FUN_002a11b0(0x40);" (assignment_expression "puVar9 = (undefined8 *)FUN_002a11b0(0x40)" identifier = (cast_expression "(undefined8 *)FUN_002a11b0(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a11b0(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[6] = uVar10;" (assignment_expression "puVar9[6] = uVar10" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = 0;" (assignment_expression "puVar9[2] = 0" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0xffffffffffffffff;" (assignment_expression "puVar9[3] = 0xffffffffffffffff" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" * (cast_expression "(byte *)(puVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" * (cast_expression "(byte *)(puVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar9[5] = 0;" (assignment_expression "puVar9[5] = 0" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar9 = &PTR_FUN_003ebea8;" (assignment_expression "*puVar9 = &PTR_FUN_003ebea8" (pointer_expression "*puVar9" * identifier) = (pointer_expression "&PTR_FUN_003ebea8" & identifier)) ;) (expression_statement "puVar9[7] = "** dynrelro";" (assignment_expression "puVar9[7] = "** dynrelro"" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (string_literal ""** dynrelro"" " string_content ")) ;) (expression_statement "*(undefined8 **)(param_1 + 0x28) = puVar9;" (assignment_expression "*(undefined8 **)(param_1 + 0x28) = puVar9" (pointer_expression "*(undefined8 **)(param_1 + 0x28)" * (cast_expression "(undefined8 **)(param_1 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);" (call_expression "FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0)" identifier (argument_list "(param_3,".data.rel.ro",1,3,puVar9,0x13,0)" ( identifier , (string_literal "".data.rel.ro"" " string_content ") , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "plVar11 = *(long **)(param_1 + 0x28);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x28)" identifier = (pointer_expression "*(long **)(param_1 + 0x28)" * (cast_expression "(long **)(param_1 + 0x28)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) })) }))) (if_statement "if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }" if (parenthesized_expression "(*(code **)(*plVar11 + 0x18) == FUN_00168610)" ( (binary_expression "*(code **)(*plVar11 + 0x18) == FUN_00168610" (pointer_expression "*(code **)(*plVar11 + 0x18)" * (cast_expression "(code **)(*plVar11 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar11 + 0x18)" ( (binary_expression "*plVar11 + 0x18" (pointer_expression "*plVar11" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n    uVar7 = plVar11[6];\n  }" { (expression_statement "uVar7 = plVar11[6];" (assignment_expression "uVar7 = plVar11[6]" identifier = (subscript_expression "plVar11[6]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }" else (compound_statement "{\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }" { (expression_statement "uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);" (assignment_expression "uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11)" identifier = (call_expression "(**(code **)(*plVar11 + 0x18))(plVar11)" (parenthesized_expression "(**(code **)(*plVar11 + 0x18))" ( (pointer_expression "**(code **)(*plVar11 + 0x18)" * (pointer_expression "*(code **)(*plVar11 + 0x18)" * (cast_expression "(code **)(*plVar11 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar11 + 0x18)" ( (binary_expression "*plVar11 + 0x18" (pointer_expression "*plVar11" * identifier) + number_literal) ))))) )) (argument_list "(plVar11)" ( identifier )))) ;) }))) (if_statement "if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }" if (parenthesized_expression "(uVar7 < uVar10)" ( (binary_expression "uVar7 < uVar10" identifier < identifier) )) (compound_statement "{\n    FUN_001ee4b0(plVar11,uVar10);\n  }" { (expression_statement "FUN_001ee4b0(plVar11,uVar10);" (call_expression "FUN_001ee4b0(plVar11,uVar10)" identifier (argument_list "(plVar11,uVar10)" ( identifier , identifier ))) ;) })) (expression_statement "uVar7 = plVar11[2];" (assignment_expression "uVar7 = plVar11[2]" identifier = (subscript_expression "plVar11[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }" { (expression_statement "uVar7 = (uVar7 - 1) + uVar10 & -uVar10;" (assignment_expression "uVar7 = (uVar7 - 1) + uVar10 & -uVar10" identifier = (binary_expression "(uVar7 - 1) + uVar10 & -uVar10" (binary_expression "(uVar7 - 1) + uVar10" (parenthesized_expression "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-uVar10" - identifier))) ;) })) (if_statement "if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" if (parenthesized_expression "((*(byte *)(plVar11 + 4) & 2) != 0)" ( (binary_expression "(*(byte *)(plVar11 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(plVar11 + 4) & 2)" ( (binary_expression "*(byte *)(plVar11 + 4) & 2" (pointer_expression "*(byte *)(plVar11 + 4)" * (cast_expression "(byte *)(plVar11 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar11 + 4)" ( (binary_expression "plVar11 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" { comment (expression_statement "FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "plVar11[2] = local_5c + uVar7;" (assignment_expression "plVar11[2] = local_5c + uVar7" (subscript_expression "plVar11[2]" identifier [ number_literal ]) = (binary_expression "local_5c + uVar7" identifier + identifier)) ;) (expression_statement "FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);" (call_expression "FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6)" identifier (argument_list "(param_1,param_2,param_4,plVar11,uVar7,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: void make_copy_reloc(Copy_relocs<9,_32,_false> * this, Symbol_table *\n   symtab, Layout * layout, Sized_symbol<32> * sym, Sized_relobj_file<32,_false> * object,\n   Output_data_reloc<9,_true,_32,_false> * reloc_section) */\n\nvoid __thiscall\ngold::Copy_relocs<9,_32,_false>::make_copy_reloc\n          (Copy_relocs<9,_32,_false> *this,Symbol_table *symtab,Layout *layout,Sized_symbol<32> *sym\n          ,Sized_relobj_file<32,_false> *object,Output_data_reloc<9,_true,_32,_false> *reloc_section\n          )\n\n{\n  byte *pbVar1;\n  undefined1 *puVar2;\n  uint uVar3;\n  Output_segment *pOVar4;\n  Object *pOVar5;\n  _func_int_varargs *p_Var6;\n  pointer pcVar7;\n  char *pcVar8;\n  pointer ppOVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  char *format;\n  undefined4 extraout_var;\n  Output_data_space *pOVar13;\n  ulong uVar14;\n  ulong addralign;\n  char local_5d;\n  uint local_5c;\n  undefined1 *local_58 [2];\n  undefined1 auStack_48 [24];\n  \n  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((parameters->options_->copyreloc_).value == false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }\n  if ((((sym->super_Symbol).field_0x3a & 7) != 0) ||\n     (pOVar4 = (sym->super_Symbol).u1_.output_segment,\n     ((ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish & 0x100000000) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }\n  if (((sym->super_Symbol).field_0x3c & 8) == 0) {\n    local_5c = sym->symsize_;\n  }\n  else {\n    pcVar7 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n             _M_p;\n    pcVar8 = (sym->super_Symbol).name_;\n    ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n    format = (char *)gettext(\n                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"\n                            );\n    gold_error(format,pcVar7,pcVar8,ppOVar9);\n    local_5c = sym->symsize_;\n    if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }\n  uVar3 = (sym->super_Symbol).u2_.shndx;\n  if (((sym->super_Symbol).field_0x3b & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }\n  pOVar5 = (sym->super_Symbol).u1_.object;\n  if (pOVar5->input_file_ != (Input_file *)0x0) {\n    File_read::lock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);\n  }\n                    /* try { // try from 0018dd32 to 0018dd94 has its CatchHandler @ 0018e111 */\n  uVar10 = (*pOVar5->_vptr_Object[0x17])(pOVar5,uVar3);\n  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  local_5d = (parameters->options_->relro_).value;\n  if (((bool)local_5d != false) &&\n     (uVar11 = (*pOVar5->_vptr_Object[0x11])(pOVar5,uVar3), (uVar11 & 1) != 0)) {\n    (*pOVar5->_vptr_Object[0x10])((string *)local_58,pOVar5,uVar3);\n    iVar12 = std::string::compare((string *)local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      operator_delete(local_58[0]);\n    }\n    local_5d = iVar12 == 0;\n  }\n  if (pOVar5->input_file_ != (Input_file *)0x0) {\n    File_read::unlock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);\n  }\n  for (; (uVar10 - 1 & sym->value_) != 0; uVar10 = uVar10 >> 1) {\n  }\n  if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n  }\n  addralign = (ulong)uVar10;\n  pbVar1 = (byte *)((long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                           ._M_impl._M_finish + 4);\n  *pbVar1 = *pbVar1 | 2;\n  if (local_5d == '\0') {\n    pOVar13 = this->dynbss_;\n    if (pOVar13 == (Output_data_space *)0x0) {\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynbss";\n      this->dynbss_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".bss",8,3,(Output_section_data *)pOVar13,ORDER_BSS,false);\n      pOVar13 = this->dynbss_;\n    }\n  }\n  else {\n    pOVar13 = this->dynrelro_;\n    if (pOVar13 == (Output_data_space *)0x0) {\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynrelro";\n      this->dynrelro_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false);\n      pOVar13 = this->dynrelro_;\n    }\n  }\n  p_Var6 = (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           _vptr_Output_data[3];\n  if (p_Var6 == Output_section_data::do_addralign) {\n    uVar14 = (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_;\n  }\n  else {\n    iVar12 = (*p_Var6)(pOVar13);\n    uVar14 = CONCAT44(extraout_var,iVar12);\n  }\n  if (uVar14 < addralign) {\n    Output_section_data::set_addralign((Output_section_data *)pOVar13,addralign);\n  }\n  uVar14 = (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           data_size_;\n  if (uVar10 != 0) {\n    uVar14 = (uVar14 - 1) + addralign & -addralign;\n  }\n  if (((pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n       field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_\n       = local_5c + uVar14;\n  emit_copy_reloc(this,symtab,sym,(Output_data *)pOVar13,uVar14,reloc_section);\n  return;\n}\n\n" comment comment comment (declaration "void __thiscall\ngold::Copy_relocs<9,_32,_false>::make_copy_reloc\n          (Copy_relocs<9,_32,_false> *this,Symbol_table *symtab,Layout *layout,Sized_symbol<32> *sym\n          ,Sized_relobj_file<32,_false> *object,Output_data_reloc<9,_true,_32,_false> *reloc_section\n          )\n\n{\n  byte *pbVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<9" < number_literal) , identifier , (ERROR "_false>::make_copy_reloc\n          (Copy_relocs<9,_32,_false> *this,Symbol_table *symtab,Layout *layout,Sized_symbol<32> *sym\n          ,Sized_relobj_file<32,_false> *object,Output_data_reloc<9,_true,_32,_false> *reloc_section\n          )\n\n{\n  byte" identifier > : : (function_declarator "make_copy_reloc\n          (Copy_relocs<9,_32,_false> *this,Symbol_table *symtab,Layout *layout,Sized_symbol<32> *sym\n          ,Sized_relobj_file<32,_false> *object,Output_data_reloc<9,_true,_32,_false> *reloc_section\n          )" identifier (parameter_list "(Copy_relocs<9,_32,_false> *this,Symbol_table *symtab,Layout *layout,Sized_symbol<32> *sym\n          ,Sized_relobj_file<32,_false> *object,Output_data_reloc<9,_true,_32,_false> *reloc_section\n          )" ( (parameter_declaration "Copy_relocs" type_identifier) (ERROR "<9" < number_literal) , (parameter_declaration "_32" type_identifier) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Sized_symbol<32> *sym" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*sym" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *object" type_identifier (ERROR ">" >) (pointer_declarator "*object" * identifier)) , (parameter_declaration "Output_data_reloc" type_identifier) (ERROR "<9" < number_literal) , (parameter_declaration "_true" type_identifier) , (parameter_declaration "_32" type_identifier) , (parameter_declaration "_false> *reloc_section" type_identifier (ERROR ">" >) (pointer_declarator "*reloc_section" * identifier)) ))) { identifier) (pointer_declarator "*pbVar1" * identifier) ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "Output_segment *pOVar4;" type_identifier (pointer_declarator "*pOVar4" * identifier) ;) (declaration "Object *pOVar5;" type_identifier (pointer_declarator "*pOVar5" * identifier) ;) (declaration "_func_int_varargs *p_Var6;" type_identifier (pointer_declarator "*p_Var6" * identifier) ;) (declaration "pointer pcVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "pointer ppOVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (declaration "Output_data_space *pOVar13;" type_identifier (pointer_declarator "*pOVar13" * identifier) ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "ulong addralign;" type_identifier identifier ;) (declaration "char local_5d;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined1 *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_48 [24];" type_identifier (array_declarator "auStack_48 [24]" identifier [ number_literal ]) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment (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 ") ))) ;) })) (if_statement "if ((parameters->options_->copyreloc_).value == false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }" if (parenthesized_expression "((parameters->options_->copyreloc_).value == false)" ( (binary_expression "(parameters->options_->copyreloc_).value == false" (field_expression "(parameters->options_->copyreloc_).value" (parenthesized_expression "(parameters->options_->copyreloc_)" ( (field_expression "parameters->options_->copyreloc_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");" (call_expression "do_gold_unreachable("../../gold/copy-relocs.cc",0x76,"make_copy_reloc")" identifier (argument_list "("../../gold/copy-relocs.cc",0x76,"make_copy_reloc")" ( (string_literal ""../../gold/copy-relocs.cc"" " string_content ") , number_literal , (string_literal ""make_copy_reloc"" " string_content ") ))) ;) })) (if_statement "if ((((sym->super_Symbol).field_0x3a & 7) != 0) ||\n     (pOVar4 = (sym->super_Symbol).u1_.output_segment,\n     ((ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish & 0x100000000) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }" if (parenthesized_expression "((((sym->super_Symbol).field_0x3a & 7) != 0) ||\n     (pOVar4 = (sym->super_Symbol).u1_.output_segment,\n     ((ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish & 0x100000000) == 0))" ( (binary_expression "(((sym->super_Symbol).field_0x3a & 7) != 0) ||\n     (pOVar4 = (sym->super_Symbol).u1_.output_segment,\n     ((ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish & 0x100000000) == 0)" (parenthesized_expression "(((sym->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((sym->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(pOVar4 = (sym->super_Symbol).u1_.output_segment,\n     ((ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish & 0x100000000) == 0)" ( (comma_expression "pOVar4 = (sym->super_Symbol).u1_.output_segment,\n     ((ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish & 0x100000000) == 0" (assignment_expression "pOVar4 = (sym->super_Symbol).u1_.output_segment" identifier = (field_expression "(sym->super_Symbol).u1_.output_segment" (field_expression "(sym->super_Symbol).u1_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (binary_expression "((ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish & 0x100000000) == 0" (parenthesized_expression "((ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish & 0x100000000)" ( (binary_expression "(ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish & 0x100000000" (field_expression "(ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_finish" (field_expression "(ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)pOVar4->output_lists_[2].\n             super__Vector_base<gold" (cast_expression "(ulong)pOVar4->output_lists_[2].\n             super__Vector_base" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pOVar4->output_lists_[2].\n             super__Vector_base" (subscript_expression "pOVar4->output_lists_[2]" (field_expression "pOVar4->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");" (call_expression "do_gold_unreachable("../../gold/copy-relocs.cc",0x78,"make_copy_reloc")" identifier (argument_list "("../../gold/copy-relocs.cc",0x78,"make_copy_reloc")" ( (string_literal ""../../gold/copy-relocs.cc"" " string_content ") , number_literal , (string_literal ""make_copy_reloc"" " string_content ") ))) ;) })) (if_statement "if (((sym->super_Symbol).field_0x3c & 8) == 0) {\n    local_5c = sym->symsize_;\n  }\n  else {\n    pcVar7 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n             _M_p;\n    pcVar8 = (sym->super_Symbol).name_;\n    ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n    format = (char *)gettext(\n                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"\n                            );\n    gold_error(format,pcVar7,pcVar8,ppOVar9);\n    local_5c = sym->symsize_;\n    if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" if (parenthesized_expression "(((sym->super_Symbol).field_0x3c & 8) == 0)" ( (binary_expression "((sym->super_Symbol).field_0x3c & 8) == 0" (parenthesized_expression "((sym->super_Symbol).field_0x3c & 8)" ( (binary_expression "(sym->super_Symbol).field_0x3c & 8" (field_expression "(sym->super_Symbol).field_0x3c" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    local_5c = sym->symsize_;\n  }" { (expression_statement "local_5c = sym->symsize_;" (assignment_expression "local_5c = sym->symsize_" identifier = (field_expression "sym->symsize_" identifier -> field_identifier)) ;) }) (else_clause "else {\n    pcVar7 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n             _M_p;\n    pcVar8 = (sym->super_Symbol).name_;\n    ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n    format = (char *)gettext(\n                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"\n                            );\n    gold_error(format,pcVar7,pcVar8,ppOVar9);\n    local_5c = sym->symsize_;\n    if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" else (compound_statement "{\n    pcVar7 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n             _M_p;\n    pcVar8 = (sym->super_Symbol).name_;\n    ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n    format = (char *)gettext(\n                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"\n                            );\n    gold_error(format,pcVar7,pcVar8,ppOVar9);\n    local_5c = sym->symsize_;\n    if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" { (expression_statement "pcVar7 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n             _M_p;" (assignment_expression "pcVar7 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n             _M_p" identifier = (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n             _M_p" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar8 = (sym->super_Symbol).name_;" (assignment_expression "pcVar8 = (sym->super_Symbol).name_" identifier = (field_expression "(sym->super_Symbol).name_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;" (field_expression "ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish" (field_expression "ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar9 = pOVar4->output_lists_[0].\n              super__Vector_base<gold" identifier = (binary_expression "pOVar4->output_lists_[0].\n              super__Vector_base<gold" (field_expression "pOVar4->output_lists_[0].\n              super__Vector_base" (subscript_expression "pOVar4->output_lists_[0]" (field_expression "pOVar4->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "format = (char *)gettext(\n                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"\n                            );" (assignment_expression "format = (char *)gettext(\n                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"\n                            )" identifier = (cast_expression "(char *)gettext(\n                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"\n                            )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"\n                            )" identifier (argument_list "(\n                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"\n                            )" ( (string_literal ""%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"" " string_content escape_sequence string_content escape_sequence string_content ") ))))) ;) (expression_statement "gold_error(format,pcVar7,pcVar8,ppOVar9);" (call_expression "gold_error(format,pcVar7,pcVar8,ppOVar9)" identifier (argument_list "(format,pcVar7,pcVar8,ppOVar9)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_5c = sym->symsize_;" (assignment_expression "local_5c = sym->symsize_" identifier = (field_expression "sym->symsize_" identifier -> field_identifier)) ;) (if_statement "if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }" if (parenthesized_expression "(((sym->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((sym->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) }))) (expression_statement "uVar3 = (sym->super_Symbol).u2_.shndx;" (assignment_expression "uVar3 = (sym->super_Symbol).u2_.shndx" identifier = (field_expression "(sym->super_Symbol).u2_.shndx" (field_expression "(sym->super_Symbol).u2_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (((sym->super_Symbol).field_0x3b & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }" if (parenthesized_expression "(((sym->super_Symbol).field_0x3b & 0x20) == 0)" ( (binary_expression "((sym->super_Symbol).field_0x3b & 0x20) == 0" (parenthesized_expression "((sym->super_Symbol).field_0x3b & 0x20)" ( (binary_expression "(sym->super_Symbol).field_0x3b & 0x20" (field_expression "(sym->super_Symbol).field_0x3b" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");" (call_expression "do_gold_unreachable("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc")" identifier (argument_list "("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc")" ( (string_literal ""../../gold/copy-relocs.cc"" " string_content ") , number_literal , (string_literal ""make_copy_reloc"" " string_content ") ))) ;) })) (expression_statement "pOVar5 = (sym->super_Symbol).u1_.object;" (assignment_expression "pOVar5 = (sym->super_Symbol).u1_.object" identifier = (field_expression "(sym->super_Symbol).u1_.object" (field_expression "(sym->super_Symbol).u1_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (pOVar5->input_file_ != (Input_file *)0x0) {\n    File_read::lock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);\n  }" if (parenthesized_expression "(pOVar5->input_file_ != (Input_file *)0x0)" ( (binary_expression "pOVar5->input_file_ != (Input_file *)0x0" (field_expression "pOVar5->input_file_" identifier -> field_identifier) != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    File_read::lock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);\n  }" { (labeled_statement "File_read::lock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);" statement_identifier : (ERROR ":" :) (expression_statement "lock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);" (call_expression "lock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff)" identifier (argument_list "(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff)" ( (pointer_expression "&pOVar5->input_file_->file_" & (field_expression "pOVar5->input_file_->file_" (field_expression "pOVar5->input_file_" identifier -> field_identifier) -> field_identifier)) , (cast_expression "(Task *)0xffffffffffffffff" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) })) comment (expression_statement "uVar10 = (*pOVar5->_vptr_Object[0x17])(pOVar5,uVar3);" (assignment_expression "uVar10 = (*pOVar5->_vptr_Object[0x17])(pOVar5,uVar3)" identifier = (call_expression "(*pOVar5->_vptr_Object[0x17])(pOVar5,uVar3)" (parenthesized_expression "(*pOVar5->_vptr_Object[0x17])" ( (pointer_expression "*pOVar5->_vptr_Object[0x17]" * (subscript_expression "pOVar5->_vptr_Object[0x17]" (field_expression "pOVar5->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar5,uVar3)" ( identifier , identifier )))) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "local_5d = (parameters->options_->relro_).value;" (assignment_expression "local_5d = (parameters->options_->relro_).value" identifier = (field_expression "(parameters->options_->relro_).value" (parenthesized_expression "(parameters->options_->relro_)" ( (field_expression "parameters->options_->relro_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((bool)local_5d != false) &&\n     (uVar11 = (*pOVar5->_vptr_Object[0x11])(pOVar5,uVar3), (uVar11 & 1) != 0)) {\n    (*pOVar5->_vptr_Object[0x10])((string *)local_58,pOVar5,uVar3);\n    iVar12 = std::string::compare((string *)local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      operator_delete(local_58[0]);\n    }\n    local_5d = iVar12 == 0;\n  }" if (parenthesized_expression "(((bool)local_5d != false) &&\n     (uVar11 = (*pOVar5->_vptr_Object[0x11])(pOVar5,uVar3), (uVar11 & 1) != 0))" ( (binary_expression "((bool)local_5d != false) &&\n     (uVar11 = (*pOVar5->_vptr_Object[0x11])(pOVar5,uVar3), (uVar11 & 1) != 0)" (parenthesized_expression "((bool)local_5d != false)" ( (binary_expression "(bool)local_5d != false" (cast_expression "(bool)local_5d" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) && (parenthesized_expression "(uVar11 = (*pOVar5->_vptr_Object[0x11])(pOVar5,uVar3), (uVar11 & 1) != 0)" ( (comma_expression "uVar11 = (*pOVar5->_vptr_Object[0x11])(pOVar5,uVar3), (uVar11 & 1) != 0" (assignment_expression "uVar11 = (*pOVar5->_vptr_Object[0x11])(pOVar5,uVar3)" identifier = (call_expression "(*pOVar5->_vptr_Object[0x11])(pOVar5,uVar3)" (parenthesized_expression "(*pOVar5->_vptr_Object[0x11])" ( (pointer_expression "*pOVar5->_vptr_Object[0x11]" * (subscript_expression "pOVar5->_vptr_Object[0x11]" (field_expression "pOVar5->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar5,uVar3)" ( identifier , identifier )))) , (binary_expression "(uVar11 & 1) != 0" (parenthesized_expression "(uVar11 & 1)" ( (binary_expression "uVar11 & 1" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n    (*pOVar5->_vptr_Object[0x10])((string *)local_58,pOVar5,uVar3);\n    iVar12 = std::string::compare((string *)local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      operator_delete(local_58[0]);\n    }\n    local_5d = iVar12 == 0;\n  }" { (expression_statement "(*pOVar5->_vptr_Object[0x10])((string *)local_58,pOVar5,uVar3);" (call_expression "(*pOVar5->_vptr_Object[0x10])((string *)local_58,pOVar5,uVar3)" (parenthesized_expression "(*pOVar5->_vptr_Object[0x10])" ( (pointer_expression "*pOVar5->_vptr_Object[0x10]" * (subscript_expression "pOVar5->_vptr_Object[0x10]" (field_expression "pOVar5->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "((string *)local_58,pOVar5,uVar3)" ( (cast_expression "(string *)local_58" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;) (ERROR "iVar12 = std::" (assignment_expression "iVar12 = std" identifier = identifier) : :) (labeled_statement "string::compare((string *)local_58,".data.rel.ro");" statement_identifier : (ERROR ":" :) (expression_statement "compare((string *)local_58,".data.rel.ro");" (call_expression "compare((string *)local_58,".data.rel.ro")" identifier (argument_list "((string *)local_58,".data.rel.ro")" ( (cast_expression "(string *)local_58" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal "".data.rel.ro"" " string_content ") ))) ;)) (if_statement "if (local_58[0] != auStack_48) {\n      operator_delete(local_58[0]);\n    }" if (parenthesized_expression "(local_58[0] != auStack_48)" ( (binary_expression "local_58[0] != auStack_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      operator_delete(local_58[0]);\n    }" { (expression_statement "operator_delete(local_58[0]);" (call_expression "operator_delete(local_58[0])" identifier (argument_list "(local_58[0])" ( (subscript_expression "local_58[0]" identifier [ number_literal ]) ))) ;) })) (expression_statement "local_5d = iVar12 == 0;" (assignment_expression "local_5d = iVar12 == 0" identifier = (binary_expression "iVar12 == 0" identifier == number_literal)) ;) })) (if_statement "if (pOVar5->input_file_ != (Input_file *)0x0) {\n    File_read::unlock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);\n  }" if (parenthesized_expression "(pOVar5->input_file_ != (Input_file *)0x0)" ( (binary_expression "pOVar5->input_file_ != (Input_file *)0x0" (field_expression "pOVar5->input_file_" identifier -> field_identifier) != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    File_read::unlock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);\n  }" { (labeled_statement "File_read::unlock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);" statement_identifier : (ERROR ":" :) (expression_statement "unlock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff);" (call_expression "unlock(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff)" identifier (argument_list "(&pOVar5->input_file_->file_,(Task *)0xffffffffffffffff)" ( (pointer_expression "&pOVar5->input_file_->file_" & (field_expression "pOVar5->input_file_->file_" (field_expression "pOVar5->input_file_" identifier -> field_identifier) -> field_identifier)) , (cast_expression "(Task *)0xffffffffffffffff" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) })) (for_statement "for (; (uVar10 - 1 & sym->value_) != 0; uVar10 = uVar10 >> 1) {\n  }" for ( ; (binary_expression "(uVar10 - 1 & sym->value_) != 0" (parenthesized_expression "(uVar10 - 1 & sym->value_)" ( (binary_expression "uVar10 - 1 & sym->value_" (binary_expression "uVar10 - 1" identifier - number_literal) & (field_expression "sym->value_" identifier -> field_identifier)) )) != number_literal) ; (assignment_expression "uVar10 = uVar10 >> 1" identifier = (binary_expression "uVar10 >> 1" identifier >> number_literal)) ) (compound_statement "{\n  }" { })) (if_statement "if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n  }" if (parenthesized_expression "(((sym->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((sym->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xa1,"object");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) (expression_statement "addralign = (ulong)uVar10;" (assignment_expression "addralign = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pbVar1 = (byte *)((long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                           ._M_impl._M_finish + 4);" (assignment_expression "pbVar1 = (byte *)((long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                           ._M_impl._M_finish + 4)" identifier = (cast_expression "(byte *)((long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                           ._M_impl._M_finish + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                           ._M_impl._M_finish + 4)" ( (binary_expression "(long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                           ._M_impl._M_finish + 4" (field_expression "(long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                           ._M_impl._M_finish" (field_expression "(long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                           ._M_impl" (binary_expression "(long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold::Output_data*,_std" (binary_expression "(long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base<gold" (cast_expression "(long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base" & (field_expression "((sym->super_Symbol).u1_.output_segment)->output_lists_[2].\n                           super__Vector_base" (subscript_expression "((sym->super_Symbol).u1_.output_segment)->output_lists_[2]" (field_expression "((sym->super_Symbol).u1_.output_segment)->output_lists_" (parenthesized_expression "((sym->super_Symbol).u1_.output_segment)" ( (field_expression "(sym->super_Symbol).u1_.output_segment" (field_expression "(sym->super_Symbol).u1_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier))) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 | 2;" (assignment_expression "*pbVar1 = *pbVar1 | 2" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 | 2" (pointer_expression "*pbVar1" * identifier) | number_literal)) ;) (if_statement "if (local_5d == '\0') {\n    pOVar13 = this->dynbss_;\n    if (pOVar13 == (Output_data_space *)0x0) {\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynbss";\n      this->dynbss_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".bss",8,3,(Output_section_data *)pOVar13,ORDER_BSS,false);\n      pOVar13 = this->dynbss_;\n    }\n  }\n  else {\n    pOVar13 = this->dynrelro_;\n    if (pOVar13 == (Output_data_space *)0x0) {\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynrelro";\n      this->dynrelro_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false);\n      pOVar13 = this->dynrelro_;\n    }\n  }" if (parenthesized_expression "(local_5d == '\0')" ( (binary_expression "local_5d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pOVar13 = this->dynbss_;\n    if (pOVar13 == (Output_data_space *)0x0) {\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynbss";\n      this->dynbss_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".bss",8,3,(Output_section_data *)pOVar13,ORDER_BSS,false);\n      pOVar13 = this->dynbss_;\n    }\n  }" { (expression_statement "pOVar13 = this->dynbss_;" (assignment_expression "pOVar13 = this->dynbss_" identifier = (field_expression "this->dynbss_" identifier -> field_identifier)) ;) (if_statement "if (pOVar13 == (Output_data_space *)0x0) {\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynbss";\n      this->dynbss_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".bss",8,3,(Output_section_data *)pOVar13,ORDER_BSS,false);\n      pOVar13 = this->dynbss_;\n    }" if (parenthesized_expression "(pOVar13 == (Output_data_space *)0x0)" ( (binary_expression "pOVar13 == (Output_data_space *)0x0" identifier == (cast_expression "(Output_data_space *)0x0" ( (type_descriptor "Output_data_space *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynbss";\n      this->dynbss_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".bss",8,3,(Output_section_data *)pOVar13,ORDER_BSS,false);\n      pOVar13 = this->dynbss_;\n    }" { (expression_statement "pOVar13 = (Output_data_space *)operator_new(0x40);" (assignment_expression "pOVar13 = (Output_data_space *)operator_new(0x40)" identifier = (cast_expression "(Output_data_space *)operator_new(0x40)" ( (type_descriptor "Output_data_space *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;" (assignment_expression "puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20" identifier = (pointer_expression "&(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20" & (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "*puVar2 = *puVar2 & 0xe0;" (assignment_expression "*puVar2 = *puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) & number_literal)) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_space_003ebea8" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_space_003ebea8" & identifier))) ;) (expression_statement "pOVar13->map_name_ = "** dynbss";" (assignment_expression "pOVar13->map_name_ = "** dynbss"" (field_expression "pOVar13->map_name_" identifier -> field_identifier) = (string_literal ""** dynbss"" " string_content ")) ;) (expression_statement "this->dynbss_ = pOVar13;" (assignment_expression "this->dynbss_ = pOVar13" (field_expression "this->dynbss_" identifier -> field_identifier) = identifier) ;) (labeled_statement "Layout::add_output_section_data\n                (layout,".bss",8,3,(Output_section_data *)pOVar13,ORDER_BSS,false);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data\n                (layout,".bss",8,3,(Output_section_data *)pOVar13,ORDER_BSS,false);" (call_expression "add_output_section_data\n                (layout,".bss",8,3,(Output_section_data *)pOVar13,ORDER_BSS,false)" identifier (argument_list "(layout,".bss",8,3,(Output_section_data *)pOVar13,ORDER_BSS,false)" ( identifier , (string_literal "".bss"" " string_content ") , number_literal , number_literal , (cast_expression "(Output_section_data *)pOVar13" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , false ))) ;)) (expression_statement "pOVar13 = this->dynbss_;" (assignment_expression "pOVar13 = this->dynbss_" identifier = (field_expression "this->dynbss_" identifier -> field_identifier)) ;) })) }) (else_clause "else {\n    pOVar13 = this->dynrelro_;\n    if (pOVar13 == (Output_data_space *)0x0) {\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynrelro";\n      this->dynrelro_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false);\n      pOVar13 = this->dynrelro_;\n    }\n  }" else (compound_statement "{\n    pOVar13 = this->dynrelro_;\n    if (pOVar13 == (Output_data_space *)0x0) {\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynrelro";\n      this->dynrelro_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false);\n      pOVar13 = this->dynrelro_;\n    }\n  }" { (expression_statement "pOVar13 = this->dynrelro_;" (assignment_expression "pOVar13 = this->dynrelro_" identifier = (field_expression "this->dynrelro_" identifier -> field_identifier)) ;) (if_statement "if (pOVar13 == (Output_data_space *)0x0) {\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynrelro";\n      this->dynrelro_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false);\n      pOVar13 = this->dynrelro_;\n    }" if (parenthesized_expression "(pOVar13 == (Output_data_space *)0x0)" ( (binary_expression "pOVar13 == (Output_data_space *)0x0" identifier == (cast_expression "(Output_data_space *)0x0" ( (type_descriptor "Output_data_space *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pOVar13 = (Output_data_space *)operator_new(0x40);\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;\n      puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;\n      *puVar2 = *puVar2 & 0xe0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;\n      (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;\n      pOVar13->map_name_ = "** dynrelro";\n      this->dynrelro_ = pOVar13;\n      Layout::add_output_section_data\n                (layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false);\n      pOVar13 = this->dynrelro_;\n    }" { (expression_statement "pOVar13 = (Output_data_space *)operator_new(0x40);" (assignment_expression "pOVar13 = (Output_data_space *)operator_new(0x40)" identifier = (cast_expression "(Output_data_space *)operator_new(0x40)" ( (type_descriptor "Output_data_space *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_ = 0" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      address_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_ = addralign" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_ = 0" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      data_size_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_\n           = -1" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20;" (assignment_expression "puVar2 = &(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20" identifier = (pointer_expression "&(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20" & (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data.field_0x20" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.\n                super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "*puVar2 = *puVar2 & 0xe0;" (assignment_expression "*puVar2 = *puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 & 0xe0" (pointer_expression "*puVar2" * identifier) & number_literal)) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_ =\n           (Output_section *)0x0" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.output_section_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data = (_func_int_varargs **)&PTR__Output_data_space_003ebea8" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n      _vptr_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_space_003ebea8" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_space_003ebea8" & identifier))) ;) (expression_statement "pOVar13->map_name_ = "** dynrelro";" (assignment_expression "pOVar13->map_name_ = "** dynrelro"" (field_expression "pOVar13->map_name_" identifier -> field_identifier) = (string_literal ""** dynrelro"" " string_content ")) ;) (expression_statement "this->dynrelro_ = pOVar13;" (assignment_expression "this->dynrelro_ = pOVar13" (field_expression "this->dynrelro_" identifier -> field_identifier) = identifier) ;) (labeled_statement "Layout::add_output_section_data\n                (layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data\n                (layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false);" (call_expression "add_output_section_data\n                (layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false)" identifier (argument_list "(layout,".data.rel.ro",1,3,(Output_section_data *)pOVar13,ORDER_RELRO,false)" ( identifier , (string_literal "".data.rel.ro"" " string_content ") , number_literal , number_literal , (cast_expression "(Output_section_data *)pOVar13" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , false ))) ;)) (expression_statement "pOVar13 = this->dynrelro_;" (assignment_expression "pOVar13 = this->dynrelro_" identifier = (field_expression "this->dynrelro_" identifier -> field_identifier)) ;) })) }))) (expression_statement "p_Var6 = (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           _vptr_Output_data[3];" (assignment_expression "p_Var6 = (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           _vptr_Output_data[3]" identifier = (subscript_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           _vptr_Output_data[3]" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           _vptr_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var6 == Output_section_data::do_addralign) {\n    uVar14 = (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_;\n  }\n  else {\n    iVar12 = (*p_Var6)(pOVar13);\n    uVar14 = CONCAT44(extraout_var,iVar12);\n  }" if (parenthesized_expression "(p_Var6 == Output_section_data::do_addralign)" ( (binary_expression "p_Var6 == Output_section_data" identifier == identifier) (ERROR "::do_addralign" : : identifier) )) (compound_statement "{\n    uVar14 = (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_;\n  }" { (expression_statement "uVar14 = (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_;" (assignment_expression "uVar14 = (pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_" identifier = (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.addralign_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n    iVar12 = (*p_Var6)(pOVar13);\n    uVar14 = CONCAT44(extraout_var,iVar12);\n  }" else (compound_statement "{\n    iVar12 = (*p_Var6)(pOVar13);\n    uVar14 = CONCAT44(extraout_var,iVar12);\n  }" { (expression_statement "iVar12 = (*p_Var6)(pOVar13);" (assignment_expression "iVar12 = (*p_Var6)(pOVar13)" identifier = (call_expression "(*p_Var6)(pOVar13)" (parenthesized_expression "(*p_Var6)" ( (pointer_expression "*p_Var6" * identifier) )) (argument_list "(pOVar13)" ( identifier )))) ;) (expression_statement "uVar14 = CONCAT44(extraout_var,iVar12);" (assignment_expression "uVar14 = CONCAT44(extraout_var,iVar12)" identifier = (call_expression "CONCAT44(extraout_var,iVar12)" identifier (argument_list "(extraout_var,iVar12)" ( identifier , identifier )))) ;) }))) (if_statement "if (uVar14 < addralign) {\n    Output_section_data::set_addralign((Output_section_data *)pOVar13,addralign);\n  }" if (parenthesized_expression "(uVar14 < addralign)" ( (binary_expression "uVar14 < addralign" identifier < identifier) )) (compound_statement "{\n    Output_section_data::set_addralign((Output_section_data *)pOVar13,addralign);\n  }" { (labeled_statement "Output_section_data::set_addralign((Output_section_data *)pOVar13,addralign);" statement_identifier : (ERROR ":" :) (expression_statement "set_addralign((Output_section_data *)pOVar13,addralign);" (call_expression "set_addralign((Output_section_data *)pOVar13,addralign)" identifier (argument_list "((Output_section_data *)pOVar13,addralign)" ( (cast_expression "(Output_section_data *)pOVar13" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;)) })) (expression_statement "uVar14 = (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           data_size_;" (assignment_expression "uVar14 = (pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           data_size_" identifier = (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n           data_size_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (uVar10 != 0) {\n    uVar14 = (uVar14 - 1) + addralign & -addralign;\n  }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar14 = (uVar14 - 1) + addralign & -addralign;\n  }" { (expression_statement "uVar14 = (uVar14 - 1) + addralign & -addralign;" (assignment_expression "uVar14 = (uVar14 - 1) + addralign & -addralign" identifier = (binary_expression "(uVar14 - 1) + addralign & -addralign" (binary_expression "(uVar14 - 1) + addralign" (parenthesized_expression "(uVar14 - 1)" ( (binary_expression "uVar14 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-addralign" - identifier))) ;) })) (if_statement "if (((pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n       field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" if (parenthesized_expression "(((pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n       field_0x20 & 2) != 0)" ( (binary_expression "((pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n       field_0x20 & 2) != 0" (parenthesized_expression "((pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n       field_0x20 & 2)" ( (binary_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n       field_0x20 & 2" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n       field_0x20" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_\n       = local_5c + uVar14;" (assignment_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_\n       = local_5c + uVar14" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar13->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar13->super_Output_section_data_build)" ( (field_expression "pOVar13->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "local_5c + uVar14" identifier + identifier)) ;) (expression_statement "emit_copy_reloc(this,symtab,sym,(Output_data *)pOVar13,uVar14,reloc_section);" (call_expression "emit_copy_reloc(this,symtab,sym,(Output_data *)pOVar13,uVar14,reloc_section)" identifier (argument_list "(this,symtab,sym,(Output_data *)pOVar13,uVar14,reloc_section)" ( identifier , identifier , identifier , (cast_expression "(Output_data *)pOVar13" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_0018dc90(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  undefined8 *puVar9;\n  ulong uVar10;\n  long *plVar11;\n  char local_5d;\n  uint local_5c;\n  undefined1 *local_58 [2];\n  undefined1 auStack_48 [24];\n  \n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }\n  if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }\n  if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }\n  uVar1 = *(undefined4 *)(param_4 + 3);\n  if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }\n  plVar11 = (long *)param_4[2];\n  if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n                    \n  uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);\n  uVar10 = (ulong)uVar5;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);\n  if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }\n  if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n  while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }\n  if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }\n  uVar10 = (ulong)uVar5;\n  *(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;\n  if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }\n  if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }\n  if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }\n  uVar7 = plVar11[2];\n  if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }\n  if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    \n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  plVar11[2] = local_5c + uVar7;\n  FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);\n  return;\n}\n\n" (function_definition "void FUN_0018dc90(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  undefined8 *puVar9;\n  ulong uVar10;\n  long *plVar11;\n  char local_5d;\n  uint local_5c;\n  undefined1 *local_58 [2];\n  undefined1 auStack_48 [24];\n  \n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }\n  if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }\n  if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }\n  uVar1 = *(undefined4 *)(param_4 + 3);\n  if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }\n  plVar11 = (long *)param_4[2];\n  if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n                    \n  uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);\n  uVar10 = (ulong)uVar5;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);\n  if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }\n  if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n  while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }\n  if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }\n  uVar10 = (ulong)uVar5;\n  *(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;\n  if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }\n  if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }\n  if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }\n  uVar7 = plVar11[2];\n  if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }\n  if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    \n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  plVar11[2] = local_5c + uVar7;\n  FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);\n  return;\n}" primitive_type (function_declarator "FUN_0018dc90(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  undefined8 *puVar9;\n  ulong uVar10;\n  long *plVar11;\n  char local_5d;\n  uint local_5c;\n  undefined1 *local_58 [2];\n  undefined1 auStack_48 [24];\n  \n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }\n  if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }\n  if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }\n  uVar1 = *(undefined4 *)(param_4 + 3);\n  if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }\n  plVar11 = (long *)param_4[2];\n  if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n                    \n  uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);\n  uVar10 = (ulong)uVar5;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);\n  if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }\n  if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n  while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }\n  if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }\n  uVar10 = (ulong)uVar5;\n  *(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;\n  if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }\n  if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }\n  if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }\n  uVar7 = plVar11[2];\n  if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }\n  if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    \n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  plVar11[2] = local_5c + uVar7;\n  FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "char local_5d;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined1 *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_48 [24];" type_identifier (array_declarator "auStack_48 [24]" identifier [ number_literal ]) ;) (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../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 ") ))) ;) })) (if_statement "if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619)" * (cast_expression "(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }" { (expression_statement "FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");" (call_expression "FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc")" identifier (argument_list "("../../gold/copy-relocs.cc",0x76,"make_copy_reloc")" ( (string_literal ""../../gold/copy-relocs.cc"" " string_content ") , number_literal , (string_literal ""make_copy_reloc"" " string_content ") ))) ;) })) (if_statement "if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }" if (parenthesized_expression "(((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0))" ( (binary_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)" (parenthesized_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_4 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_4 + 0x3a)" * (cast_expression "(byte *)((long)param_4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x3a)" ( (binary_expression "(long)param_4 + 0x3a" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)(param_4[2] + 0x3c) & 1) == 0)" ( (binary_expression "(*(byte *)(param_4[2] + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_4[2] + 0x3c) & 1)" ( (binary_expression "*(byte *)(param_4[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_4[2] + 0x3c)" * (cast_expression "(byte *)(param_4[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 0x3c)" ( (binary_expression "param_4[2] + 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }" { (expression_statement "FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");" (call_expression "FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc")" identifier (argument_list "("../../gold/copy-relocs.cc",0x78,"make_copy_reloc")" ( (string_literal ""../../gold/copy-relocs.cc"" " string_content ") , number_literal , (string_literal ""make_copy_reloc"" " string_content ") ))) ;) })) (if_statement "if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" if (parenthesized_expression "((*(byte *)((long)param_4 + 0x3c) & 8) == 0)" ( (binary_expression "(*(byte *)((long)param_4 + 0x3c) & 8) == 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3c) & 8)" ( (binary_expression "*(byte *)((long)param_4 + 0x3c) & 8" (pointer_expression "*(byte *)((long)param_4 + 0x3c)" * (cast_expression "(byte *)((long)param_4 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x3c)" ( (binary_expression "(long)param_4 + 0x3c" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }" { (expression_statement "local_5c = *(uint *)((long)param_4 + 0x44);" (assignment_expression "local_5c = *(uint *)((long)param_4 + 0x44)" identifier = (pointer_expression "*(uint *)((long)param_4 + 0x44)" * (cast_expression "(uint *)((long)param_4 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x44)" ( (binary_expression "(long)param_4 + 0x44" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" else (compound_statement "{\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" { (expression_statement "uVar2 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar2 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *param_4;" (assignment_expression "uVar3 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "uVar4 = *(undefined8 *)(param_4[2] + 8);" (assignment_expression "uVar4 = *(undefined8 *)(param_4[2] + 8)" identifier = (pointer_expression "*(undefined8 *)(param_4[2] + 8)" * (cast_expression "(undefined8 *)(param_4[2] + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 8)" ( (binary_expression "param_4[2] + 8" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");" (assignment_expression "uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s")" identifier = (call_expression "gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s")" identifier (argument_list "("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s")" ( (string_literal ""%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_00191870(uVar8,uVar2,uVar3,uVar4);" (call_expression "FUN_00191870(uVar8,uVar2,uVar3,uVar4)" identifier (argument_list "(uVar8,uVar2,uVar3,uVar4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_5c = *(uint *)((long)param_4 + 0x44);" (assignment_expression "local_5c = *(uint *)((long)param_4 + 0x44)" identifier = (pointer_expression "*(uint *)((long)param_4 + 0x44)" * (cast_expression "(uint *)((long)param_4 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x44)" ( (binary_expression "(long)param_4 + 0x44" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }" if (parenthesized_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_4 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_4 + 0x3a)" * (cast_expression "(byte *)((long)param_4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x3a)" ( (binary_expression "(long)param_4 + 0x3a" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }" { (expression_statement "FUN_00199900("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_00199900("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) }))) (expression_statement "uVar1 = *(undefined4 *)(param_4 + 3);" (assignment_expression "uVar1 = *(undefined4 *)(param_4 + 3)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 3)" * (cast_expression "(undefined4 *)(param_4 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 3)" ( (binary_expression "param_4 + 3" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }" if (parenthesized_expression "((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)((long)param_4 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)((long)param_4 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)param_4 + 0x3b)" * (cast_expression "(byte *)((long)param_4 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x3b)" ( (binary_expression "(long)param_4 + 0x3b" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }" { (expression_statement "FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");" (call_expression "FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc")" identifier (argument_list "("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc")" ( (string_literal ""../../gold/copy-relocs.cc"" " string_content ") , number_literal , (string_literal ""make_copy_reloc"" " string_content ") ))) ;) })) (expression_statement "plVar11 = (long *)param_4[2];" (assignment_expression "plVar11 = (long *)param_4[2]" identifier = (cast_expression "(long *)param_4[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ]))) ;) (if_statement "if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" if (parenthesized_expression "(plVar11[5] != 0)" ( (binary_expression "plVar11[5] != 0" (subscript_expression "plVar11[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" { (expression_statement "FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);" (call_expression "FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff)" identifier (argument_list "(plVar11[5] + 0x28,0xffffffffffffffff)" ( (binary_expression "plVar11[5] + 0x28" (subscript_expression "plVar11[5]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) })) (expression_statement "uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);" (assignment_expression "uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1)" identifier = (call_expression "(**(code **)(*plVar11 + 0xb8))(plVar11,uVar1)" (parenthesized_expression "(**(code **)(*plVar11 + 0xb8))" ( (pointer_expression "**(code **)(*plVar11 + 0xb8)" * (pointer_expression "*(code **)(*plVar11 + 0xb8)" * (cast_expression "(code **)(*plVar11 + 0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar11 + 0xb8)" ( (binary_expression "*plVar11 + 0xb8" (pointer_expression "*plVar11" * identifier) + number_literal) ))))) )) (argument_list "(plVar11,uVar1)" ( identifier , identifier )))) ;) (expression_statement "uVar10 = (ulong)uVar5;" (assignment_expression "uVar10 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);" (assignment_expression "local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" identifier = (pointer_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" * (cast_expression "(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" ( (binary_expression "PTR_DAT_003f85c0 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }" if (parenthesized_expression "((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0))" ( (binary_expression "(local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)" (parenthesized_expression "(local_5d != '\0')" ( (binary_expression "local_5d != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)" ( (comma_expression "uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0" (assignment_expression "uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1)" identifier = (call_expression "(**(code **)(*plVar11 + 0x88))(plVar11,uVar1)" (parenthesized_expression "(**(code **)(*plVar11 + 0x88))" ( (pointer_expression "**(code **)(*plVar11 + 0x88)" * (pointer_expression "*(code **)(*plVar11 + 0x88)" * (cast_expression "(code **)(*plVar11 + 0x88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar11 + 0x88)" ( (binary_expression "*plVar11 + 0x88" (pointer_expression "*plVar11" * identifier) + number_literal) ))))) )) (argument_list "(plVar11,uVar1)" ( identifier , identifier )))) , (binary_expression "(uVar7 & 1) != 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }" { (expression_statement "(**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);" (call_expression "(**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1)" (parenthesized_expression "(**(code **)(*plVar11 + 0x80))" ( (pointer_expression "**(code **)(*plVar11 + 0x80)" * (pointer_expression "*(code **)(*plVar11 + 0x80)" * (cast_expression "(code **)(*plVar11 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar11 + 0x80)" ( (binary_expression "*plVar11 + 0x80" (pointer_expression "*plVar11" * identifier) + number_literal) ))))) )) (argument_list "(local_58,plVar11,uVar1)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = FUN_002ab760(local_58,".data.rel.ro");" (assignment_expression "iVar6 = FUN_002ab760(local_58,".data.rel.ro")" identifier = (call_expression "FUN_002ab760(local_58,".data.rel.ro")" identifier (argument_list "(local_58,".data.rel.ro")" ( identifier , (string_literal "".data.rel.ro"" " string_content ") )))) ;) (if_statement "if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }" if (parenthesized_expression "(local_58[0] != auStack_48)" ( (binary_expression "local_58[0] != auStack_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      FUN_002a2980();\n    }" { (expression_statement "FUN_002a2980();" (call_expression "FUN_002a2980()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5d = iVar6 == 0;" (assignment_expression "local_5d = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) })) (if_statement "if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" if (parenthesized_expression "(plVar11[5] != 0)" ( (binary_expression "plVar11[5] != 0" (subscript_expression "plVar11[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" { (expression_statement "FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);" (call_expression "FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff)" identifier (argument_list "(plVar11[5] + 0x28,0xffffffffffffffff)" ( (binary_expression "plVar11[5] + 0x28" (subscript_expression "plVar11[5]" identifier [ number_literal ]) + number_literal) , number_literal ))) ;) })) (while_statement "while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }" while (parenthesized_expression "((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0)" ( (binary_expression "(uVar5 - 1 & *(uint *)(param_4 + 8)) != 0" (parenthesized_expression "(uVar5 - 1 & *(uint *)(param_4 + 8))" ( (binary_expression "uVar5 - 1 & *(uint *)(param_4 + 8)" (binary_expression "uVar5 - 1" identifier - number_literal) & (pointer_expression "*(uint *)(param_4 + 8)" * (cast_expression "(uint *)(param_4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) )) != number_literal) )) (compound_statement "{\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }" { (expression_statement "uVar10 = uVar10 >> 1;" (assignment_expression "uVar10 = uVar10 >> 1" identifier = (binary_expression "uVar10 >> 1" identifier >> number_literal)) ;) (expression_statement "uVar5 = (uint)uVar10;" (assignment_expression "uVar5 = (uint)uVar10" identifier = (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (if_statement "if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }" if (parenthesized_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)((long)param_4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)param_4 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_4 + 0x3a)" * (cast_expression "(byte *)((long)param_4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_4 + 0x3a)" ( (binary_expression "(long)param_4 + 0x3a" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }" { (expression_statement "FUN_00199900("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_00199900("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) (expression_statement "uVar10 = (ulong)uVar5;" (assignment_expression "uVar10 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;" (assignment_expression "*(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2" (pointer_expression "*(byte *)(param_4[2] + 0x3c)" * (cast_expression "(byte *)(param_4[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 0x3c)" ( (binary_expression "param_4[2] + 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) )))) = (binary_expression "*(byte *)(param_4[2] + 0x3c) | 2" (pointer_expression "*(byte *)(param_4[2] + 0x3c)" * (cast_expression "(byte *)(param_4[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 0x3c)" ( (binary_expression "param_4[2] + 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) )))) | number_literal)) ;) (if_statement "if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }" if (parenthesized_expression "(local_5d == '\0')" ( (binary_expression "local_5d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }" { (expression_statement "plVar11 = *(long **)(param_1 + 0x20);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x20)" identifier = (pointer_expression "*(long **)(param_1 + 0x20)" * (cast_expression "(long **)(param_1 + 0x20)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }" if (parenthesized_expression "(plVar11 == (long *)0x0)" ( (binary_expression "plVar11 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }" { (expression_statement "puVar9 = (undefined8 *)FUN_002a11b0(0x40);" (assignment_expression "puVar9 = (undefined8 *)FUN_002a11b0(0x40)" identifier = (cast_expression "(undefined8 *)FUN_002a11b0(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a11b0(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[6] = uVar10;" (assignment_expression "puVar9[6] = uVar10" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = 0;" (assignment_expression "puVar9[2] = 0" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0xffffffffffffffff;" (assignment_expression "puVar9[3] = 0xffffffffffffffff" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" * (cast_expression "(byte *)(puVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" * (cast_expression "(byte *)(puVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar9[5] = 0;" (assignment_expression "puVar9[5] = 0" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar9 = &PTR_FUN_003ebea8;" (assignment_expression "*puVar9 = &PTR_FUN_003ebea8" (pointer_expression "*puVar9" * identifier) = (pointer_expression "&PTR_FUN_003ebea8" & identifier)) ;) (expression_statement "puVar9[7] = "** dynbss";" (assignment_expression "puVar9[7] = "** dynbss"" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (string_literal ""** dynbss"" " string_content ")) ;) (expression_statement "*(undefined8 **)(param_1 + 0x20) = puVar9;" (assignment_expression "*(undefined8 **)(param_1 + 0x20) = puVar9" (pointer_expression "*(undefined8 **)(param_1 + 0x20)" * (cast_expression "(undefined8 **)(param_1 + 0x20)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);" (call_expression "FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0)" identifier (argument_list "(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0)" ( identifier , (pointer_expression "&DAT_0033f42c" & identifier) , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "plVar11 = *(long **)(param_1 + 0x20);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x20)" identifier = (pointer_expression "*(long **)(param_1 + 0x20)" * (cast_expression "(long **)(param_1 + 0x20)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }" else (compound_statement "{\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }" { (expression_statement "plVar11 = *(long **)(param_1 + 0x28);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x28)" identifier = (pointer_expression "*(long **)(param_1 + 0x28)" * (cast_expression "(long **)(param_1 + 0x28)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }" if (parenthesized_expression "(plVar11 == (long *)0x0)" ( (binary_expression "plVar11 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }" { (expression_statement "puVar9 = (undefined8 *)FUN_002a11b0(0x40);" (assignment_expression "puVar9 = (undefined8 *)FUN_002a11b0(0x40)" identifier = (cast_expression "(undefined8 *)FUN_002a11b0(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a11b0(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[6] = uVar10;" (assignment_expression "puVar9[6] = uVar10" (subscript_expression "puVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = 0;" (assignment_expression "puVar9[2] = 0" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0xffffffffffffffff;" (assignment_expression "puVar9[3] = 0xffffffffffffffff" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" * (cast_expression "(byte *)(puVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" * (cast_expression "(byte *)(puVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 4)" ( (binary_expression "puVar9 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar9[5] = 0;" (assignment_expression "puVar9[5] = 0" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar9 = &PTR_FUN_003ebea8;" (assignment_expression "*puVar9 = &PTR_FUN_003ebea8" (pointer_expression "*puVar9" * identifier) = (pointer_expression "&PTR_FUN_003ebea8" & identifier)) ;) (expression_statement "puVar9[7] = "** dynrelro";" (assignment_expression "puVar9[7] = "** dynrelro"" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = (string_literal ""** dynrelro"" " string_content ")) ;) (expression_statement "*(undefined8 **)(param_1 + 0x28) = puVar9;" (assignment_expression "*(undefined8 **)(param_1 + 0x28) = puVar9" (pointer_expression "*(undefined8 **)(param_1 + 0x28)" * (cast_expression "(undefined8 **)(param_1 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);" (call_expression "FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0)" identifier (argument_list "(param_3,".data.rel.ro",1,3,puVar9,0x13,0)" ( identifier , (string_literal "".data.rel.ro"" " string_content ") , number_literal , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "plVar11 = *(long **)(param_1 + 0x28);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x28)" identifier = (pointer_expression "*(long **)(param_1 + 0x28)" * (cast_expression "(long **)(param_1 + 0x28)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) })) }))) (if_statement "if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }" if (parenthesized_expression "(*(code **)(*plVar11 + 0x18) == FUN_00168610)" ( (binary_expression "*(code **)(*plVar11 + 0x18) == FUN_00168610" (pointer_expression "*(code **)(*plVar11 + 0x18)" * (cast_expression "(code **)(*plVar11 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar11 + 0x18)" ( (binary_expression "*plVar11 + 0x18" (pointer_expression "*plVar11" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n    uVar7 = plVar11[6];\n  }" { (expression_statement "uVar7 = plVar11[6];" (assignment_expression "uVar7 = plVar11[6]" identifier = (subscript_expression "plVar11[6]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }" else (compound_statement "{\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }" { (expression_statement "uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);" (assignment_expression "uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11)" identifier = (call_expression "(**(code **)(*plVar11 + 0x18))(plVar11)" (parenthesized_expression "(**(code **)(*plVar11 + 0x18))" ( (pointer_expression "**(code **)(*plVar11 + 0x18)" * (pointer_expression "*(code **)(*plVar11 + 0x18)" * (cast_expression "(code **)(*plVar11 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar11 + 0x18)" ( (binary_expression "*plVar11 + 0x18" (pointer_expression "*plVar11" * identifier) + number_literal) ))))) )) (argument_list "(plVar11)" ( identifier )))) ;) }))) (if_statement "if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }" if (parenthesized_expression "(uVar7 < uVar10)" ( (binary_expression "uVar7 < uVar10" identifier < identifier) )) (compound_statement "{\n    FUN_001ee4b0(plVar11,uVar10);\n  }" { (expression_statement "FUN_001ee4b0(plVar11,uVar10);" (call_expression "FUN_001ee4b0(plVar11,uVar10)" identifier (argument_list "(plVar11,uVar10)" ( identifier , identifier ))) ;) })) (expression_statement "uVar7 = plVar11[2];" (assignment_expression "uVar7 = plVar11[2]" identifier = (subscript_expression "plVar11[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }" { (expression_statement "uVar7 = (uVar7 - 1) + uVar10 & -uVar10;" (assignment_expression "uVar7 = (uVar7 - 1) + uVar10 & -uVar10" identifier = (binary_expression "(uVar7 - 1) + uVar10 & -uVar10" (binary_expression "(uVar7 - 1) + uVar10" (parenthesized_expression "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )) + identifier) & (unary_expression "-uVar10" - identifier))) ;) })) (if_statement "if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    \n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" if (parenthesized_expression "((*(byte *)(plVar11 + 4) & 2) != 0)" ( (binary_expression "(*(byte *)(plVar11 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(plVar11 + 4) & 2)" ( (binary_expression "*(byte *)(plVar11 + 4) & 2" (pointer_expression "*(byte *)(plVar11 + 4)" * (cast_expression "(byte *)(plVar11 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar11 + 4)" ( (binary_expression "plVar11 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" { (expression_statement "FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "plVar11[2] = local_5c + uVar7;" (assignment_expression "plVar11[2] = local_5c + uVar7" (subscript_expression "plVar11[2]" identifier [ number_literal ]) = (binary_expression "local_5c + uVar7" identifier + identifier)) ;) (expression_statement "FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);" (call_expression "FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6)" identifier (argument_list "(param_1,param_2,param_4,plVar11,uVar7,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (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 IDENT = (pointer_expression * IDENT)) ;) (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 = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (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 , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , LIT ))) ;) })) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & 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) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (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 IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (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 (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , LIT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (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 (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + IDENT) & (unary_expression - IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0018dc90(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)\n\n{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  undefined8 *puVar9;\n  ulong uVar10;\n  long *plVar11;\n  char local_5d;\n  uint local_5c;\n  undefined1 *local_58 [2];\n  undefined1 auStack_48 [24];\n  \n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }\n  if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }\n  if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }\n  uVar1 = *(undefined4 *)(param_4 + 3);\n  if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }\n  plVar11 = (long *)param_4[2];\n  if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n                    \n  uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);\n  uVar10 = (ulong)uVar5;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);\n  if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }\n  if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n  while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }\n  if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }\n  uVar10 = (ulong)uVar5;\n  *(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;\n  if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }\n  if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }\n  if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }\n  uVar7 = plVar11[2];\n  if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }\n  if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    \n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  plVar11[2] = local_5c + uVar7;\n  FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0018dc90(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)" (identifier "FUN_0018dc90") (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,\n                 long param_5,undefined8 param_6)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 *param_4" (type_identifier "undefined8") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  undefined8 uVar8;\n  undefined8 *puVar9;\n  ulong uVar10;\n  long *plVar11;\n  char local_5d;\n  uint local_5c;\n  undefined1 *local_58 [2];\n  undefined1 auStack_48 [24];\n  \n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }\n  if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }\n  if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }\n  uVar1 = *(undefined4 *)(param_4 + 3);\n  if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }\n  plVar11 = (long *)param_4[2];\n  if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n                    \n  uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);\n  uVar10 = (ulong)uVar5;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }\n  local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);\n  if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }\n  if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }\n  while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }\n  if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }\n  uVar10 = (ulong)uVar5;\n  *(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;\n  if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }\n  if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }\n  if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }\n  uVar7 = plVar11[2];\n  if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }\n  if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    \n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  plVar11[2] = local_5c + uVar7;\n  FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "undefined8 *puVar9;" (type_identifier "undefined8") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "long *plVar11;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar11" (* "*") (identifier "plVar11")) (; ";")) (declaration "char local_5d;" (primitive_type "char") (identifier "local_5d") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "undefined1 *local_58 [2];" (type_identifier "undefined1") (pointer_declarator "*local_58 [2]" (* "*") (array_declarator "local_58 [2]" (identifier "local_58") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 auStack_48 [24];" (type_identifier "undefined1") (array_declarator "auStack_48 [24]" (identifier "auStack_48") ([ "[") (number_literal "24") (] "]")) (; ";")) (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00199900") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619)" (( "(") (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x8619")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");" (call_expression "FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc")" (identifier "FUN_00199900") (argument_list "("../../gold/copy-relocs.cc",0x76,"make_copy_reloc")" (( "(") (string_literal ""../../gold/copy-relocs.cc"" (" """) (string_content "../../gold/copy-relocs.cc") (" """)) (, ",") (number_literal "0x76") (, ",") (string_literal ""make_copy_reloc"" (" """) (string_content "make_copy_reloc") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }" (if "if") (parenthesized_expression "(((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0))" (( "(") (binary_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)" (parenthesized_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_4 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_4 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_4 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_4 + 0x3a)" (( "(") (binary_expression "(long)param_4 + 0x3a" (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_4[2] + 0x3c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(param_4[2] + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_4[2] + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(param_4[2] + 0x3c) & 1" (pointer_expression "*(byte *)(param_4[2] + 0x3c)" (* "*") (cast_expression "(byte *)(param_4[2] + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[2] + 0x3c)" (( "(") (binary_expression "param_4[2] + 0x3c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");" (call_expression "FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc")" (identifier "FUN_00199900") (argument_list "("../../gold/copy-relocs.cc",0x78,"make_copy_reloc")" (( "(") (string_literal ""../../gold/copy-relocs.cc"" (" """) (string_content "../../gold/copy-relocs.cc") (" """)) (, ",") (number_literal "0x78") (, ",") (string_literal ""make_copy_reloc"" (" """) (string_content "make_copy_reloc") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }\n  else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" (if "if") (parenthesized_expression "((*(byte *)((long)param_4 + 0x3c) & 8) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_4 + 0x3c) & 8) == 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3c) & 8)" (( "(") (binary_expression "*(byte *)((long)param_4 + 0x3c) & 8" (pointer_expression "*(byte *)((long)param_4 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_4 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_4 + 0x3c)" (( "(") (binary_expression "(long)param_4 + 0x3c" (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_5c = *(uint *)((long)param_4 + 0x44);\n  }" ({ "{") (expression_statement "local_5c = *(uint *)((long)param_4 + 0x44);" (assignment_expression "local_5c = *(uint *)((long)param_4 + 0x44)" (identifier "local_5c") (= "=") (pointer_expression "*(uint *)((long)param_4 + 0x44)" (* "*") (cast_expression "(uint *)((long)param_4 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_4 + 0x44)" (( "(") (binary_expression "(long)param_4 + 0x44" (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")) (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" (else "else") (compound_statement "{\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *param_4;\n    uVar4 = *(undefined8 *)(param_4[2] + 8);\n    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");\n    FUN_00191870(uVar8,uVar2,uVar3,uVar4);\n    local_5c = *(uint *)((long)param_4 + 0x44);\n    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }\n  }" ({ "{") (expression_statement "uVar2 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar2 = *(undefined8 *)(param_5 + 8)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_5 + 8)" (* "*") (cast_expression "(undefined8 *)(param_5 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar3 = *param_4;" (assignment_expression "uVar3 = *param_4" (identifier "uVar3") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(param_4[2] + 8);" (assignment_expression "uVar4 = *(undefined8 *)(param_4[2] + 8)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(param_4[2] + 8)" (* "*") (cast_expression "(undefined8 *)(param_4[2] + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[2] + 8)" (( "(") (binary_expression "param_4[2] + 8" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");" (assignment_expression "uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s")" (identifier "uVar8") (= "=") (call_expression "gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s")" (identifier "gettext") (argument_list "("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s")" (( "(") (string_literal ""%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"" (" """) (string_content "%s: cannot make copy relocation for protected symbol ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content ", defined in %s") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00191870(uVar8,uVar2,uVar3,uVar4);" (call_expression "FUN_00191870(uVar8,uVar2,uVar3,uVar4)" (identifier "FUN_00191870") (argument_list "(uVar8,uVar2,uVar3,uVar4)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar2") (, ",") (identifier "uVar3") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "local_5c = *(uint *)((long)param_4 + 0x44);" (assignment_expression "local_5c = *(uint *)((long)param_4 + 0x44)" (identifier "local_5c") (= "=") (pointer_expression "*(uint *)((long)param_4 + 0x44)" (* "*") (cast_expression "(uint *)((long)param_4 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_4 + 0x44)" (( "(") (binary_expression "(long)param_4 + 0x44" (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")) (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }" (if "if") (parenthesized_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_4 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_4 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_4 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_4 + 0x3a)" (( "(") (binary_expression "(long)param_4 + 0x3a" (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");\n    }" ({ "{") (expression_statement "FUN_00199900("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_00199900("../../gold/symtab.h",0xaa,"shndx")" (identifier "FUN_00199900") (argument_list "("../../gold/symtab.h",0xaa,"shndx")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xaa") (, ",") (string_literal ""shndx"" (" """) (string_content "shndx") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar1 = *(undefined4 *)(param_4 + 3);" (assignment_expression "uVar1 = *(undefined4 *)(param_4 + 3)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 3)" (* "*") (cast_expression "(undefined4 *)(param_4 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 3)" (( "(") (binary_expression "param_4 + 3" (identifier "param_4") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }" (if "if") (parenthesized_expression "((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((long)param_4 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3b) & 0x20)" (( "(") (binary_expression "*(byte *)((long)param_4 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)param_4 + 0x3b)" (* "*") (cast_expression "(byte *)((long)param_4 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_4 + 0x3b)" (( "(") (binary_expression "(long)param_4 + 0x3b" (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")) (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");" (call_expression "FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc")" (identifier "FUN_00199900") (argument_list "("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc")" (( "(") (string_literal ""../../gold/copy-relocs.cc"" (" """) (string_content "../../gold/copy-relocs.cc") (" """)) (, ",") (number_literal "0x8e") (, ",") (string_literal ""make_copy_reloc"" (" """) (string_content "make_copy_reloc") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "plVar11 = (long *)param_4[2];" (assignment_expression "plVar11 = (long *)param_4[2]" (identifier "plVar11") (= "=") (cast_expression "(long *)param_4[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (plVar11[5] != 0) {\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" (if "if") (parenthesized_expression "(plVar11[5] != 0)" (( "(") (binary_expression "plVar11[5] != 0" (subscript_expression "plVar11[5]" (identifier "plVar11") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" ({ "{") (expression_statement "FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);" (call_expression "FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff)" (identifier "FUN_00192a40") (argument_list "(plVar11[5] + 0x28,0xffffffffffffffff)" (( "(") (binary_expression "plVar11[5] + 0x28" (subscript_expression "plVar11[5]" (identifier "plVar11") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x28")) (, ",") (number_literal "0xffffffffffffffff") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);" (assignment_expression "uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(*plVar11 + 0xb8))(plVar11,uVar1)" (parenthesized_expression "(**(code **)(*plVar11 + 0xb8))" (( "(") (pointer_expression "**(code **)(*plVar11 + 0xb8)" (* "*") (pointer_expression "*(code **)(*plVar11 + 0xb8)" (* "*") (cast_expression "(code **)(*plVar11 + 0xb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar11 + 0xb8)" (( "(") (binary_expression "*plVar11 + 0xb8" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (+ "+") (number_literal "0xb8")) () ")"))))) () ")")) (argument_list "(plVar11,uVar1)" (( "(") (identifier "plVar11") (, ",") (identifier "uVar1") () ")")))) (; ";")) (expression_statement "uVar10 = (ulong)uVar5;" (assignment_expression "uVar10 = (ulong)uVar5" (identifier "uVar10") (= "=") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (; ";")) (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {\n                    \n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n    FUN_00199900("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00199900("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00199900") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);" (assignment_expression "local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" (identifier "local_5d") (= "=") (pointer_expression "*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59)" (( "(") (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x10)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x10" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x8c59")) () ")"))))) (; ";")) (if_statement "if ((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }" (if "if") (parenthesized_expression "((local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0))" (( "(") (binary_expression "(local_5d != '\0') &&\n     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)" (parenthesized_expression "(local_5d != '\0')" (( "(") (binary_expression "local_5d != '\0'" (identifier "local_5d") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)" (( "(") (comma_expression "uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0" (assignment_expression "uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(*plVar11 + 0x88))(plVar11,uVar1)" (parenthesized_expression "(**(code **)(*plVar11 + 0x88))" (( "(") (pointer_expression "**(code **)(*plVar11 + 0x88)" (* "*") (pointer_expression "*(code **)(*plVar11 + 0x88)" (* "*") (cast_expression "(code **)(*plVar11 + 0x88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar11 + 0x88)" (( "(") (binary_expression "*plVar11 + 0x88" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (+ "+") (number_literal "0x88")) () ")"))))) () ")")) (argument_list "(plVar11,uVar1)" (( "(") (identifier "plVar11") (, ",") (identifier "uVar1") () ")")))) (, ",") (binary_expression "(uVar7 & 1) != 0" (parenthesized_expression "(uVar7 & 1)" (( "(") (binary_expression "uVar7 & 1" (identifier "uVar7") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);\n    iVar6 = FUN_002ab760(local_58,".data.rel.ro");\n    if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }\n    local_5d = iVar6 == 0;\n  }" ({ "{") (expression_statement "(**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);" (call_expression "(**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1)" (parenthesized_expression "(**(code **)(*plVar11 + 0x80))" (( "(") (pointer_expression "**(code **)(*plVar11 + 0x80)" (* "*") (pointer_expression "*(code **)(*plVar11 + 0x80)" (* "*") (cast_expression "(code **)(*plVar11 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar11 + 0x80)" (( "(") (binary_expression "*plVar11 + 0x80" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(local_58,plVar11,uVar1)" (( "(") (identifier "local_58") (, ",") (identifier "plVar11") (, ",") (identifier "uVar1") () ")"))) (; ";")) (expression_statement "iVar6 = FUN_002ab760(local_58,".data.rel.ro");" (assignment_expression "iVar6 = FUN_002ab760(local_58,".data.rel.ro")" (identifier "iVar6") (= "=") (call_expression "FUN_002ab760(local_58,".data.rel.ro")" (identifier "FUN_002ab760") (argument_list "(local_58,".data.rel.ro")" (( "(") (identifier "local_58") (, ",") (string_literal "".data.rel.ro"" (" """) (string_content ".data.rel.ro") (" """)) () ")")))) (; ";")) (if_statement "if (local_58[0] != auStack_48) {\n      FUN_002a2980();\n    }" (if "if") (parenthesized_expression "(local_58[0] != auStack_48)" (( "(") (binary_expression "local_58[0] != auStack_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "auStack_48")) () ")")) (compound_statement "{\n      FUN_002a2980();\n    }" ({ "{") (expression_statement "FUN_002a2980();" (call_expression "FUN_002a2980()" (identifier "FUN_002a2980") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_5d = iVar6 == 0;" (assignment_expression "local_5d = iVar6 == 0" (identifier "local_5d") (= "=") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) (; ";")) (} "}"))) (if_statement "if (plVar11[5] != 0) {\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" (if "if") (parenthesized_expression "(plVar11[5] != 0)" (( "(") (binary_expression "plVar11[5] != 0" (subscript_expression "plVar11[5]" (identifier "plVar11") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);\n  }" ({ "{") (expression_statement "FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);" (call_expression "FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff)" (identifier "FUN_00193600") (argument_list "(plVar11[5] + 0x28,0xffffffffffffffff)" (( "(") (binary_expression "plVar11[5] + 0x28" (subscript_expression "plVar11[5]" (identifier "plVar11") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x28")) (, ",") (number_literal "0xffffffffffffffff") () ")"))) (; ";")) (} "}"))) (while_statement "while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }" (while "while") (parenthesized_expression "((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0)" (( "(") (binary_expression "(uVar5 - 1 & *(uint *)(param_4 + 8)) != 0" (parenthesized_expression "(uVar5 - 1 & *(uint *)(param_4 + 8))" (( "(") (binary_expression "uVar5 - 1 & *(uint *)(param_4 + 8)" (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1")) (& "&") (pointer_expression "*(uint *)(param_4 + 8)" (* "*") (cast_expression "(uint *)(param_4 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")"))))) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = uVar10 >> 1;\n    uVar5 = (uint)uVar10;\n  }" ({ "{") (expression_statement "uVar10 = uVar10 >> 1;" (assignment_expression "uVar10 = uVar10 >> 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 >> 1" (identifier "uVar10") (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = (uint)uVar10;" (assignment_expression "uVar5 = (uint)uVar10" (identifier "uVar5") (= "=") (cast_expression "(uint)uVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar10"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {\n                    \n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }" (if "if") (parenthesized_expression "((*(byte *)((long)param_4 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)param_4 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)param_4 + 0x3a) & 7" (pointer_expression "*(byte *)((long)param_4 + 0x3a)" (* "*") (cast_expression "(byte *)((long)param_4 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_4 + 0x3a)" (( "(") (binary_expression "(long)param_4 + 0x3a" (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/symtab.h",0xa1,"object");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_00199900("../../gold/symtab.h",0xa1,"object")" (identifier "FUN_00199900") (argument_list "("../../gold/symtab.h",0xa1,"object")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xa1") (, ",") (string_literal ""object"" (" """) (string_content "object") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = (ulong)uVar5;" (assignment_expression "uVar10 = (ulong)uVar5" (identifier "uVar10") (= "=") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "*(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;" (assignment_expression "*(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2" (pointer_expression "*(byte *)(param_4[2] + 0x3c)" (* "*") (cast_expression "(byte *)(param_4[2] + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[2] + 0x3c)" (( "(") (binary_expression "param_4[2] + 0x3c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "*(byte *)(param_4[2] + 0x3c) | 2" (pointer_expression "*(byte *)(param_4[2] + 0x3c)" (* "*") (cast_expression "(byte *)(param_4[2] + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[2] + 0x3c)" (( "(") (binary_expression "param_4[2] + 0x3c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x3c")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (if_statement "if (local_5d == '\0') {\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }\n  else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }" (if "if") (parenthesized_expression "(local_5d == '\0')" (( "(") (binary_expression "local_5d == '\0'" (identifier "local_5d") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    plVar11 = *(long **)(param_1 + 0x20);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }\n  }" ({ "{") (expression_statement "plVar11 = *(long **)(param_1 + 0x20);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x20)" (identifier "plVar11") (= "=") (pointer_expression "*(long **)(param_1 + 0x20)" (* "*") (cast_expression "(long **)(param_1 + 0x20)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }" (if "if") (parenthesized_expression "(plVar11 == (long *)0x0)" (( "(") (binary_expression "plVar11 == (long *)0x0" (identifier "plVar11") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynbss";\n      *(undefined8 **)(param_1 + 0x20) = puVar9;\n      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);\n      plVar11 = *(long **)(param_1 + 0x20);\n    }" ({ "{") (expression_statement "puVar9 = (undefined8 *)FUN_002a11b0(0x40);" (assignment_expression "puVar9 = (undefined8 *)FUN_002a11b0(0x40)" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)FUN_002a11b0(0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002a11b0(0x40)" (identifier "FUN_002a11b0") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")"))))) (; ";")) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[6] = uVar10;" (assignment_expression "puVar9[6] = uVar10" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar9[2] = 0;" (assignment_expression "puVar9[2] = 0" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[3] = 0xffffffffffffffff;" (assignment_expression "puVar9[3] = 0xffffffffffffffff" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" (* "*") (cast_expression "(byte *)(puVar9 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 4)" (( "(") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" (* "*") (cast_expression "(byte *)(puVar9 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 4)" (( "(") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar9[5] = 0;" (assignment_expression "puVar9[5] = 0" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar9 = &PTR_FUN_003ebea8;" (assignment_expression "*puVar9 = &PTR_FUN_003ebea8" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "&PTR_FUN_003ebea8" (& "&") (identifier "PTR_FUN_003ebea8"))) (; ";")) (expression_statement "puVar9[7] = "** dynbss";" (assignment_expression "puVar9[7] = "** dynbss"" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (string_literal ""** dynbss"" (" """) (string_content "** dynbss") (" """))) (; ";")) (expression_statement "*(undefined8 **)(param_1 + 0x20) = puVar9;" (assignment_expression "*(undefined8 **)(param_1 + 0x20) = puVar9" (pointer_expression "*(undefined8 **)(param_1 + 0x20)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x20)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);" (call_expression "FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0)" (identifier "FUN_001bc730") (argument_list "(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0)" (( "(") (identifier "param_3") (, ",") (pointer_expression "&DAT_0033f42c" (& "&") (identifier "DAT_0033f42c")) (, ",") (number_literal "8") (, ",") (number_literal "3") (, ",") (identifier "puVar9") (, ",") (number_literal "0x1b") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "plVar11 = *(long **)(param_1 + 0x20);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x20)" (identifier "plVar11") (= "=") (pointer_expression "*(long **)(param_1 + 0x20)" (* "*") (cast_expression "(long **)(param_1 + 0x20)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }" (else "else") (compound_statement "{\n    plVar11 = *(long **)(param_1 + 0x28);\n    if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }\n  }" ({ "{") (expression_statement "plVar11 = *(long **)(param_1 + 0x28);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x28)" (identifier "plVar11") (= "=") (pointer_expression "*(long **)(param_1 + 0x28)" (* "*") (cast_expression "(long **)(param_1 + 0x28)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (plVar11 == (long *)0x0) {\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }" (if "if") (parenthesized_expression "(plVar11 == (long *)0x0)" (( "(") (binary_expression "plVar11 == (long *)0x0" (identifier "plVar11") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar9 = (undefined8 *)FUN_002a11b0(0x40);\n      puVar9[1] = 0;\n      puVar9[6] = uVar10;\n      puVar9[2] = 0;\n      puVar9[3] = 0xffffffffffffffff;\n      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;\n      puVar9[5] = 0;\n      *puVar9 = &PTR_FUN_003ebea8;\n      puVar9[7] = "** dynrelro";\n      *(undefined8 **)(param_1 + 0x28) = puVar9;\n      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);\n      plVar11 = *(long **)(param_1 + 0x28);\n    }" ({ "{") (expression_statement "puVar9 = (undefined8 *)FUN_002a11b0(0x40);" (assignment_expression "puVar9 = (undefined8 *)FUN_002a11b0(0x40)" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)FUN_002a11b0(0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002a11b0(0x40)" (identifier "FUN_002a11b0") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")"))))) (; ";")) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[6] = uVar10;" (assignment_expression "puVar9[6] = uVar10" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar9[2] = 0;" (assignment_expression "puVar9[2] = 0" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[3] = 0xffffffffffffffff;" (assignment_expression "puVar9[3] = 0xffffffffffffffff" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" (* "*") (cast_expression "(byte *)(puVar9 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 4)" (( "(") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar9 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar9 + 4)" (* "*") (cast_expression "(byte *)(puVar9 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 4)" (( "(") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar9[5] = 0;" (assignment_expression "puVar9[5] = 0" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar9 = &PTR_FUN_003ebea8;" (assignment_expression "*puVar9 = &PTR_FUN_003ebea8" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "&PTR_FUN_003ebea8" (& "&") (identifier "PTR_FUN_003ebea8"))) (; ";")) (expression_statement "puVar9[7] = "** dynrelro";" (assignment_expression "puVar9[7] = "** dynrelro"" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (string_literal ""** dynrelro"" (" """) (string_content "** dynrelro") (" """))) (; ";")) (expression_statement "*(undefined8 **)(param_1 + 0x28) = puVar9;" (assignment_expression "*(undefined8 **)(param_1 + 0x28) = puVar9" (pointer_expression "*(undefined8 **)(param_1 + 0x28)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x28)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);" (call_expression "FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0)" (identifier "FUN_001bc730") (argument_list "(param_3,".data.rel.ro",1,3,puVar9,0x13,0)" (( "(") (identifier "param_3") (, ",") (string_literal "".data.rel.ro"" (" """) (string_content ".data.rel.ro") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (identifier "puVar9") (, ",") (number_literal "0x13") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "plVar11 = *(long **)(param_1 + 0x28);" (assignment_expression "plVar11 = *(long **)(param_1 + 0x28)" (identifier "plVar11") (= "=") (pointer_expression "*(long **)(param_1 + 0x28)" (* "*") (cast_expression "(long **)(param_1 + 0x28)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {\n    uVar7 = plVar11[6];\n  }\n  else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }" (if "if") (parenthesized_expression "(*(code **)(*plVar11 + 0x18) == FUN_00168610)" (( "(") (binary_expression "*(code **)(*plVar11 + 0x18) == FUN_00168610" (pointer_expression "*(code **)(*plVar11 + 0x18)" (* "*") (cast_expression "(code **)(*plVar11 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar11 + 0x18)" (( "(") (binary_expression "*plVar11 + 0x18" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (+ "+") (number_literal "0x18")) () ")")))) (== "==") (identifier "FUN_00168610")) () ")")) (compound_statement "{\n    uVar7 = plVar11[6];\n  }" ({ "{") (expression_statement "uVar7 = plVar11[6];" (assignment_expression "uVar7 = plVar11[6]" (identifier "uVar7") (= "=") (subscript_expression "plVar11[6]" (identifier "plVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }" (else "else") (compound_statement "{\n    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);\n  }" ({ "{") (expression_statement "uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);" (assignment_expression "uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(*plVar11 + 0x18))(plVar11)" (parenthesized_expression "(**(code **)(*plVar11 + 0x18))" (( "(") (pointer_expression "**(code **)(*plVar11 + 0x18)" (* "*") (pointer_expression "*(code **)(*plVar11 + 0x18)" (* "*") (cast_expression "(code **)(*plVar11 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar11 + 0x18)" (( "(") (binary_expression "*plVar11 + 0x18" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(plVar11)" (( "(") (identifier "plVar11") () ")")))) (; ";")) (} "}")))) (if_statement "if (uVar7 < uVar10) {\n    FUN_001ee4b0(plVar11,uVar10);\n  }" (if "if") (parenthesized_expression "(uVar7 < uVar10)" (( "(") (binary_expression "uVar7 < uVar10" (identifier "uVar7") (< "<") (identifier "uVar10")) () ")")) (compound_statement "{\n    FUN_001ee4b0(plVar11,uVar10);\n  }" ({ "{") (expression_statement "FUN_001ee4b0(plVar11,uVar10);" (call_expression "FUN_001ee4b0(plVar11,uVar10)" (identifier "FUN_001ee4b0") (argument_list "(plVar11,uVar10)" (( "(") (identifier "plVar11") (, ",") (identifier "uVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar7 = plVar11[2];" (assignment_expression "uVar7 = plVar11[2]" (identifier "uVar7") (= "=") (subscript_expression "plVar11[2]" (identifier "plVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (uVar5 != 0) {\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;\n  }" ({ "{") (expression_statement "uVar7 = (uVar7 - 1) + uVar10 & -uVar10;" (assignment_expression "uVar7 = (uVar7 - 1) + uVar10 & -uVar10" (identifier "uVar7") (= "=") (binary_expression "(uVar7 - 1) + uVar10 & -uVar10" (binary_expression "(uVar7 - 1) + uVar10" (parenthesized_expression "(uVar7 - 1)" (( "(") (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1")) () ")")) (+ "+") (identifier "uVar10")) (& "&") (unary_expression "-uVar10" (- "-") (identifier "uVar10")))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(plVar11 + 4) & 2) != 0) {\n                    \n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" (if "if") (parenthesized_expression "((*(byte *)(plVar11 + 4) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(plVar11 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(plVar11 + 4) & 2)" (( "(") (binary_expression "*(byte *)(plVar11 + 4) & 2" (pointer_expression "*(byte *)(plVar11 + 4)" (* "*") (cast_expression "(byte *)(plVar11 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar11 + 4)" (( "(") (binary_expression "plVar11 + 4" (identifier "plVar11") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child")" (identifier "FUN_00199900") (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x231") (, ",") (string_literal ""set_current_data_size_for_child"" (" """) (string_content "set_current_data_size_for_child") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "plVar11[2] = local_5c + uVar7;" (assignment_expression "plVar11[2] = local_5c + uVar7" (subscript_expression "plVar11[2]" (identifier "plVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "local_5c + uVar7" (identifier "local_5c") (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);" (call_expression "FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6)" (identifier "FUN_0018db00") (argument_list "(param_1,param_2,param_4,plVar11,uVar7,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (identifier "plVar11") (, ",") (identifier "uVar7") (, ",") (identifier "param_6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void make_copy_reloc(Copy_relocs<9,_32,_false> * this, Symbol_table *
   symtab, Layout * layout, Sized_symbol<32> * sym, Sized_relobj_file<32,_false> * object,
   Output_data_reloc<9,_true,_32,_false> * reloc_section) */

void __thiscall
var_2::Copy_relocs<9,_32,_false>::make_copy_reloc
          (Copy_relocs<9,_32,_false> *this,Symbol_table *symtab,Layout *layout,Sized_symbol<32> *sym
          ,Sized_relobj_file<32,_false> *object,Output_data_reloc<9,_true,_32,_false> *reloc_section
          )

{
  type_14 *pbVar1;
  type_1 *puVar2;
  type_2 uVar3;
  type_3 *pOVar4;
  type_4 *pOVar5;
  type_5 *var_19;
  type_6 pcVar7;
  char *pcVar8;
  type_6 ppOVar9;
  type_2 var_14;
  type_2 var_8;
  int var_12;
  char *format;
  type_7 extraout_var;
  type_8 *var_16;
  type_9 var_21;
  type_9 var_22;
  char var_15;
  type_2 var_24;
  type_1 *local_58 [2];
  type_1 var_10 [24];
  
  if (parameters->options_ == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->copyreloc_).value == false) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");
  }
  if ((((sym->super_Symbol).field_0x3a & 7) != 0) ||
     (pOVar4 = (sym->super_Symbol).u1_.output_segment,
     ((type_9)pOVar4->output_lists_[2].
             super__Vector_base<var_2::type_17*,var_3::allocator<var_2::type_17*>var_4>._M_impl.
             _M_finish & 0x100000000) == 0)) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");
  }
  if (((sym->super_Symbol).field_0x3c & 8) == 0) {
    var_24 = sym->symsize_;
  }
  else {
    pcVar7 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.
             _M_p;
    pcVar8 = (sym->super_Symbol).name_;
    ppOVar9 = pOVar4->output_lists_[0].
              super__Vector_base<var_2::type_17*,var_3::allocator<var_2::type_17*>var_4>._M_impl.
              _M_finish;
    format = (char *)var_5(
                            "%s: cannot make copy relocation for protected symbol \'%s\', defined in %s"
                            );
    var_6(format,pcVar7,pcVar8,ppOVar9);
    var_24 = sym->symsize_;
    if (((sym->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
      var_1("../../gold/symtab.h",0xaa,"shndx");
    }
  }
  uVar3 = (sym->super_Symbol).u2_.shndx;
  if (((sym->super_Symbol).field_0x3b & 0x20) == 0) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");
  }
  pOVar5 = (sym->super_Symbol).u1_.object;
  if (pOVar5->input_file_ != (type_11 *)0x0) {
    File_read::var_7(&pOVar5->input_file_->file_,(type_12 *)0xffffffffffffffff);
  }
                    /* try { // try from 0018dd32 to 0018dd94 has its CatchHandler @ 0018e111 */
  var_14 = (*pOVar5->_vptr_Object[0x17])(pOVar5,uVar3);
  if (parameters->options_ == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */
    var_1("../../gold/parameters.h",0x5c,"options");
  }
  var_15 = (parameters->options_->relro_).value;
  if (((bool)var_15 != false) &&
     (var_8 = (*pOVar5->_vptr_Object[0x11])(pOVar5,uVar3), (var_8 & 1) != 0)) {
    (*pOVar5->_vptr_Object[0x10])((type_13 *)local_58,pOVar5,uVar3);
    var_12 = std::string::var_9((type_13 *)local_58,".data.rel.ro");
    if (local_58[0] != var_10) {
      var_11(local_58[0]);
    }
    var_15 = var_12 == 0;
  }
  if (pOVar5->input_file_ != (type_11 *)0x0) {
    File_read::var_13(&pOVar5->input_file_->file_,(type_12 *)0xffffffffffffffff);
  }
  for (; (var_14 - 1 & sym->value_) != 0; var_14 = var_14 >> 1) {
  }
  if (((sym->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/symtab.h",0xa1,"object");
  }
  var_22 = (type_9)var_14;
  pbVar1 = (type_14 *)((long)&((sym->super_Symbol).u1_.output_segment)->output_lists_[2].
                           super__Vector_base<var_2::type_17*,var_3::allocator<var_2::type_17*>var_4>
                           ._M_impl._M_finish + 4);
  *pbVar1 = *pbVar1 | 2;
  if (var_15 == '\0') {
    var_16 = this->dynbss_;
    if (var_16 == (type_8 *)0x0) {
      var_16 = (type_8 *)var_17(0x40);
      (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      address_ = 0;
      (var_16->super_Output_section_data_build).super_Output_section_data.addralign_ = var_22;
      (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      data_size_ = 0;
      (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_
           = -1;
      puVar2 = &(var_16->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.field_0x20;
      *puVar2 = *puVar2 & 0xe0;
      (var_16->super_Output_section_data_build).super_Output_section_data.output_section_ =
           (type_15 *)0x0;
      (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      _vptr_Output_data = (type_5 **)&PTR__Output_data_space_003ebea8;
      var_16->map_name_ = "** dynbss";
      this->dynbss_ = var_16;
      Layout::var_18
                (layout,".bss",8,3,(type_16 *)var_16,ORDER_BSS,false);
      var_16 = this->dynbss_;
    }
  }
  else {
    var_16 = this->dynrelro_;
    if (var_16 == (type_8 *)0x0) {
      var_16 = (type_8 *)var_17(0x40);
      (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      address_ = 0;
      (var_16->super_Output_section_data_build).super_Output_section_data.addralign_ = var_22;
      (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      data_size_ = 0;
      (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.offset_
           = -1;
      puVar2 = &(var_16->super_Output_section_data_build).super_Output_section_data.
                super_Output_data.field_0x20;
      *puVar2 = *puVar2 & 0xe0;
      (var_16->super_Output_section_data_build).super_Output_section_data.output_section_ =
           (type_15 *)0x0;
      (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.
      _vptr_Output_data = (type_5 **)&PTR__Output_data_space_003ebea8;
      var_16->map_name_ = "** dynrelro";
      this->dynrelro_ = var_16;
      Layout::var_18
                (layout,".data.rel.ro",1,3,(type_16 *)var_16,ORDER_RELRO,false);
      var_16 = this->dynrelro_;
    }
  }
  var_19 = (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.
           _vptr_Output_data[3];
  if (var_19 == type_16::do_addralign) {
    var_21 = (var_16->super_Output_section_data_build).super_Output_section_data.addralign_;
  }
  else {
    var_12 = (*var_19)(var_16);
    var_21 = var_20(extraout_var,var_12);
  }
  if (var_21 < var_22) {
    Output_section_data::var_23((type_16 *)var_16,var_22);
  }
  var_21 = (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.
           data_size_;
  if (var_14 != 0) {
    var_21 = (var_21 - 1) + var_22 & -var_22;
  }
  if (((var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.
       field_0x20 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  (var_16->super_Output_section_data_build).super_Output_section_data.super_Output_data.data_size_
       = var_24 + var_21;
  var_25(this,symtab,sym,(type_17 *)var_16,var_21,reloc_section);
  return;
}


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

void MASKED(long param_1,undefined8 param_2,undefined8 param_3,undefined8 *param_4,
                 long param_5,undefined8 param_6)

{
  undefined4 uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  uint uVar5;
  int iVar6;
  ulong uVar7;
  undefined8 uVar8;
  undefined8 *puVar9;
  ulong uVar10;
  long *plVar11;
  char local_5d;
  uint local_5c;
  undefined1 *local_58 [2];
  undefined1 auStack_48 [24];
  
  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/parameters.h",0x5c,"options");
  }
  if (*(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8619) == '\0') {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/copy-relocs.cc",0x76,"make_copy_reloc");
  }
  if (((*(byte *)((long)param_4 + 0x3a) & 7) != 0) || ((*(byte *)(param_4[2] + 0x3c) & 1) == 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/copy-relocs.cc",0x78,"make_copy_reloc");
  }
  if ((*(byte *)((long)param_4 + 0x3c) & 8) == 0) {
    local_5c = *(uint *)((long)param_4 + 0x44);
  }
  else {
    uVar2 = *(undefined8 *)(param_5 + 8);
    uVar3 = *param_4;
    uVar4 = *(undefined8 *)(param_4[2] + 8);
    uVar8 = gettext("%s: cannot make copy relocation for protected symbol \'%s\', defined in %s");
    FUN_00191870(uVar8,uVar2,uVar3,uVar4);
    local_5c = *(uint *)((long)param_4 + 0x44);
    if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
      FUN_00199900("../../gold/symtab.h",0xaa,"shndx");
    }
  }
  uVar1 = *(undefined4 *)(param_4 + 3);
  if ((*(byte *)((long)param_4 + 0x3b) & 0x20) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/copy-relocs.cc",0x8e,"make_copy_reloc");
  }
  plVar11 = (long *)param_4[2];
  if (plVar11[5] != 0) {
    FUN_00192a40(plVar11[5] + 0x28,0xffffffffffffffff);
  }
                    /* try { // try from 0018dd32 to 0018dd94 has its CatchHandler @ 0018e111 */
  uVar5 = (**(code **)(*plVar11 + 0xb8))(plVar11,uVar1);
  uVar10 = (ulong)uVar5;
  if (*(long *)(PTR_DAT_003f85c0 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0018e0c4 to 0018e0c8 has its CatchHandler @ 0018e111 */
    FUN_00199900("../../gold/parameters.h",0x5c,"options");
  }
  local_5d = *(char *)(*(long *)(PTR_DAT_003f85c0 + 0x10) + 0x8c59);
  if ((local_5d != '\0') &&
     (uVar7 = (**(code **)(*plVar11 + 0x88))(plVar11,uVar1), (uVar7 & 1) != 0)) {
    (**(code **)(*plVar11 + 0x80))(local_58,plVar11,uVar1);
    iVar6 = FUN_002ab760(local_58,".data.rel.ro");
    if (local_58[0] != auStack_48) {
      FUN_002a2980();
    }
    local_5d = iVar6 == 0;
  }
  if (plVar11[5] != 0) {
    FUN_00193600(plVar11[5] + 0x28,0xffffffffffffffff);
  }
  while ((uVar5 - 1 & *(uint *)(param_4 + 8)) != 0) {
    uVar10 = uVar10 >> 1;
    uVar5 = (uint)uVar10;
  }
  if ((*(byte *)((long)param_4 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/symtab.h",0xa1,"object");
  }
  uVar10 = (ulong)uVar5;
  *(byte *)(param_4[2] + 0x3c) = *(byte *)(param_4[2] + 0x3c) | 2;
  if (local_5d == '\0') {
    plVar11 = *(long **)(param_1 + 0x20);
    if (plVar11 == (long *)0x0) {
      puVar9 = (undefined8 *)FUN_002a11b0(0x40);
      puVar9[1] = 0;
      puVar9[6] = uVar10;
      puVar9[2] = 0;
      puVar9[3] = 0xffffffffffffffff;
      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;
      puVar9[5] = 0;
      *puVar9 = &PTR_FUN_003ebea8;
      puVar9[7] = "** dynbss";
      *(undefined8 **)(param_1 + 0x20) = puVar9;
      FUN_001bc730(param_3,&DAT_0033f42c,8,3,puVar9,0x1b,0);
      plVar11 = *(long **)(param_1 + 0x20);
    }
  }
  else {
    plVar11 = *(long **)(param_1 + 0x28);
    if (plVar11 == (long *)0x0) {
      puVar9 = (undefined8 *)FUN_002a11b0(0x40);
      puVar9[1] = 0;
      puVar9[6] = uVar10;
      puVar9[2] = 0;
      puVar9[3] = 0xffffffffffffffff;
      *(byte *)(puVar9 + 4) = *(byte *)(puVar9 + 4) & 0xe0;
      puVar9[5] = 0;
      *puVar9 = &PTR_FUN_003ebea8;
      puVar9[7] = "** dynrelro";
      *(undefined8 **)(param_1 + 0x28) = puVar9;
      FUN_001bc730(param_3,".data.rel.ro",1,3,puVar9,0x13,0);
      plVar11 = *(long **)(param_1 + 0x28);
    }
  }
  if (*(code **)(*plVar11 + 0x18) == FUN_00168610) {
    uVar7 = plVar11[6];
  }
  else {
    uVar7 = (**(code **)(*plVar11 + 0x18))(plVar11);
  }
  if (uVar7 < uVar10) {
    FUN_001ee4b0(plVar11,uVar10);
  }
  uVar7 = plVar11[2];
  if (uVar5 != 0) {
    uVar7 = (uVar7 - 1) + uVar10 & -uVar10;
  }
  if ((*(byte *)(plVar11 + 4) & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  plVar11[2] = local_5c + uVar7;
  FUN_0018db00(param_1,param_2,param_4,plVar11,uVar7,param_6);
  return;
}

