
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void create_symtab_sections(Layout * this, Input_objects *
   input_objects, Symbol_table * symtab, uint shnum, off_t * poff, uint local_dynamic_count) */

void __thiscall
gold::Layout::create_symtab_sections
          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,uint shnum,off_t *poff,
          uint param_5)

{
  Stringpool *this_00;
  undefined1 *puVar1;
  Stringpool *pool;
  byte bVar2;
  int iVar3;
  Relobj *pRVar4;
  uint uVar5;
  bool bVar6;
  pointer ppOVar7;
  size_t dyncount;
  char *pcVar8;
  Output_section *pOVar9;
  Output_section_data *pOVar10;
  Output_section *pOVar11;
  Output_symtab_xindex *posd;
  long lVar12;
  pointer ppRVar13;
  ulong uVar14;
  ulong off;
  off_t oVar15;
  ulong align;
  int local_7c;
  uint local_4c;
  uint local_symcount;
  
  if (parameters->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  iVar3 = **(int **)(parameters->target_ + 8);
  if (iVar3 == 0x20) {
    uVar14 = 0x10;
    local_4c = 4;
    local_7c = 0x10;
  }
  else {
    if (iVar3 != 0x40) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections");
    }
    local_4c = 8;
    uVar14 = 0x18;
    local_7c = 0x18;
  }
  ppOVar7 = (this->section_list_).
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
            _M_impl._M_start;
  local_symcount = 1;
  off = uVar14;
  if (ppOVar7 !=
      (this->section_list_).
      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.
      _M_finish) {
    do {
      while (pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0) {
        pOVar9->symtab_index_ = 0xffffffff;
        ppOVar7 = ppOVar7 + 1;
        if ((this->section_list_).
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;
      }
      if (local_symcount == 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");
      }
      pOVar9->symtab_index_ = local_symcount;
      off = off + uVar14;
      local_symcount = local_symcount + 1;
      ppOVar7 = ppOVar7 + 1;
    } while ((this->section_list_).
             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
             _M_impl._M_finish != ppOVar7);
  }
LAB_001a9d4f:
  ppRVar13 = (input_objects->relobj_list_).
             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;
  uVar5 = local_symcount;
  if (ppRVar13 !=
      (input_objects->relobj_list_).
      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {
    do {
      pRVar4 = *ppRVar13;
      ppRVar13 = ppRVar13 + 1;
      local_symcount = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab);
      off = off + (local_symcount - uVar5) * local_7c;
      uVar5 = local_symcount;
    } while ((input_objects->relobj_list_).
             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=
             ppRVar13);
  }
  if (local_symcount * local_7c != off) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/layout.cc",0x1134,"create_symtab_sections");
  }
  pOVar9 = this->dynsym_section_;
  if (pOVar9 == (Output_section *)0x0) {
    dyncount = 0;
    oVar15 = 0;
  }
  else {
    bVar2 = (pOVar9->super_Output_data).field_0x20;
    lVar12 = pOVar9->entsize_ * (ulong)param_5;
    if ((bVar2 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0xe3,"offset");
    }
    oVar15 = (pOVar9->super_Output_data).offset_ + lVar12;
    if ((bVar2 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
    }
    lVar12 = (pOVar9->super_Output_data).data_size_ - lVar12;
    dyncount = lVar12 / (long)uVar14;
    if (lVar12 != (long)local_7c * dyncount) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections");
    }
  }
  pool = &this->sympool_;
  oVar15 = Symbol_table::finalize(symtab,off,oVar15,(ulong)param_5,dyncount,pool,&local_symcount);
  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->strip_all_).value == false) {
    Stringpool_template<char>::set_string_offsets(pool);
    this_00 = &this->namepool_;
    pcVar8 = Stringpool_template<char>::add(this_00,".symtab",false,(Key *)0x0);
    pOVar9 = make_output_section(this,pcVar8,2,0,ORDER_INVALID,false);
    this->symtab_section_ = pOVar9;
    pOVar10 = (Output_section_data *)operator_new(0x40);
    align = (ulong)local_4c;
    bVar2 = (pOVar10->super_Output_data).field_0x20;
    (pOVar10->super_Output_data).address_ = 0;
    pOVar10->addralign_ = align;
    (pOVar10->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_fixed_space_00434088;
    pOVar10->output_section_ = (Output_section *)0x0;
    (pOVar10->super_Output_data).data_size_ = oVar15;
    (pOVar10->super_Output_data).offset_ = -1;
    (pOVar10->super_Output_data).field_0x20 = bVar2 & 0xe0 | 10;
    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** symtab";
    Output_section::add_output_section_data(pOVar9,pOVar10);
    if (0xfeff < shnum) {
      pcVar8 = Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0);
      pOVar11 = make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false);
      posd = (Output_symtab_xindex *)operator_new(0x50);
      (posd->super_Output_section_data).super_Output_data.address_ = 0;
      (posd->super_Output_section_data).addralign_ = 4;
      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;
      (posd->super_Output_section_data).super_Output_data.offset_ = -1;
      (posd->entries_).
      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>
      ._M_impl._M_start = (pointer)0x0;
      (posd->entries_).
      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>
      ._M_impl._M_finish = (pointer)0x0;
      (posd->entries_).
      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>
      ._M_impl._M_end_of_storage = (pointer)0x0;
      this->symtab_xindex_ = posd;
      (posd->super_Output_section_data).super_Output_data.data_size_ = oVar15 / (long)uVar14 << 2;
      (posd->super_Output_section_data).super_Output_data.field_0x20 =
           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10;
      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =
           (_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28;
      Output_section::add_output_section_data(pOVar11,(Output_section_data *)posd);
      if (((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||
         ((pOVar11->field_0xc8 & 8) != 0)) goto LAB_001aa349;
      pOVar11->link_section_ = &pOVar9->super_Output_data;
      pOVar11->addralign_ = 4;
      Output_section::set_entsize(pOVar11,4);
      pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10;
      this->any_postprocessing_sections_ = true;
    }
    pcVar8 = Stringpool_template<char>::add(this_00,".strtab",false,(Key *)0x0);
    pOVar11 = make_output_section(this,pcVar8,3,0,ORDER_INVALID,false);
    pOVar10 = (Output_section_data *)operator_new(0x40);
    puVar1 = &(pOVar10->super_Output_data).field_0x20;
    *puVar1 = *puVar1 & 0xe0;
    (pOVar10->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_strtab_00428978;
    (pOVar10->super_Output_data).address_ = 0;
    (pOVar10->super_Output_data).data_size_ = 0;
    (pOVar10->super_Output_data).offset_ = -1;
    pOVar10->output_section_ = (Output_section *)0x0;
    pOVar10->addralign_ = 1;
    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pool;
    Output_section::add_output_section_data(pOVar11,pOVar10);
    bVar6 = Parameters::incremental_update(parameters);
    if (bVar6) {
      uVar14 = Free_list::allocate(&this->free_list_,oVar15,align,*poff);
      if (oVar15 == -1) {
        pcVar8 = (char *)gettext(
                                "out of patch space for symbol table; relink with --incremental-full"
                                );
                    /* WARNING: Subroutine does not return */
        gold_fallback(pcVar8);
      }
      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {
        Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,
                      oVar15);
      }
    }
    else {
      uVar14 = (align - 1) + *poff & -align;
    }
    symtab->offset_ = off + uVar14;
    bVar2 = (pOVar9->super_Output_data).field_0x20;
    if ((bVar2 & 4) != 0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");
    }
    (pOVar9->super_Output_data).offset_ = uVar14;
    (pOVar9->super_Output_data).field_0x20 = bVar2 | 4;
    if (((bVar2 & 2) == 0) &&
       ((*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),
       ((pOVar9->super_Output_data).field_0x20 & 2) == 0)) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");
    }
    if (((pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0)) || ((pOVar9->field_0xc8 & 8) != 0)
       ) {
LAB_001aa349:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");
    }
    pOVar9->link_section_ = &pOVar11->super_Output_data;
    if (((pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)
        ) || ((local_symcount != pOVar9->info_ && (pOVar9->info_ != 0)))) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");
    }
    pOVar9->info_ = local_symcount;
    Output_section::set_entsize(pOVar9,(long)local_7c);
    if (*poff < (long)(uVar14 + oVar15)) {
      *poff = uVar14 + oVar15;
      return;
    }
  }
  return;
}



void FUN_001a9c80(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)

{
  byte bVar1;
  int iVar2;
  char cVar3;
  long lVar4;
  undefined8 uVar5;
  long *plVar6;
  undefined8 *puVar7;
  long lVar8;
  long lVar9;
  ulong uVar10;
  ulong uVar11;
  long lVar12;
  ulong uVar13;
  uint uVar14;
  undefined8 uStack_90;
  int local_7c;
  uint local_4c;
  uint local_3c [3];
  
  if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x69,"target");
  }
  iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);
  if (iVar2 == 0x20) {
    uVar10 = 0x10;
    local_4c = 4;
    local_7c = 0x10;
  }
  else {
    if (iVar2 != 0x40) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");
    }
    local_4c = 8;
    uVar10 = 0x18;
    local_7c = 0x18;
  }
  plVar6 = *(long **)(param_1 + 0x248);
  local_3c[0] = 1;
  uVar11 = uVar10;
  if (plVar6 != *(long **)(param_1 + 0x250)) {
    do {
      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {
        if (local_3c[0] == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");
        }
        *(uint *)(lVar4 + 0x80) = local_3c[0];
        uVar11 = uVar11 + uVar10;
        local_3c[0] = local_3c[0] + 1;
        plVar6 = plVar6 + 1;
        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;
      }
      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;
      plVar6 = plVar6 + 1;
    } while (*(long **)(param_1 + 0x250) != plVar6);
  }
LAB_001a9d4f:
  puVar7 = (undefined8 *)*param_2;
  uVar14 = local_3c[0];
  if (puVar7 != (undefined8 *)param_2[1]) {
    do {
      plVar6 = (long *)*puVar7;
      puVar7 = puVar7 + 1;
      uStack_90 = 0x1a9d99;
      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);
      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;
      uVar14 = local_3c[0];
    } while ((undefined8 *)param_2[1] != puVar7);
  }
  if (local_3c[0] * local_7c != uVar11) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");
  }
  lVar4 = *(long *)(param_1 + 0x2e0);
  if (lVar4 == 0) {
    lVar4 = 0;
    lVar12 = 0;
  }
  else {
    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;
    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0xe3,"offset");
    }
    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;
    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;
    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;
    lVar4 = lVar9 / (long)uVar10;
    if (lVar9 != local_7c * lVar4) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");
    }
  }
  lVar9 = param_1 + 0xa0;
  lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);
  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);
  }
  if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {
    FUN_0026fab0(lVar9,uStack_90);
    lVar12 = param_1 + 0x10;
    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);
    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);
    *(long **)(param_1 + 0x2d0) = plVar6;
    puVar7 = (undefined8 *)FUN_002d94a0(0x40);
    uVar13 = (ulong)local_4c;
    puVar7[1] = 0;
    puVar7[6] = uVar13;
    *puVar7 = &PTR_FUN_00434088;
    puVar7[5] = 0;
    puVar7[2] = lVar4;
    puVar7[3] = 0xffffffffffffffff;
    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;
    puVar7[7] = "** symtab";
    FUN_001f9c60(plVar6,puVar7);
    if (0xfeff < param_4) {
      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);
      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);
      puVar7 = (undefined8 *)FUN_002d94a0(0x50);
      puVar7[1] = 0;
      puVar7[6] = 4;
      puVar7[5] = 0;
      puVar7[3] = 0xffffffffffffffff;
      puVar7[7] = 0;
      puVar7[8] = 0;
      puVar7[9] = 0;
      *(undefined8 **)(param_1 + 0x2d8) = puVar7;
      puVar7[2] = lVar4 / (long)uVar10 << 2;
      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;
      *puVar7 = &PTR_FUN_00428b28;
      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);
      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||
         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;
      *(long **)(lVar8 + 0x48) = plVar6;
      *(undefined8 *)(lVar8 + 0x30) = 4;
      FUN_001f5d50(lVar8,4);
      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;
      *(undefined1 *)(param_1 + 0x36e) = 1;
    }
    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);
    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);
    puVar7 = (undefined8 *)FUN_002d94a0(0x40);
    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;
    *puVar7 = &PTR_FUN_00428978;
    puVar7[1] = 0;
    puVar7[2] = 0;
    puVar7[3] = 0xffffffffffffffff;
    puVar7[5] = 0;
    puVar7[6] = 1;
    puVar7[7] = lVar9;
    FUN_001f9c60(lVar12,puVar7);
    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);
    if (cVar3 == '\0') {
      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;
    }
    else {
      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);
      if (lVar4 == -1) {
        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");
        FUN_00178280(uVar5);
LAB_001aa2e9:
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/output.h",0xcf,"data_size");
      }
      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {
        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",
                     uVar10,lVar4);
      }
    }
    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;
    bVar1 = *(byte *)(plVar6 + 4);
    if ((bVar1 & 4) != 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");
    }
    plVar6[3] = uVar10;
    *(byte *)(plVar6 + 4) = bVar1 | 4;
    if (((bVar1 & 2) == 0) &&
       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");
    }
    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||
       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {
LAB_001aa349:
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");
    }
    plVar6[9] = lVar12;
    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||
       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");
    }
    *(uint *)(plVar6 + 0xd) = local_3c[0];
    FUN_001f5d50(plVar6,local_7c);
    if (*param_5 < (long)(uVar10 + lVar4)) {
      *param_5 = uVar10 + lVar4;
      return;
    }
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x58
MOV RAX,qword ptr [0x0043e6b0]
MOV qword ptr [RSP + 0x10],RDX
MOV RAX,qword ptr [RAX + 0x18]
MOV dword ptr [RSP + 0x38],ECX
MOV qword ptr [RSP + 0x30],R8
MOV dword ptr [RSP + 0x18],R9D
TEST RAX,RAX
JZ 0x001aa2bb
MOV RAX,qword ptr [RAX + 0x8]
MOV R15,RDI
MOV R13,RSI
MOV EAX,dword ptr [RAX]
CMP EAX,0x20
JZ 0x001a9e80
CMP EAX,0x40
JNZ 0x001aa379
MOV dword ptr [RSP + 0x3c],0x8
MOV EBP,0x18
MOV dword ptr [RSP + 0xc],0x18
MOV RAX,qword ptr [R15 + 0x248]
MOV RBX,RBP
MOV R14D,0x1
CMP RAX,qword ptr [R15 + 0x250]
JNZ 0x001a9d1f
JMP 0x001a9d4f
MOV dword ptr [RDX + 0x80],0xffffffff
ADD RAX,0x8
CMP qword ptr [R15 + 0x250],RAX
JZ 0x001a9d4f
MOV RDX,qword ptr [RAX]
TEST byte ptr [RDX + 0xc8],0x1
JZ 0x001a9d08
TEST R14D,R14D
JZ 0x001aa273
MOV dword ptr [RDX + 0x80],R14D
ADD RBX,RBP
ADD R14D,0x1
ADD RAX,0x8
CMP qword ptr [R15 + 0x250],RAX
JNZ 0x001a9d1f
MOV R9,qword ptr [R13]
CMP R9,qword ptr [R13 + 0x8]
JZ 0x001aa0fa
MOV qword ptr [RSP + 0x28],R15
MOV R12D,dword ptr [RSP + 0xc]
MOV R15D,R14D
MOV R14,qword ptr [RSP + 0x10]
MOV qword ptr [RSP + 0x20],RBP
MOV RBP,RBX
MOV RBX,R9
NOP word ptr [RAX + RAX*0x1]
MOV RDI,qword ptr [RBX]
MOV RDX,RBP
MOV ESI,R15D
MOV RCX,R14
ADD RBX,0x8
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x198]
MOV EDX,EAX
SUB EDX,R15D
MOV R15D,EAX
IMUL EDX,R12D
ADD RBP,RDX
CMP qword ptr [R13 + 0x8],RBX
JNZ 0x001a9d80
MOV RBX,RBP
MOV R15,qword ptr [RSP + 0x28]
MOV RBP,qword ptr [RSP + 0x20]
MOV dword ptr [RSP + 0x4c],EAX
IMUL EAX,dword ptr [RSP + 0xc]
CMP RAX,RBX
JNZ 0x001aa2a3
MOV RAX,qword ptr [R15 + 0x2e0]
MOV ECX,dword ptr [RSP + 0x18]
TEST RAX,RAX
JZ 0x001aa0f0
MOV RDX,qword ptr [RAX + 0x38]
MOVZX EDI,byte ptr [RAX + 0x20]
IMUL RDX,RCX
TEST DIL,0x4
JZ 0x001aa28b
MOV RSI,qword ptr [RAX + 0x18]
ADD RSI,RDX
AND EDI,0x2
JZ 0x001aa2e9
MOV RDI,qword ptr [RAX + 0x10]
SUB RDI,RDX
MOV RAX,RDI
CQO
IDIV RBP
MOV R8,RAX
MOVSXD RAX,dword ptr [RSP + 0xc]
IMUL RAX,R8
CMP RDI,RAX
JNZ 0x001aa319
SUB RSP,0x8
LEA R13,[R15 + 0xa0]
MOV RDX,RSI
MOV RSI,RBX
LEA RAX,[RSP + 0x54]
MOV R9,R13
PUSH RAX
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x002733c0
POP RCX
POP RSI
MOV R14,RAX
MOV RAX,qword ptr [0x0043e6b0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001aa331
CMP byte ptr [RAX + 0x54f9],0x0
JZ 0x001a9ea0
ADD RSP,0x58
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EBP,0x10
MOV dword ptr [RSP + 0x3c],0x4
MOV dword ptr [RSP + 0xc],0x10
JMP 0x001a9ce8
MOV RDI,R13
CALL 0x0026fab0
LEA RAX,[R15 + 0x10]
XOR ECX,ECX
XOR EDX,EDX
LEA RSI,[0x376380]
MOV RDI,RAX
MOV qword ptr [RSP + 0x18],RAX
CALL 0x0026e6a0
XOR R9D,R9D
XOR R8D,R8D
XOR ECX,ECX
MOV EDX,0x2
MOV RSI,RAX
MOV RDI,R15
CALL 0x001a8f30
MOV EDI,0x40
MOV qword ptr [R15 + 0x2d0],RAX
MOV R12,RAX
CALL 0x002d94a0
MOV ESI,dword ptr [RSP + 0x3c]
LEA RCX,[0x376388]
MOV RDI,R12
MOVZX EDX,byte ptr [RAX + 0x20]
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RSP + 0x20],RSI
AND EDX,0xffffffe0
MOV qword ptr [RAX + 0x30],RSI
LEA RSI,[0x434088]
OR EDX,0xa
MOV qword ptr [RAX],RSI
MOV RSI,RAX
MOV qword ptr [RAX + 0x28],0x0
MOV qword ptr [RAX + 0x10],R14
MOV qword ptr [RAX + 0x18],-0x1
MOV byte ptr [RAX + 0x20],DL
MOV qword ptr [RAX + 0x38],RCX
CALL 0x001f9c60
CMP dword ptr [RSP + 0x38],0xfeff
JA 0x001aa163
MOV RDI,qword ptr [RSP + 0x18]
XOR ECX,ECX
XOR EDX,EDX
LEA RSI,[0x3763a0]
CALL 0x0026e6a0
XOR R9D,R9D
XOR R8D,R8D
XOR ECX,ECX
MOV EDX,0x3
MOV RSI,RAX
MOV RDI,R15
CALL 0x001a8f30
MOV EDI,0x40
MOV RBP,RAX
CALL 0x002d94a0
LEA RSI,[0x428978]
MOV RDI,RBP
AND byte ptr [RAX + 0x20],0xe0
MOV qword ptr [RAX],RSI
MOV RSI,RAX
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x10],0x0
MOV qword ptr [RAX + 0x18],-0x1
MOV qword ptr [RAX + 0x28],0x0
MOV qword ptr [RAX + 0x30],0x1
MOV qword ptr [RAX + 0x38],R13
CALL 0x001f9c60
MOV RDI,qword ptr [0x0043e6b0]
CALL 0x002379c0
TEST AL,AL
JNZ 0x001aa102
MOV RAX,qword ptr [RSP + 0x30]
MOV RCX,qword ptr [RSP + 0x20]
MOV RAX,qword ptr [RAX]
LEA R13,[RCX + RAX*0x1 + -0x1]
MOV RAX,RCX
NEG RAX
AND R13,RAX
MOV RAX,qword ptr [RSP + 0x10]
ADD RBX,R13
MOV qword ptr [RAX + 0x10],RBX
MOVZX EAX,byte ptr [R12 + 0x20]
TEST AL,0x4
JNZ 0x001aa301
OR EAX,0x4
MOV qword ptr [R12 + 0x18],R13
MOV byte ptr [R12 + 0x20],AL
TEST AL,0x2
JZ 0x001aa0be
MOV EAX,dword ptr [R12 + 0x50]
TEST EAX,EAX
JNZ 0x001aa349
MOVZX EAX,byte ptr [R12 + 0xc8]
TEST AL,0x4
JNZ 0x001aa349
TEST AL,0x8
JNZ 0x001aa349
CMP qword ptr [R12 + 0x58],0x0
MOV EAX,dword ptr [RSP + 0x4c]
MOV qword ptr [R12 + 0x48],RBP
JNZ 0x001aa361
CMP qword ptr [R12 + 0x60],0x0
JNZ 0x001aa361
MOV EDX,dword ptr [R12 + 0x68]
CMP EAX,EDX
JZ 0x001aa089
TEST EDX,EDX
JNZ 0x001aa361
MOV dword ptr [R12 + 0x68],EAX
MOVSXD RSI,dword ptr [RSP + 0xc]
MOV RDI,R12
ADD R13,R14
CALL 0x001f5d50
MOV RAX,qword ptr [RSP + 0x30]
CMP R13,qword ptr [RAX]
JLE 0x001a9e71
MOV qword ptr [RAX],R13
ADD RSP,0x58
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RAX,qword ptr [R12]
MOV RDI,R12
CALL qword ptr [RAX + 0x70]
TEST byte ptr [R12 + 0x20],0x2
JNZ 0x001aa031
LEA RDX,[0x3775a0]
MOV ESI,0x163
LEA RDI,[0x373454]
CALL 0x0017c650
XOR R8D,R8D
XOR ESI,ESI
JMP 0x001a9e2b
MOV EAX,R14D
JMP 0x001a9dbb
MOV RAX,qword ptr [RSP + 0x30]
MOV RDX,qword ptr [RSP + 0x20]
LEA RDI,[R15 + 0x468]
MOV RSI,R14
MOV RCX,qword ptr [RAX]
CALL 0x001a4800
MOV R13,RAX
CMP R14,-0x1
JZ 0x001aa2d3
MOV RAX,qword ptr [0x0043e6b0]
CMP qword ptr [RAX + 0x10],0x0
JZ 0x001aa002
TEST byte ptr [RAX + 0x24],0x10
JZ 0x001aa002
MOV RDI,qword ptr [RAX]
MOV RCX,R14
MOV RDX,R13
LEA RSI,[0x376aa0]
XOR EAX,EAX
CALL 0x00178100
JMP 0x001aa002
MOV RDI,qword ptr [RSP + 0x18]
XOR ECX,ECX
XOR EDX,EDX
LEA RSI,[0x376392]
CALL 0x0026e6a0
XOR R9D,R9D
XOR R8D,R8D
XOR ECX,ECX
MOV EDX,0x12
MOV RSI,RAX
MOV RDI,R15
CALL 0x001a8f30
MOV EDI,0x50
MOV qword ptr [RSP + 0x28],RAX
CALL 0x002d94a0
MOV RCX,qword ptr [RSP + 0x28]
MOV RSI,RAX
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x30],0x4
MOV RDI,RCX
MOV qword ptr [RAX + 0x28],0x0
MOV RAX,R14
CQO
MOV qword ptr [RSI + 0x18],-0x1
IDIV RBP
MOV qword ptr [RSI + 0x38],0x0
MOV qword ptr [RSI + 0x40],0x0
MOV qword ptr [RSI + 0x48],0x0
MOV qword ptr [R15 + 0x2d8],RSI
SHL RAX,0x2
MOV qword ptr [RSI + 0x10],RAX
MOVZX EAX,byte ptr [RSI + 0x20]
AND EAX,0xffffffe0
OR EAX,0xa
MOV byte ptr [RSI + 0x20],AL
LEA RAX,[0x428b28]
MOV qword ptr [RSI],RAX
CALL 0x001f9c60
MOV RCX,qword ptr [RSP + 0x28]
MOV EDX,dword ptr [RCX + 0x50]
TEST EDX,EDX
JNZ 0x001aa349
MOVZX EAX,byte ptr [RCX + 0xc8]
TEST AL,0x4
JNZ 0x001aa349
TEST AL,0x8
JNZ 0x001aa349
MOV qword ptr [RCX + 0x48],R12
MOV RDI,RCX
MOV ESI,0x4
MOV qword ptr [RCX + 0x30],0x4
MOV qword ptr [RSP + 0x28],RCX
CALL 0x001f5d50
MOV RCX,qword ptr [RSP + 0x28]
OR byte ptr [RCX + 0xc8],0x10
MOV byte ptr [R15 + 0x36e],0x1
JMP 0x001a9f54
LEA RDX,[0x3773c0]
MOV ESI,0xd89
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x3778b0]
MOV ESI,0xe3
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x3773e0]
MOV ESI,0x1134
LEA RDI,[0x37612f]
CALL 0x0017c650
LEA RDX,[0x37784b]
MOV ESI,0x69
LEA RDI,[0x3726d0]
CALL 0x0017c650
LEA RDI,[0x376a58]
CALL 0x00147320
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00178280
LEA RDX,[0x3778b8]
MOV ESI,0xcf
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x377490]
MOV ESI,0x14b
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x3773e0]
MOV ESI,0x1143
LEA RDI,[0x37612f]
CALL 0x0017c650
LEA RDX,[0x3778a8]
MOV ESI,0x5c
LEA RDI,[0x3726d0]
CALL 0x0017c650
LEA RDX,[0x377550]
MOV ESI,0xd07
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x3773a8]
MOV ESI,0xd5e
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x3773e0]
MOV ESI,0x1110
LEA RDI,[0x37612f]
CALL 0x0017c650
(translation_unit "void FUN_001a9c80(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)\n\n{\n  byte bVar1;\n  int iVar2;\n  char cVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  long lVar9;\n  ulong uVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  uint uVar14;\n  undefined8 uStack_90;\n  int local_7c;\n  uint local_4c;\n  uint local_3c [3];\n  \n  if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }\n  iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);\n  if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }\n  plVar6 = *(long **)(param_1 + 0x248);\n  local_3c[0] = 1;\n  uVar11 = uVar10;\n  if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }\nLAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;\n  uVar14 = local_3c[0];\n  if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }\n  if (local_3c[0] * local_7c != uVar11) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  lVar4 = *(long *)(param_1 + 0x2e0);\n  if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  lVar9 = param_1 + 0xa0;\n  lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }\n  if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_001a9c80(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)\n\n{\n  byte bVar1;\n  int iVar2;\n  char cVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  long lVar9;\n  ulong uVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  uint uVar14;\n  undefined8 uStack_90;\n  int local_7c;\n  uint local_4c;\n  uint local_3c [3];\n  \n  if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }\n  iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);\n  if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }\n  plVar6 = *(long **)(param_1 + 0x248);\n  local_3c[0] = 1;\n  uVar11 = uVar10;\n  if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }\nLAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;\n  uVar14 = local_3c[0];\n  if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }\n  if (local_3c[0] * local_7c != uVar11) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  lVar4 = *(long *)(param_1 + 0x2e0);\n  if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  lVar9 = param_1 + 0xa0;\n  lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }\n  if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001a9c80(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)" identifier (parameter_list "(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "uint param_6" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  char cVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  long lVar9;\n  ulong uVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  uint uVar14;\n  undefined8 uStack_90;\n  int local_7c;\n  uint local_4c;\n  uint local_3c [3];\n  \n  if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }\n  iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);\n  if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }\n  plVar6 = *(long **)(param_1 + 0x248);\n  local_3c[0] = 1;\n  uVar11 = uVar10;\n  if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }\nLAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;\n  uVar14 = local_3c[0];\n  if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }\n  if (local_3c[0] * local_7c != uVar11) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  lVar4 = *(long *)(param_1 + 0x2e0);\n  if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  lVar9 = param_1 + 0xa0;\n  lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }\n  if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined8 uStack_90;" type_identifier identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_3c [3];" type_identifier (array_declarator "local_3c [3]" identifier [ number_literal ]) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "FUN_0017c650("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (expression_statement "iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);" (assignment_expression "iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" identifier = (pointer_expression "**(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" * (pointer_expression "*(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" * (cast_expression "(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }" if (parenthesized_expression "(iVar2 == 0x20)" ( (binary_expression "iVar2 == 0x20" identifier == number_literal) )) (compound_statement "{\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }" { (expression_statement "uVar10 = 0x10;" (assignment_expression "uVar10 = 0x10" identifier = number_literal) ;) (expression_statement "local_4c = 4;" (assignment_expression "local_4c = 4" identifier = number_literal) ;) (expression_statement "local_7c = 0x10;" (assignment_expression "local_7c = 0x10" identifier = number_literal) ;) }) (else_clause "else {\n    if (iVar2 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }" else (compound_statement "{\n    if (iVar2 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }" { (if_statement "if (iVar2 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }" if (parenthesized_expression "(iVar2 != 0x40)" ( (binary_expression "iVar2 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections")" identifier (argument_list "("../../gold/layout.cc",0x1110,"create_symtab_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_symtab_sections"" " string_content ") ))) ;) })) (expression_statement "local_4c = 8;" (assignment_expression "local_4c = 8" identifier = number_literal) ;) (expression_statement "uVar10 = 0x18;" (assignment_expression "uVar10 = 0x18" identifier = number_literal) ;) (expression_statement "local_7c = 0x18;" (assignment_expression "local_7c = 0x18" identifier = number_literal) ;) }))) (expression_statement "plVar6 = *(long **)(param_1 + 0x248);" (assignment_expression "plVar6 = *(long **)(param_1 + 0x248)" identifier = (pointer_expression "*(long **)(param_1 + 0x248)" * (cast_expression "(long **)(param_1 + 0x248)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "local_3c[0] = 1;" (assignment_expression "local_3c[0] = 1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (if_statement "if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }" if (parenthesized_expression "(plVar6 != *(long **)(param_1 + 0x250))" ( (binary_expression "plVar6 != *(long **)(param_1 + 0x250)" identifier != (pointer_expression "*(long **)(param_1 + 0x250)" * (cast_expression "(long **)(param_1 + 0x250)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }" { (do_statement "do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);" do (compound_statement "{\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    }" { (while_statement "while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }" while (parenthesized_expression "(lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0)" ( (comma_expression "lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0" (assignment_expression "lVar4 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) , (binary_expression "(*(byte *)(lVar4 + 200) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar4 + 200) & 1)" ( (binary_expression "*(byte *)(lVar4 + 200) & 1" (pointer_expression "*(byte *)(lVar4 + 200)" * (cast_expression "(byte *)(lVar4 + 200)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 200)" ( (binary_expression "lVar4 + 200" identifier + number_literal) )))) & number_literal) )) != number_literal)) )) (compound_statement "{\n        if (local_3c[0] == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }" { (if_statement "if (local_3c[0] == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }" if (parenthesized_expression "(local_3c[0] == 0)" ( (binary_expression "local_3c[0] == 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }" { comment (expression_statement "FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");" (call_expression "FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index")" identifier (argument_list "("../../gold/output.h",0xd89,"set_symtab_index")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_symtab_index"" " string_content ") ))) ;) })) (expression_statement "*(uint *)(lVar4 + 0x80) = local_3c[0];" (assignment_expression "*(uint *)(lVar4 + 0x80) = local_3c[0]" (pointer_expression "*(uint *)(lVar4 + 0x80)" * (cast_expression "(uint *)(lVar4 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x80)" ( (binary_expression "lVar4 + 0x80" identifier + number_literal) )))) = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar11 + uVar10;" (assignment_expression "uVar11 = uVar11 + uVar10" identifier = (binary_expression "uVar11 + uVar10" identifier + identifier)) ;) (expression_statement "local_3c[0] = local_3c[0] + 1;" (assignment_expression "local_3c[0] = local_3c[0] + 1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (binary_expression "local_3c[0] + 1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "plVar6 = plVar6 + 1;" (assignment_expression "plVar6 = plVar6 + 1" identifier = (binary_expression "plVar6 + 1" identifier + number_literal)) ;) (if_statement "if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;" if (parenthesized_expression "(*(long **)(param_1 + 0x250) == plVar6)" ( (binary_expression "*(long **)(param_1 + 0x250) == plVar6" (pointer_expression "*(long **)(param_1 + 0x250)" * (cast_expression "(long **)(param_1 + 0x250)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_001a9d4f;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(lVar4 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(lVar4 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(lVar4 + 0x80)" * (cast_expression "(undefined4 *)(lVar4 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x80)" ( (binary_expression "lVar4 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "plVar6 = plVar6 + 1;" (assignment_expression "plVar6 = plVar6 + 1" identifier = (binary_expression "plVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(long **)(param_1 + 0x250) != plVar6)" ( (binary_expression "*(long **)(param_1 + 0x250) != plVar6" (pointer_expression "*(long **)(param_1 + 0x250)" * (cast_expression "(long **)(param_1 + 0x250)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) )))) != identifier) )) ;) })) (labeled_statement "LAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;" statement_identifier : (expression_statement "puVar7 = (undefined8 *)*param_2;" (assignment_expression "puVar7 = (undefined8 *)*param_2" identifier = (cast_expression "(undefined8 *)*param_2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) (expression_statement "uVar14 = local_3c[0];" (assignment_expression "uVar14 = local_3c[0]" identifier = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (if_statement "if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }" if (parenthesized_expression "(puVar7 != (undefined8 *)param_2[1])" ( (binary_expression "puVar7 != (undefined8 *)param_2[1]" identifier != (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }" { (do_statement "do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);" do (compound_statement "{\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    }" { (expression_statement "plVar6 = (long *)*puVar7;" (assignment_expression "plVar6 = (long *)*puVar7" identifier = (cast_expression "(long *)*puVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "uStack_90 = 0x1a9d99;" (assignment_expression "uStack_90 = 0x1a9d99" identifier = number_literal) ;) (expression_statement "local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);" (assignment_expression "local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3)" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "(**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3)" (parenthesized_expression "(**(code **)(*plVar6 + 0x198))" ( (pointer_expression "**(code **)(*plVar6 + 0x198)" * (pointer_expression "*(code **)(*plVar6 + 0x198)" * (cast_expression "(code **)(*plVar6 + 0x198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x198)" ( (binary_expression "*plVar6 + 0x198" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6,uVar14,uVar11,param_3)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;" (assignment_expression "uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c" identifier = (binary_expression "uVar11 + (local_3c[0] - uVar14) * local_7c" identifier + (binary_expression "(local_3c[0] - uVar14) * local_7c" (parenthesized_expression "(local_3c[0] - uVar14)" ( (binary_expression "local_3c[0] - uVar14" (subscript_expression "local_3c[0]" identifier [ number_literal ]) - identifier) )) * identifier))) ;) (expression_statement "uVar14 = local_3c[0];" (assignment_expression "uVar14 = local_3c[0]" identifier = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "((undefined8 *)param_2[1] != puVar7)" ( (binary_expression "(undefined8 *)param_2[1] != puVar7" (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) != identifier) )) ;) })) (if_statement "if (local_3c[0] * local_7c != uVar11) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }" if (parenthesized_expression "(local_3c[0] * local_7c != uVar11)" ( (binary_expression "local_3c[0] * local_7c != uVar11" (binary_expression "local_3c[0] * local_7c" (subscript_expression "local_3c[0]" identifier [ number_literal ]) * identifier) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }" { comment (expression_statement "FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections")" identifier (argument_list "("../../gold/layout.cc",0x1134,"create_symtab_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_symtab_sections"" " string_content ") ))) ;) })) (expression_statement "lVar4 = *(long *)(param_1 + 0x2e0);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x2e0)" identifier = (pointer_expression "*(long *)(param_1 + 0x2e0)" * (cast_expression "(long *)(param_1 + 0x2e0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2e0)" ( (binary_expression "param_1 + 0x2e0" identifier + number_literal) ))))) ;) (if_statement "if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar4 = 0;\n    lVar12 = 0;\n  }" { (expression_statement "lVar4 = 0;" (assignment_expression "lVar4 = 0" identifier = number_literal) ;) (expression_statement "lVar12 = 0;" (assignment_expression "lVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" else (compound_statement "{\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" { (expression_statement "lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;" (assignment_expression "lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6" identifier = (binary_expression "*(long *)(lVar4 + 0x38) * (ulong)param_6" (pointer_expression "*(long *)(lVar4 + 0x38)" * (cast_expression "(long *)(lVar4 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x38)" ( (binary_expression "lVar4 + 0x38" identifier + number_literal) )))) * (cast_expression "(ulong)param_6" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }" if (parenthesized_expression "((*(byte *)(lVar4 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar4 + 0x20) & 4" (pointer_expression "*(byte *)(lVar4 + 0x20)" * (cast_expression "(byte *)(lVar4 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x20)" ( (binary_expression "lVar4 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_0017c650("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "lVar12 = *(long *)(lVar4 + 0x18) + lVar9;" (assignment_expression "lVar12 = *(long *)(lVar4 + 0x18) + lVar9" identifier = (binary_expression "*(long *)(lVar4 + 0x18) + lVar9" (pointer_expression "*(long *)(lVar4 + 0x18)" * (cast_expression "(long *)(lVar4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x18)" ( (binary_expression "lVar4 + 0x18" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;" if (parenthesized_expression "((*(byte *)(lVar4 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar4 + 0x20) & 2" (pointer_expression "*(byte *)(lVar4 + 0x20)" * (cast_expression "(byte *)(lVar4 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x20)" ( (binary_expression "lVar4 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001aa2e9;" goto statement_identifier ;)) (expression_statement "lVar9 = *(long *)(lVar4 + 0x10) - lVar9;" (assignment_expression "lVar9 = *(long *)(lVar4 + 0x10) - lVar9" identifier = (binary_expression "*(long *)(lVar4 + 0x10) - lVar9" (pointer_expression "*(long *)(lVar4 + 0x10)" * (cast_expression "(long *)(lVar4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x10)" ( (binary_expression "lVar4 + 0x10" identifier + number_literal) )))) - identifier)) ;) (expression_statement "lVar4 = lVar9 / (long)uVar10;" (assignment_expression "lVar4 = lVar9 / (long)uVar10" identifier = (binary_expression "lVar9 / (long)uVar10" identifier / (cast_expression "(long)uVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (lVar9 != local_7c * lVar4) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }" if (parenthesized_expression "(lVar9 != local_7c * lVar4)" ( (binary_expression "lVar9 != local_7c * lVar4" identifier != (binary_expression "local_7c * lVar4" identifier * identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections")" identifier (argument_list "("../../gold/layout.cc",0x1143,"create_symtab_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_symtab_sections"" " string_content ") ))) ;) })) }))) (expression_statement "lVar9 = param_1 + 0xa0;" (assignment_expression "lVar9 = param_1 + 0xa0" identifier = (binary_expression "param_1 + 0xa0" identifier + number_literal)) ;) (expression_statement "lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);" (assignment_expression "lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9)" identifier = (call_expression "FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9)" identifier (argument_list "(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9)" ( identifier , identifier , identifier , (cast_expression "(ulong)param_6" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , identifier )))) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }" { comment (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);" (call_expression "FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",local_3c)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }" { (expression_statement "FUN_0026fab0(lVar9,uStack_90);" (call_expression "FUN_0026fab0(lVar9,uStack_90)" identifier (argument_list "(lVar9,uStack_90)" ( identifier , identifier ))) ;) (expression_statement "lVar12 = param_1 + 0x10;" (assignment_expression "lVar12 = param_1 + 0x10" identifier = (binary_expression "param_1 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);" (assignment_expression "uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0)" identifier = (call_expression "FUN_0026e6a0(lVar12,".symtab",0,0)" identifier (argument_list "(lVar12,".symtab",0,0)" ( identifier , (string_literal "".symtab"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);" (assignment_expression "plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0)" identifier = (cast_expression "(long *)FUN_001a8f30(param_1,uVar5,2,0,0,0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001a8f30(param_1,uVar5,2,0,0,0)" identifier (argument_list "(param_1,uVar5,2,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "*(long **)(param_1 + 0x2d0) = plVar6;" (assignment_expression "*(long **)(param_1 + 0x2d0) = plVar6" (pointer_expression "*(long **)(param_1 + 0x2d0)" * (cast_expression "(long **)(param_1 + 0x2d0)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7 = (undefined8 *)FUN_002d94a0(0x40);" (assignment_expression "puVar7 = (undefined8 *)FUN_002d94a0(0x40)" identifier = (cast_expression "(undefined8 *)FUN_002d94a0(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002d94a0(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "uVar13 = (ulong)local_4c;" (assignment_expression "uVar13 = (ulong)local_4c" identifier = (cast_expression "(ulong)local_4c" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = uVar13;" (assignment_expression "puVar7[6] = uVar13" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar7 = &PTR_FUN_00434088;" (assignment_expression "*puVar7 = &PTR_FUN_00434088" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00434088" & identifier)) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = lVar4;" (assignment_expression "puVar7[2] = lVar4" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = 0xffffffffffffffff;" (assignment_expression "puVar7[3] = 0xffffffffffffffff" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar7 + 4) & 0xe0 | 10" (binary_expression "*(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar7[7] = "** symtab";" (assignment_expression "puVar7[7] = "** symtab"" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = (string_literal ""** symtab"" " string_content ")) ;) (expression_statement "FUN_001f9c60(plVar6,puVar7);" (call_expression "FUN_001f9c60(plVar6,puVar7)" identifier (argument_list "(plVar6,puVar7)" ( identifier , identifier ))) ;) (if_statement "if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }" if (parenthesized_expression "(0xfeff < param_4)" ( (binary_expression "0xfeff < param_4" number_literal < identifier) )) (compound_statement "{\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }" { (expression_statement "uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);" (assignment_expression "uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0)" identifier = (call_expression "FUN_0026e6a0(lVar12,".symtab_shndx",0,0)" identifier (argument_list "(lVar12,".symtab_shndx",0,0)" ( identifier , (string_literal "".symtab_shndx"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);" (assignment_expression "lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0)" identifier = (call_expression "FUN_001a8f30(param_1,uVar5,0x12,0,0,0)" identifier (argument_list "(param_1,uVar5,0x12,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "puVar7 = (undefined8 *)FUN_002d94a0(0x50);" (assignment_expression "puVar7 = (undefined8 *)FUN_002d94a0(0x50)" identifier = (cast_expression "(undefined8 *)FUN_002d94a0(0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002d94a0(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 4;" (assignment_expression "puVar7[6] = 4" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0xffffffffffffffff;" (assignment_expression "puVar7[3] = 0xffffffffffffffff" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 **)(param_1 + 0x2d8) = puVar7;" (assignment_expression "*(undefined8 **)(param_1 + 0x2d8) = puVar7" (pointer_expression "*(undefined8 **)(param_1 + 0x2d8)" * (cast_expression "(undefined8 **)(param_1 + 0x2d8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2d8)" ( (binary_expression "param_1 + 0x2d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7[2] = lVar4 / (long)uVar10 << 2;" (assignment_expression "puVar7[2] = lVar4 / (long)uVar10 << 2" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (binary_expression "lVar4 / (long)uVar10 << 2" (binary_expression "lVar4 / (long)uVar10" identifier / (cast_expression "(long)uVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) << number_literal)) ;) (expression_statement "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar7 + 4) & 0xe0 | 10" (binary_expression "*(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*puVar7 = &PTR_FUN_00428b28;" (assignment_expression "*puVar7 = &PTR_FUN_00428b28" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00428b28" & identifier)) ;) (expression_statement "FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);" (call_expression "FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10)" identifier (argument_list "(lVar8,puVar7,lVar4 % (long)uVar10)" ( identifier , identifier , (binary_expression "lVar4 % (long)uVar10" identifier % (cast_expression "(long)uVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (if_statement "if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;" if (parenthesized_expression "(((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0))" ( (binary_expression "((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)" (parenthesized_expression "((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0))" ( (binary_expression "(*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)" (parenthesized_expression "(*(int *)(lVar8 + 0x50) != 0)" ( (binary_expression "*(int *)(lVar8 + 0x50) != 0" (pointer_expression "*(int *)(lVar8 + 0x50)" * (cast_expression "(int *)(lVar8 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x50)" ( (binary_expression "lVar8 + 0x50" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(lVar8 + 200) & 4) != 0)" ( (binary_expression "(*(byte *)(lVar8 + 200) & 4) != 0" (parenthesized_expression "(*(byte *)(lVar8 + 200) & 4)" ( (binary_expression "*(byte *)(lVar8 + 200) & 4" (pointer_expression "*(byte *)(lVar8 + 200)" * (cast_expression "(byte *)(lVar8 + 200)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 200)" ( (binary_expression "lVar8 + 200" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(lVar8 + 200) & 8) != 0)" ( (binary_expression "(*(byte *)(lVar8 + 200) & 8) != 0" (parenthesized_expression "(*(byte *)(lVar8 + 200) & 8)" ( (binary_expression "*(byte *)(lVar8 + 200) & 8" (pointer_expression "*(byte *)(lVar8 + 200)" * (cast_expression "(byte *)(lVar8 + 200)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 200)" ( (binary_expression "lVar8 + 200" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_001aa349;" goto statement_identifier ;)) (expression_statement "*(long **)(lVar8 + 0x48) = plVar6;" (assignment_expression "*(long **)(lVar8 + 0x48) = plVar6" (pointer_expression "*(long **)(lVar8 + 0x48)" * (cast_expression "(long **)(lVar8 + 0x48)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + 0x48)" ( (binary_expression "lVar8 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar8 + 0x30) = 4;" (assignment_expression "*(undefined8 *)(lVar8 + 0x30) = 4" (pointer_expression "*(undefined8 *)(lVar8 + 0x30)" * (cast_expression "(undefined8 *)(lVar8 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x30)" ( (binary_expression "lVar8 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001f5d50(lVar8,4);" (call_expression "FUN_001f5d50(lVar8,4)" identifier (argument_list "(lVar8,4)" ( identifier , number_literal ))) ;) (expression_statement "*(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;" (assignment_expression "*(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10" (pointer_expression "*(byte *)(lVar8 + 200)" * (cast_expression "(byte *)(lVar8 + 200)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 200)" ( (binary_expression "lVar8 + 200" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar8 + 200) | 0x10" (pointer_expression "*(byte *)(lVar8 + 200)" * (cast_expression "(byte *)(lVar8 + 200)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 200)" ( (binary_expression "lVar8 + 200" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + 0x36e) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x36e) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x36e)" * (cast_expression "(undefined1 *)(param_1 + 0x36e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36e)" ( (binary_expression "param_1 + 0x36e" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);" (assignment_expression "uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0)" identifier = (call_expression "FUN_0026e6a0(lVar12,".strtab",0,0)" identifier (argument_list "(lVar12,".strtab",0,0)" ( identifier , (string_literal "".strtab"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);" (assignment_expression "lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0)" identifier = (call_expression "FUN_001a8f30(param_1,uVar5,3,0,0,0)" identifier (argument_list "(param_1,uVar5,3,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "puVar7 = (undefined8 *)FUN_002d94a0(0x40);" (assignment_expression "puVar7 = (undefined8 *)FUN_002d94a0(0x40)" identifier = (cast_expression "(undefined8 *)FUN_002d94a0(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002d94a0(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*puVar7 = &PTR_FUN_00428978;" (assignment_expression "*puVar7 = &PTR_FUN_00428978" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00428978" & identifier)) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0xffffffffffffffff;" (assignment_expression "puVar7[3] = 0xffffffffffffffff" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 1;" (assignment_expression "puVar7[6] = 1" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = lVar9;" (assignment_expression "puVar7[7] = lVar9" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_001f9c60(lVar12,puVar7);" (call_expression "FUN_001f9c60(lVar12,puVar7)" identifier (argument_list "(lVar12,puVar7)" ( identifier , identifier ))) ;) (expression_statement "cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);" (assignment_expression "cVar3 = FUN_002379c0(PTR_DAT_0043e6b0)" identifier = (call_expression "FUN_002379c0(PTR_DAT_0043e6b0)" identifier (argument_list "(PTR_DAT_0043e6b0)" ( identifier )))) ;) (if_statement "if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }" { (expression_statement "uVar10 = (uVar13 - 1) + *param_5 & -uVar13;" (assignment_expression "uVar10 = (uVar13 - 1) + *param_5 & -uVar13" identifier = (binary_expression "(uVar13 - 1) + *param_5 & -uVar13" (binary_expression "(uVar13 - 1) + *param_5" (parenthesized_expression "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) )) + (pointer_expression "*param_5" * identifier)) & (unary_expression "-uVar13" - identifier))) ;) }) (else_clause "else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }" else (compound_statement "{\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }" { (expression_statement "uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);" (assignment_expression "uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5)" identifier = (call_expression "FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5)" identifier (argument_list "(param_1 + 0x468,lVar4,uVar13,*param_5)" ( (binary_expression "param_1 + 0x468" identifier + number_literal) , identifier , identifier , (pointer_expression "*param_5" * identifier) )))) ;) (if_statement "if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "(lVar4 == -1)" ( (binary_expression "lVar4 == -1" identifier == number_literal) )) (compound_statement "{\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" { (expression_statement "uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");" (assignment_expression "uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full")" identifier = (call_expression "gettext("out of patch space for symbol table; relink with --incremental-full")" identifier (argument_list "("out of patch space for symbol table; relink with --incremental-full")" ( (string_literal ""out of patch space for symbol table; relink with --incremental-full"" " string_content ") )))) ;) (expression_statement "FUN_00178280(uVar5);" (call_expression "FUN_00178280(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (labeled_statement "LAB_001aa2e9:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }" { (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4)" identifier (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4)" ( (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" * (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""create_symtab_sections: %08lx %08lx .symtab"" " string_content ") , identifier , identifier ))) ;) })) }))) (expression_statement "*(ulong *)(param_3 + 0x10) = uVar11 + uVar10;" (assignment_expression "*(ulong *)(param_3 + 0x10) = uVar11 + uVar10" (pointer_expression "*(ulong *)(param_3 + 0x10)" * (cast_expression "(ulong *)(param_3 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) = (binary_expression "uVar11 + uVar10" identifier + identifier)) ;) (expression_statement "bVar1 = *(byte *)(plVar6 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar6 + 4)" identifier = (pointer_expression "*(byte *)(plVar6 + 4)" * (cast_expression "(byte *)(plVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset")" identifier (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_file_offset"" " string_content ") ))) ;) })) (expression_statement "plVar6[3] = uVar10;" (assignment_expression "plVar6[3] = uVar10" (subscript_expression "plVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(plVar6 + 4) = bVar1 | 4;" (assignment_expression "*(byte *)(plVar6 + 4) = bVar1 | 4" (pointer_expression "*(byte *)(plVar6 + 4)" * (cast_expression "(byte *)(plVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 4" identifier | number_literal)) ;) (if_statement "if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }" if (parenthesized_expression "(((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0))" ( (binary_expression "((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)" (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)" ( (comma_expression "(**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0" (call_expression "(**(code **)(*plVar6 + 0x70))(plVar6)" (parenthesized_expression "(**(code **)(*plVar6 + 0x70))" ( (pointer_expression "**(code **)(*plVar6 + 0x70)" * (pointer_expression "*(code **)(*plVar6 + 0x70)" * (cast_expression "(code **)(*plVar6 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x70)" ( (binary_expression "*plVar6 + 0x70" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6)" ( identifier ))) , (binary_expression "(*(byte *)(plVar6 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar6 + 4) & 2)" ( (binary_expression "*(byte *)(plVar6 + 4) & 2" (pointer_expression "*(byte *)(plVar6 + 4)" * (cast_expression "(byte *)(plVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;) })) (if_statement "if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }" if (parenthesized_expression "((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0))" ( (binary_expression "(((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)" (parenthesized_expression "(((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0))" ( (binary_expression "((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)" (parenthesized_expression "((int)plVar6[10] != 0)" ( (binary_expression "(int)plVar6[10] != 0" (cast_expression "(int)plVar6[10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar6[10]" identifier [ number_literal ])) != number_literal) )) || (parenthesized_expression "((*(byte *)(plVar6 + 0x19) & 4) != 0)" ( (binary_expression "(*(byte *)(plVar6 + 0x19) & 4) != 0" (parenthesized_expression "(*(byte *)(plVar6 + 0x19) & 4)" ( (binary_expression "*(byte *)(plVar6 + 0x19) & 4" (pointer_expression "*(byte *)(plVar6 + 0x19)" * (cast_expression "(byte *)(plVar6 + 0x19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 0x19)" ( (binary_expression "plVar6 + 0x19" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(plVar6 + 0x19) & 8) != 0)" ( (binary_expression "(*(byte *)(plVar6 + 0x19) & 8) != 0" (parenthesized_expression "(*(byte *)(plVar6 + 0x19) & 8)" ( (binary_expression "*(byte *)(plVar6 + 0x19) & 8" (pointer_expression "*(byte *)(plVar6 + 0x19)" * (cast_expression "(byte *)(plVar6 + 0x19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 0x19)" ( (binary_expression "plVar6 + 0x19" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }" { (labeled_statement "LAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_0017c650("../../gold/output.h",0xd07,"set_link_section")" identifier (argument_list "("../../gold/output.h",0xd07,"set_link_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_link_section"" " string_content ") ))) ;)) })) (expression_statement "plVar6[9] = lVar12;" (assignment_expression "plVar6[9] = lVar12" (subscript_expression "plVar6[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }" if (parenthesized_expression "(((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0))))" ( (binary_expression "((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))" (parenthesized_expression "((plVar6[0xb] != 0) || (plVar6[0xc] != 0))" ( (binary_expression "(plVar6[0xb] != 0) || (plVar6[0xc] != 0)" (parenthesized_expression "(plVar6[0xb] != 0)" ( (binary_expression "plVar6[0xb] != 0" (subscript_expression "plVar6[0xb]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(plVar6[0xc] != 0)" ( (binary_expression "plVar6[0xc] != 0" (subscript_expression "plVar6[0xc]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))" ( (parenthesized_expression "(local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0))" ( (binary_expression "local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)" (binary_expression "local_3c[0] != *(uint *)(plVar6 + 0xd)" (subscript_expression "local_3c[0]" identifier [ number_literal ]) != (pointer_expression "*(uint *)(plVar6 + 0xd)" * (cast_expression "(uint *)(plVar6 + 0xd)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 0xd)" ( (binary_expression "plVar6 + 0xd" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(plVar6 + 0xd) != 0)" ( (binary_expression "*(uint *)(plVar6 + 0xd) != 0" (pointer_expression "*(uint *)(plVar6 + 0xd)" * (cast_expression "(uint *)(plVar6 + 0xd)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 0xd)" ( (binary_expression "plVar6 + 0xd" identifier + number_literal) )))) != number_literal) ))) )) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/output.h",0xd5e,"set_info");" (call_expression "FUN_0017c650("../../gold/output.h",0xd5e,"set_info")" identifier (argument_list "("../../gold/output.h",0xd5e,"set_info")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info"" " string_content ") ))) ;) })) (expression_statement "*(uint *)(plVar6 + 0xd) = local_3c[0];" (assignment_expression "*(uint *)(plVar6 + 0xd) = local_3c[0]" (pointer_expression "*(uint *)(plVar6 + 0xd)" * (cast_expression "(uint *)(plVar6 + 0xd)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 0xd)" ( (binary_expression "plVar6 + 0xd" identifier + number_literal) )))) = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (expression_statement "FUN_001f5d50(plVar6,local_7c);" (call_expression "FUN_001f5d50(plVar6,local_7c)" identifier (argument_list "(plVar6,local_7c)" ( identifier , identifier ))) ;) (if_statement "if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }" if (parenthesized_expression "(*param_5 < (long)(uVar10 + lVar4))" ( (binary_expression "*param_5 < (long)(uVar10 + lVar4)" (pointer_expression "*param_5" * identifier) < (cast_expression "(long)(uVar10 + lVar4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(uVar10 + lVar4)" ( (binary_expression "uVar10 + lVar4" identifier + identifier) )))) )) (compound_statement "{\n      *param_5 = uVar10 + lVar4;\n      return;\n    }" { (expression_statement "*param_5 = uVar10 + lVar4;" (assignment_expression "*param_5 = uVar10 + lVar4" (pointer_expression "*param_5" * identifier) = (binary_expression "uVar10 + lVar4" identifier + identifier)) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void create_symtab_sections(Layout * this, Input_objects *\n   input_objects, Symbol_table * symtab, uint shnum, off_t * poff, uint local_dynamic_count) */\n\nvoid __thiscall\ngold::Layout::create_symtab_sections\n          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,uint shnum,off_t *poff,\n          uint param_5)\n\n{\n  Stringpool *this_00;\n  undefined1 *puVar1;\n  Stringpool *pool;\n  byte bVar2;\n  int iVar3;\n  Relobj *pRVar4;\n  uint uVar5;\n  bool bVar6;\n  pointer ppOVar7;\n  size_t dyncount;\n  char *pcVar8;\n  Output_section *pOVar9;\n  Output_section_data *pOVar10;\n  Output_section *pOVar11;\n  Output_symtab_xindex *posd;\n  long lVar12;\n  pointer ppRVar13;\n  ulong uVar14;\n  ulong off;\n  off_t oVar15;\n  ulong align;\n  int local_7c;\n  uint local_4c;\n  uint local_symcount;\n  \n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  iVar3 = **(int **)(parameters->target_ + 8);\n  if (iVar3 == 0x20) {\n    uVar14 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar3 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar14 = 0x18;\n    local_7c = 0x18;\n  }\n  ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  local_symcount = 1;\n  off = uVar14;\n  if (ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    do {\n      while (pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0) {\n        pOVar9->symtab_index_ = 0xffffffff;\n        ppOVar7 = ppOVar7 + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;\n      }\n      if (local_symcount == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");\n      }\n      pOVar9->symtab_index_ = local_symcount;\n      off = off + uVar14;\n      local_symcount = local_symcount + 1;\n      ppOVar7 = ppOVar7 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n  }\nLAB_001a9d4f:\n  ppRVar13 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n  uVar5 = local_symcount;\n  if (ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n    do {\n      pRVar4 = *ppRVar13;\n      ppRVar13 = ppRVar13 + 1;\n      local_symcount = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab);\n      off = off + (local_symcount - uVar5) * local_7c;\n      uVar5 = local_symcount;\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar13);\n  }\n  if (local_symcount * local_7c != off) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  pOVar9 = this->dynsym_section_;\n  if (pOVar9 == (Output_section *)0x0) {\n    dyncount = 0;\n    oVar15 = 0;\n  }\n  else {\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    lVar12 = pOVar9->entsize_ * (ulong)param_5;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    oVar15 = (pOVar9->super_Output_data).offset_ + lVar12;\n    if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar12 = (pOVar9->super_Output_data).data_size_ - lVar12;\n    dyncount = lVar12 / (long)uVar14;\n    if (lVar12 != (long)local_7c * dyncount) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  pool = &this->sympool_;\n  oVar15 = Symbol_table::finalize(symtab,off,oVar15,(ulong)param_5,dyncount,pool,&local_symcount);\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_->strip_all_).value == false) {\n    Stringpool_template<char>::set_string_offsets(pool);\n    this_00 = &this->namepool_;\n    pcVar8 = Stringpool_template<char>::add(this_00,".symtab",false,(Key *)0x0);\n    pOVar9 = make_output_section(this,pcVar8,2,0,ORDER_INVALID,false);\n    this->symtab_section_ = pOVar9;\n    pOVar10 = (Output_section_data *)operator_new(0x40);\n    align = (ulong)local_4c;\n    bVar2 = (pOVar10->super_Output_data).field_0x20;\n    (pOVar10->super_Output_data).address_ = 0;\n    pOVar10->addralign_ = align;\n    (pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00434088;\n    pOVar10->output_section_ = (Output_section *)0x0;\n    (pOVar10->super_Output_data).data_size_ = oVar15;\n    (pOVar10->super_Output_data).offset_ = -1;\n    (pOVar10->super_Output_data).field_0x20 = bVar2 & 0xe0 | 10;\n    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** symtab";\n    Output_section::add_output_section_data(pOVar9,pOVar10);\n    if (0xfeff < shnum) {\n      pcVar8 = Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0);\n      pOVar11 = make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false);\n      posd = (Output_symtab_xindex *)operator_new(0x50);\n      (posd->super_Output_section_data).super_Output_data.address_ = 0;\n      (posd->super_Output_section_data).addralign_ = 4;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      (posd->super_Output_section_data).super_Output_data.offset_ = -1;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_start = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_finish = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage = (pointer)0x0;\n      this->symtab_xindex_ = posd;\n      (posd->super_Output_section_data).super_Output_data.data_size_ = oVar15 / (long)uVar14 << 2;\n      (posd->super_Output_section_data).super_Output_data.field_0x20 =\n           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28;\n      Output_section::add_output_section_data(pOVar11,(Output_section_data *)posd);\n      if (((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||\n         ((pOVar11->field_0xc8 & 8) != 0)) goto LAB_001aa349;\n      pOVar11->link_section_ = &pOVar9->super_Output_data;\n      pOVar11->addralign_ = 4;\n      Output_section::set_entsize(pOVar11,4);\n      pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }\n    pcVar8 = Stringpool_template<char>::add(this_00,".strtab",false,(Key *)0x0);\n    pOVar11 = make_output_section(this,pcVar8,3,0,ORDER_INVALID,false);\n    pOVar10 = (Output_section_data *)operator_new(0x40);\n    puVar1 = &(pOVar10->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00428978;\n    (pOVar10->super_Output_data).address_ = 0;\n    (pOVar10->super_Output_data).data_size_ = 0;\n    (pOVar10->super_Output_data).offset_ = -1;\n    pOVar10->output_section_ = (Output_section *)0x0;\n    pOVar10->addralign_ = 1;\n    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pool;\n    Output_section::add_output_section_data(pOVar11,pOVar10);\n    bVar6 = Parameters::incremental_update(parameters);\n    if (bVar6) {\n      uVar14 = Free_list::allocate(&this->free_list_,oVar15,align,*poff);\n      if (oVar15 == -1) {\n        pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                );\n                    /* WARNING: Subroutine does not return */\n        gold_fallback(pcVar8);\n      }\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);\n      }\n    }\n    else {\n      uVar14 = (align - 1) + *poff & -align;\n    }\n    symtab->offset_ = off + uVar14;\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    (pOVar9->super_Output_data).offset_ = uVar14;\n    (pOVar9->super_Output_data).field_0x20 = bVar2 | 4;\n    if (((bVar2 & 2) == 0) &&\n       ((*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),\n       ((pOVar9->super_Output_data).field_0x20 & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if (((pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0)) || ((pOVar9->field_0xc8 & 8) != 0)\n       ) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n    }\n    pOVar9->link_section_ = &pOVar11->super_Output_data;\n    if (((pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)\n        ) || ((local_symcount != pOVar9->info_ && (pOVar9->info_ != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }\n    pOVar9->info_ = local_symcount;\n    Output_section::set_entsize(pOVar9,(long)local_7c);\n    if (*poff < (long)(uVar14 + oVar15)) {\n      *poff = uVar14 + oVar15;\n      return;\n    }\n  }\n  return;\n}\n\n" comment comment (function_definition "void __thiscall\ngold::Layout::create_symtab_sections\n          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,uint shnum,off_t *poff,\n          uint param_5)\n\n{\n  Stringpool *this_00;\n  undefined1 *puVar1;\n  Stringpool *pool;\n  byte bVar2;\n  int iVar3;\n  Relobj *pRVar4;\n  uint uVar5;\n  bool bVar6;\n  pointer ppOVar7;\n  size_t dyncount;\n  char *pcVar8;\n  Output_section *pOVar9;\n  Output_section_data *pOVar10;\n  Output_section *pOVar11;\n  Output_symtab_xindex *posd;\n  long lVar12;\n  pointer ppRVar13;\n  ulong uVar14;\n  ulong off;\n  off_t oVar15;\n  ulong align;\n  int local_7c;\n  uint local_4c;\n  uint local_symcount;\n  \n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  iVar3 = **(int **)(parameters->target_ + 8);\n  if (iVar3 == 0x20) {\n    uVar14 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar3 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar14 = 0x18;\n    local_7c = 0x18;\n  }\n  ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  local_symcount = 1;\n  off = uVar14;\n  if (ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    do {\n      while (pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0) {\n        pOVar9->symtab_index_ = 0xffffffff;\n        ppOVar7 = ppOVar7 + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;\n      }\n      if (local_symcount == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");\n      }\n      pOVar9->symtab_index_ = local_symcount;\n      off = off + uVar14;\n      local_symcount = local_symcount + 1;\n      ppOVar7 = ppOVar7 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n  }\nLAB_001a9d4f:\n  ppRVar13 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n  uVar5 = local_symcount;\n  if (ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n    do {\n      pRVar4 = *ppRVar13;\n      ppRVar13 = ppRVar13 + 1;\n      local_symcount = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab);\n      off = off + (local_symcount - uVar5) * local_7c;\n      uVar5 = local_symcount;\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar13);\n  }\n  if (local_symcount * local_7c != off) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  pOVar9 = this->dynsym_section_;\n  if (pOVar9 == (Output_section *)0x0) {\n    dyncount = 0;\n    oVar15 = 0;\n  }\n  else {\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    lVar12 = pOVar9->entsize_ * (ulong)param_5;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    oVar15 = (pOVar9->super_Output_data).offset_ + lVar12;\n    if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar12 = (pOVar9->super_Output_data).data_size_ - lVar12;\n    dyncount = lVar12 / (long)uVar14;\n    if (lVar12 != (long)local_7c * dyncount) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  pool = &this->sympool_;\n  oVar15 = Symbol_table::finalize(symtab,off,oVar15,(ulong)param_5,dyncount,pool,&local_symcount);\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_->strip_all_).value == false) {\n    Stringpool_template<char>::set_string_offsets(pool);\n    this_00 = &this->namepool_;\n    pcVar8 = Stringpool_template<char>::add(this_00,".symtab",false,(Key *)0x0);\n    pOVar9 = make_output_section(this,pcVar8,2,0,ORDER_INVALID,false);\n    this->symtab_section_ = pOVar9;\n    pOVar10 = (Output_section_data *)operator_new(0x40);\n    align = (ulong)local_4c;\n    bVar2 = (pOVar10->super_Output_data).field_0x20;\n    (pOVar10->super_Output_data).address_ = 0;\n    pOVar10->addralign_ = align;\n    (pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00434088;\n    pOVar10->output_section_ = (Output_section *)0x0;\n    (pOVar10->super_Output_data).data_size_ = oVar15;\n    (pOVar10->super_Output_data).offset_ = -1;\n    (pOVar10->super_Output_data).field_0x20 = bVar2 & 0xe0 | 10;\n    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** symtab";\n    Output_section::add_output_section_data(pOVar9,pOVar10);\n    if (0xfeff < shnum) {\n      pcVar8 = Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0);\n      pOVar11 = make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false);\n      posd = (Output_symtab_xindex *)operator_new(0x50);\n      (posd->super_Output_section_data).super_Output_data.address_ = 0;\n      (posd->super_Output_section_data).addralign_ = 4;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      (posd->super_Output_section_data).super_Output_data.offset_ = -1;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_start = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_finish = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage = (pointer)0x0;\n      this->symtab_xindex_ = posd;\n      (posd->super_Output_section_data).super_Output_data.data_size_ = oVar15 / (long)uVar14 << 2;\n      (posd->super_Output_section_data).super_Output_data.field_0x20 =\n           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28;\n      Output_section::add_output_section_data(pOVar11,(Output_section_data *)posd);\n      if (((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||\n         ((pOVar11->field_0xc8 & 8) != 0)) goto LAB_001aa349;\n      pOVar11->link_section_ = &pOVar9->super_Output_data;\n      pOVar11->addralign_ = 4;\n      Output_section::set_entsize(pOVar11,4);\n      pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }\n    pcVar8 = Stringpool_template<char>::add(this_00,".strtab",false,(Key *)0x0);\n    pOVar11 = make_output_section(this,pcVar8,3,0,ORDER_INVALID,false);\n    pOVar10 = (Output_section_data *)operator_new(0x40);\n    puVar1 = &(pOVar10->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00428978;\n    (pOVar10->super_Output_data).address_ = 0;\n    (pOVar10->super_Output_data).data_size_ = 0;\n    (pOVar10->super_Output_data).offset_ = -1;\n    pOVar10->output_section_ = (Output_section *)0x0;\n    pOVar10->addralign_ = 1;\n    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pool;\n    Output_section::add_output_section_data(pOVar11,pOVar10);\n    bVar6 = Parameters::incremental_update(parameters);\n    if (bVar6) {\n      uVar14 = Free_list::allocate(&this->free_list_,oVar15,align,*poff);\n      if (oVar15 == -1) {\n        pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                );\n                    /* WARNING: Subroutine does not return */\n        gold_fallback(pcVar8);\n      }\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);\n      }\n    }\n    else {\n      uVar14 = (align - 1) + *poff & -align;\n    }\n    symtab->offset_ = off + uVar14;\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    (pOVar9->super_Output_data).offset_ = uVar14;\n    (pOVar9->super_Output_data).field_0x20 = bVar2 | 4;\n    if (((bVar2 & 2) == 0) &&\n       ((*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),\n       ((pOVar9->super_Output_data).field_0x20 & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if (((pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0)) || ((pOVar9->field_0xc8 & 8) != 0)\n       ) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n    }\n    pOVar9->link_section_ = &pOVar11->super_Output_data;\n    if (((pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)\n        ) || ((local_symcount != pOVar9->info_ && (pOVar9->info_ != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }\n    pOVar9->info_ = local_symcount;\n    Output_section::set_entsize(pOVar9,(long)local_7c);\n    if (*poff < (long)(uVar14 + oVar15)) {\n      *poff = uVar14 + oVar15;\n      return;\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "create_symtab_sections\n          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,uint shnum,off_t *poff,\n          uint param_5)" identifier (parameter_list "(Layout *this,Input_objects *input_objects,Symbol_table *symtab,uint shnum,off_t *poff,\n          uint param_5)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Input_objects *input_objects" type_identifier (pointer_declarator "*input_objects" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "uint shnum" type_identifier identifier) , (parameter_declaration "off_t *poff" type_identifier (pointer_declarator "*poff" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) ))) (compound_statement "{\n  Stringpool *this_00;\n  undefined1 *puVar1;\n  Stringpool *pool;\n  byte bVar2;\n  int iVar3;\n  Relobj *pRVar4;\n  uint uVar5;\n  bool bVar6;\n  pointer ppOVar7;\n  size_t dyncount;\n  char *pcVar8;\n  Output_section *pOVar9;\n  Output_section_data *pOVar10;\n  Output_section *pOVar11;\n  Output_symtab_xindex *posd;\n  long lVar12;\n  pointer ppRVar13;\n  ulong uVar14;\n  ulong off;\n  off_t oVar15;\n  ulong align;\n  int local_7c;\n  uint local_4c;\n  uint local_symcount;\n  \n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  iVar3 = **(int **)(parameters->target_ + 8);\n  if (iVar3 == 0x20) {\n    uVar14 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar3 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar14 = 0x18;\n    local_7c = 0x18;\n  }\n  ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  local_symcount = 1;\n  off = uVar14;\n  if (ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    do {\n      while (pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0) {\n        pOVar9->symtab_index_ = 0xffffffff;\n        ppOVar7 = ppOVar7 + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;\n      }\n      if (local_symcount == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");\n      }\n      pOVar9->symtab_index_ = local_symcount;\n      off = off + uVar14;\n      local_symcount = local_symcount + 1;\n      ppOVar7 = ppOVar7 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n  }\nLAB_001a9d4f:\n  ppRVar13 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n  uVar5 = local_symcount;\n  if (ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n    do {\n      pRVar4 = *ppRVar13;\n      ppRVar13 = ppRVar13 + 1;\n      local_symcount = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab);\n      off = off + (local_symcount - uVar5) * local_7c;\n      uVar5 = local_symcount;\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar13);\n  }\n  if (local_symcount * local_7c != off) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  pOVar9 = this->dynsym_section_;\n  if (pOVar9 == (Output_section *)0x0) {\n    dyncount = 0;\n    oVar15 = 0;\n  }\n  else {\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    lVar12 = pOVar9->entsize_ * (ulong)param_5;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    oVar15 = (pOVar9->super_Output_data).offset_ + lVar12;\n    if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar12 = (pOVar9->super_Output_data).data_size_ - lVar12;\n    dyncount = lVar12 / (long)uVar14;\n    if (lVar12 != (long)local_7c * dyncount) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  pool = &this->sympool_;\n  oVar15 = Symbol_table::finalize(symtab,off,oVar15,(ulong)param_5,dyncount,pool,&local_symcount);\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_->strip_all_).value == false) {\n    Stringpool_template<char>::set_string_offsets(pool);\n    this_00 = &this->namepool_;\n    pcVar8 = Stringpool_template<char>::add(this_00,".symtab",false,(Key *)0x0);\n    pOVar9 = make_output_section(this,pcVar8,2,0,ORDER_INVALID,false);\n    this->symtab_section_ = pOVar9;\n    pOVar10 = (Output_section_data *)operator_new(0x40);\n    align = (ulong)local_4c;\n    bVar2 = (pOVar10->super_Output_data).field_0x20;\n    (pOVar10->super_Output_data).address_ = 0;\n    pOVar10->addralign_ = align;\n    (pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00434088;\n    pOVar10->output_section_ = (Output_section *)0x0;\n    (pOVar10->super_Output_data).data_size_ = oVar15;\n    (pOVar10->super_Output_data).offset_ = -1;\n    (pOVar10->super_Output_data).field_0x20 = bVar2 & 0xe0 | 10;\n    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** symtab";\n    Output_section::add_output_section_data(pOVar9,pOVar10);\n    if (0xfeff < shnum) {\n      pcVar8 = Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0);\n      pOVar11 = make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false);\n      posd = (Output_symtab_xindex *)operator_new(0x50);\n      (posd->super_Output_section_data).super_Output_data.address_ = 0;\n      (posd->super_Output_section_data).addralign_ = 4;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      (posd->super_Output_section_data).super_Output_data.offset_ = -1;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_start = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_finish = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage = (pointer)0x0;\n      this->symtab_xindex_ = posd;\n      (posd->super_Output_section_data).super_Output_data.data_size_ = oVar15 / (long)uVar14 << 2;\n      (posd->super_Output_section_data).super_Output_data.field_0x20 =\n           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28;\n      Output_section::add_output_section_data(pOVar11,(Output_section_data *)posd);\n      if (((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||\n         ((pOVar11->field_0xc8 & 8) != 0)) goto LAB_001aa349;\n      pOVar11->link_section_ = &pOVar9->super_Output_data;\n      pOVar11->addralign_ = 4;\n      Output_section::set_entsize(pOVar11,4);\n      pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }\n    pcVar8 = Stringpool_template<char>::add(this_00,".strtab",false,(Key *)0x0);\n    pOVar11 = make_output_section(this,pcVar8,3,0,ORDER_INVALID,false);\n    pOVar10 = (Output_section_data *)operator_new(0x40);\n    puVar1 = &(pOVar10->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00428978;\n    (pOVar10->super_Output_data).address_ = 0;\n    (pOVar10->super_Output_data).data_size_ = 0;\n    (pOVar10->super_Output_data).offset_ = -1;\n    pOVar10->output_section_ = (Output_section *)0x0;\n    pOVar10->addralign_ = 1;\n    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pool;\n    Output_section::add_output_section_data(pOVar11,pOVar10);\n    bVar6 = Parameters::incremental_update(parameters);\n    if (bVar6) {\n      uVar14 = Free_list::allocate(&this->free_list_,oVar15,align,*poff);\n      if (oVar15 == -1) {\n        pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                );\n                    /* WARNING: Subroutine does not return */\n        gold_fallback(pcVar8);\n      }\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);\n      }\n    }\n    else {\n      uVar14 = (align - 1) + *poff & -align;\n    }\n    symtab->offset_ = off + uVar14;\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    (pOVar9->super_Output_data).offset_ = uVar14;\n    (pOVar9->super_Output_data).field_0x20 = bVar2 | 4;\n    if (((bVar2 & 2) == 0) &&\n       ((*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),\n       ((pOVar9->super_Output_data).field_0x20 & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if (((pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0)) || ((pOVar9->field_0xc8 & 8) != 0)\n       ) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n    }\n    pOVar9->link_section_ = &pOVar11->super_Output_data;\n    if (((pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)\n        ) || ((local_symcount != pOVar9->info_ && (pOVar9->info_ != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }\n    pOVar9->info_ = local_symcount;\n    Output_section::set_entsize(pOVar9,(long)local_7c);\n    if (*poff < (long)(uVar14 + oVar15)) {\n      *poff = uVar14 + oVar15;\n      return;\n    }\n  }\n  return;\n}" { (declaration "Stringpool *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "Stringpool *pool;" type_identifier (pointer_declarator "*pool" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "Relobj *pRVar4;" type_identifier (pointer_declarator "*pRVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "pointer ppOVar7;" type_identifier identifier ;) (declaration "size_t dyncount;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "Output_section *pOVar9;" type_identifier (pointer_declarator "*pOVar9" * identifier) ;) (declaration "Output_section_data *pOVar10;" type_identifier (pointer_declarator "*pOVar10" * identifier) ;) (declaration "Output_section *pOVar11;" type_identifier (pointer_declarator "*pOVar11" * identifier) ;) (declaration "Output_symtab_xindex *posd;" type_identifier (pointer_declarator "*posd" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "pointer ppRVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "ulong off;" type_identifier identifier ;) (declaration "off_t oVar15;" type_identifier identifier ;) (declaration "ulong align;" type_identifier identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_symcount;" type_identifier identifier ;) (if_statement "if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (expression_statement "iVar3 = **(int **)(parameters->target_ + 8);" (assignment_expression "iVar3 = **(int **)(parameters->target_ + 8)" identifier = (pointer_expression "**(int **)(parameters->target_ + 8)" * (pointer_expression "*(int **)(parameters->target_ + 8)" * (cast_expression "(int **)(parameters->target_ + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(parameters->target_ + 8)" ( (binary_expression "parameters->target_ + 8" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) )))))) ;) (if_statement "if (iVar3 == 0x20) {\n    uVar14 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar3 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar14 = 0x18;\n    local_7c = 0x18;\n  }" if (parenthesized_expression "(iVar3 == 0x20)" ( (binary_expression "iVar3 == 0x20" identifier == number_literal) )) (compound_statement "{\n    uVar14 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }" { (expression_statement "uVar14 = 0x10;" (assignment_expression "uVar14 = 0x10" identifier = number_literal) ;) (expression_statement "local_4c = 4;" (assignment_expression "local_4c = 4" identifier = number_literal) ;) (expression_statement "local_7c = 0x10;" (assignment_expression "local_7c = 0x10" identifier = number_literal) ;) }) (else_clause "else {\n    if (iVar3 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar14 = 0x18;\n    local_7c = 0x18;\n  }" else (compound_statement "{\n    if (iVar3 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar14 = 0x18;\n    local_7c = 0x18;\n  }" { (if_statement "if (iVar3 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }" if (parenthesized_expression "(iVar3 != 0x40)" ( (binary_expression "iVar3 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x1110,"create_symtab_sections")" identifier (argument_list "("../../gold/layout.cc",0x1110,"create_symtab_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_symtab_sections"" " string_content ") ))) ;) })) (expression_statement "local_4c = 8;" (assignment_expression "local_4c = 8" identifier = number_literal) ;) (expression_statement "uVar14 = 0x18;" (assignment_expression "uVar14 = 0x18" identifier = number_literal) ;) (expression_statement "local_7c = 0x18;" (assignment_expression "local_7c = 0x18" identifier = number_literal) ;) }))) (expression_statement "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;" (field_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start" (field_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl" (binary_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar7 = (this->section_list_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->section_list_).\n            super__Vector_base<gold" (field_expression "(this->section_list_).\n            super__Vector_base" (parenthesized_expression "(this->section_list_)" ( (field_expression "this->section_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_symcount = 1;" (assignment_expression "local_symcount = 1" identifier = number_literal) ;) (expression_statement "off = uVar14;" (assignment_expression "off = uVar14" identifier = identifier) ;) (if_statement "if (ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    do {\n      while (pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0) {\n        pOVar9->symtab_index_ = 0xffffffff;\n        ppOVar7 = ppOVar7 + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;\n      }\n      if (local_symcount == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");\n      }\n      pOVar9->symtab_index_ = local_symcount;\n      off = off + uVar14;\n      local_symcount = local_symcount + 1;\n      ppOVar7 = ppOVar7 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n  }" if (parenthesized_expression "(ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish)" ( (field_expression "ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish" (field_expression "ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std" (binary_expression "ppOVar7 !=\n      (this->section_list_).\n      super__Vector_base<gold" identifier != (binary_expression "(this->section_list_).\n      super__Vector_base<gold" (field_expression "(this->section_list_).\n      super__Vector_base" (parenthesized_expression "(this->section_list_)" ( (field_expression "this->section_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    do {\n      while (pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0) {\n        pOVar9->symtab_index_ = 0xffffffff;\n        ppOVar7 = ppOVar7 + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;\n      }\n      if (local_symcount == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");\n      }\n      pOVar9->symtab_index_ = local_symcount;\n      off = off + uVar14;\n      local_symcount = local_symcount + 1;\n      ppOVar7 = ppOVar7 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);\n  }" { (do_statement "do {\n      while (pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0) {\n        pOVar9->symtab_index_ = 0xffffffff;\n        ppOVar7 = ppOVar7 + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;\n      }\n      if (local_symcount == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");\n      }\n      pOVar9->symtab_index_ = local_symcount;\n      off = off + uVar14;\n      local_symcount = local_symcount + 1;\n      ppOVar7 = ppOVar7 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7);" do (compound_statement "{\n      while (pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0) {\n        pOVar9->symtab_index_ = 0xffffffff;\n        ppOVar7 = ppOVar7 + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;\n      }\n      if (local_symcount == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");\n      }\n      pOVar9->symtab_index_ = local_symcount;\n      off = off + uVar14;\n      local_symcount = local_symcount + 1;\n      ppOVar7 = ppOVar7 + 1;\n    }" { (while_statement "while (pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0) {\n        pOVar9->symtab_index_ = 0xffffffff;\n        ppOVar7 = ppOVar7 + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;\n      }" while (parenthesized_expression "(pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0)" ( (comma_expression "pOVar9 = *ppOVar7, (pOVar9->field_0xc8 & 1) == 0" (assignment_expression "pOVar9 = *ppOVar7" identifier = (pointer_expression "*ppOVar7" * identifier)) , (binary_expression "(pOVar9->field_0xc8 & 1) == 0" (parenthesized_expression "(pOVar9->field_0xc8 & 1)" ( (binary_expression "pOVar9->field_0xc8 & 1" (field_expression "pOVar9->field_0xc8" identifier -> field_identifier) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pOVar9->symtab_index_ = 0xffffffff;\n        ppOVar7 = ppOVar7 + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;\n      }" { (expression_statement "pOVar9->symtab_index_ = 0xffffffff;" (assignment_expression "pOVar9->symtab_index_ = 0xffffffff" (field_expression "pOVar9->symtab_index_" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppOVar7 = ppOVar7 + 1;" (assignment_expression "ppOVar7 = ppOVar7 + 1" identifier = (binary_expression "ppOVar7 + 1" identifier + number_literal)) ;) (if_statement "if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7) goto LAB_001a9d4f;" if (parenthesized_expression "((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7)" ( (binary_expression "(this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar7" (field_expression "(this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish" (field_expression "(this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl" (binary_expression "(this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this->section_list_).\n            super__Vector_base<gold::Output_section*,_std" (binary_expression "(this->section_list_).\n            super__Vector_base<gold" (field_expression "(this->section_list_).\n            super__Vector_base" (parenthesized_expression "(this->section_list_)" ( (field_expression "this->section_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) == identifier) )) (goto_statement "goto LAB_001a9d4f;" goto statement_identifier ;)) })) (if_statement "if (local_symcount == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");\n      }" if (parenthesized_expression "(local_symcount == 0)" ( (binary_expression "local_symcount == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index");" (call_expression "do_gold_unreachable("../../gold/output.h",0xd89,"set_symtab_index")" identifier (argument_list "("../../gold/output.h",0xd89,"set_symtab_index")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_symtab_index"" " string_content ") ))) ;) })) (expression_statement "pOVar9->symtab_index_ = local_symcount;" (assignment_expression "pOVar9->symtab_index_ = local_symcount" (field_expression "pOVar9->symtab_index_" identifier -> field_identifier) = identifier) ;) (expression_statement "off = off + uVar14;" (assignment_expression "off = off + uVar14" identifier = (binary_expression "off + uVar14" identifier + identifier)) ;) (expression_statement "local_symcount = local_symcount + 1;" (assignment_expression "local_symcount = local_symcount + 1" identifier = (binary_expression "local_symcount + 1" identifier + number_literal)) ;) (expression_statement "ppOVar7 = ppOVar7 + 1;" (assignment_expression "ppOVar7 = ppOVar7 + 1" identifier = (binary_expression "ppOVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7)" ( (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar7" (field_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish" (field_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl" (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std" (binary_expression "(this->section_list_).\n             super__Vector_base<gold" (field_expression "(this->section_list_).\n             super__Vector_base" (parenthesized_expression "(this->section_list_)" ( (field_expression "this->section_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (labeled_statement "LAB_001a9d4f:\n  ppRVar13 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;" statement_identifier : (ERROR "ppRVar13 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::" (comma_expression "ppRVar13 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std" (binary_expression "ppRVar13 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*" (assignment_expression "ppRVar13 = (input_objects->relobj_list_).\n             super__Vector_base<gold" identifier = (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold" (field_expression "(input_objects->relobj_list_).\n             super__Vector_base" (parenthesized_expression "(input_objects->relobj_list_)" ( (field_expression "input_objects->relobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Relobj" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Relobj*>_>._M_impl._M_start;" (field_expression "Relobj*>_>._M_impl._M_start" (field_expression "Relobj*>_>._M_impl" (binary_expression "Relobj*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "uVar5 = local_symcount;" (assignment_expression "uVar5 = local_symcount" identifier = identifier) ;) (if_statement "if (ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n    do {\n      pRVar4 = *ppRVar13;\n      ppRVar13 = ppRVar13 + 1;\n      local_symcount = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab);\n      off = off + (local_symcount - uVar5) * local_7c;\n      uVar5 = local_symcount;\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar13);\n  }" if (parenthesized_expression "(ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish)" ( (field_expression "ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish" (field_expression "ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std" (binary_expression "ppRVar13 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold" identifier != (binary_expression "(input_objects->relobj_list_).\n      super__Vector_base<gold" (field_expression "(input_objects->relobj_list_).\n      super__Vector_base" (parenthesized_expression "(input_objects->relobj_list_)" ( (field_expression "input_objects->relobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    do {\n      pRVar4 = *ppRVar13;\n      ppRVar13 = ppRVar13 + 1;\n      local_symcount = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab);\n      off = off + (local_symcount - uVar5) * local_7c;\n      uVar5 = local_symcount;\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar13);\n  }" { (do_statement "do {\n      pRVar4 = *ppRVar13;\n      ppRVar13 = ppRVar13 + 1;\n      local_symcount = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab);\n      off = off + (local_symcount - uVar5) * local_7c;\n      uVar5 = local_symcount;\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar13);" do (compound_statement "{\n      pRVar4 = *ppRVar13;\n      ppRVar13 = ppRVar13 + 1;\n      local_symcount = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab);\n      off = off + (local_symcount - uVar5) * local_7c;\n      uVar5 = local_symcount;\n    }" { (expression_statement "pRVar4 = *ppRVar13;" (assignment_expression "pRVar4 = *ppRVar13" identifier = (pointer_expression "*ppRVar13" * identifier)) ;) (expression_statement "ppRVar13 = ppRVar13 + 1;" (assignment_expression "ppRVar13 = ppRVar13 + 1" identifier = (binary_expression "ppRVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_symcount = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab);" (assignment_expression "local_symcount = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab)" identifier = (call_expression "(*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(ulong)uVar5,off,symtab)" (parenthesized_expression "(*(pRVar4->super_Object)._vptr_Object[0x33])" ( (pointer_expression "*(pRVar4->super_Object)._vptr_Object[0x33]" * (subscript_expression "(pRVar4->super_Object)._vptr_Object[0x33]" (field_expression "(pRVar4->super_Object)._vptr_Object" (parenthesized_expression "(pRVar4->super_Object)" ( (field_expression "pRVar4->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pRVar4,(ulong)uVar5,off,symtab)" ( identifier , (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , identifier )))) ;) (expression_statement "off = off + (local_symcount - uVar5) * local_7c;" (assignment_expression "off = off + (local_symcount - uVar5) * local_7c" identifier = (binary_expression "off + (local_symcount - uVar5) * local_7c" identifier + (binary_expression "(local_symcount - uVar5) * local_7c" (parenthesized_expression "(local_symcount - uVar5)" ( (binary_expression "local_symcount - uVar5" identifier - identifier) )) * identifier))) ;) (expression_statement "uVar5 = local_symcount;" (assignment_expression "uVar5 = local_symcount" identifier = identifier) ;) }) while (parenthesized_expression "((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar13)" ( (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar13" (field_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish" (field_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std" (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold" (field_expression "(input_objects->relobj_list_).\n             super__Vector_base" (parenthesized_expression "(input_objects->relobj_list_)" ( (field_expression "input_objects->relobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (if_statement "if (local_symcount * local_7c != off) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }" if (parenthesized_expression "(local_symcount * local_7c != off)" ( (binary_expression "local_symcount * local_7c != off" (binary_expression "local_symcount * local_7c" identifier * identifier) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x1134,"create_symtab_sections");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x1134,"create_symtab_sections")" identifier (argument_list "("../../gold/layout.cc",0x1134,"create_symtab_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_symtab_sections"" " string_content ") ))) ;) })) (expression_statement "pOVar9 = this->dynsym_section_;" (assignment_expression "pOVar9 = this->dynsym_section_" identifier = (field_expression "this->dynsym_section_" identifier -> field_identifier)) ;) (if_statement "if (pOVar9 == (Output_section *)0x0) {\n    dyncount = 0;\n    oVar15 = 0;\n  }\n  else {\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    lVar12 = pOVar9->entsize_ * (ulong)param_5;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    oVar15 = (pOVar9->super_Output_data).offset_ + lVar12;\n    if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar12 = (pOVar9->super_Output_data).data_size_ - lVar12;\n    dyncount = lVar12 / (long)uVar14;\n    if (lVar12 != (long)local_7c * dyncount) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" if (parenthesized_expression "(pOVar9 == (Output_section *)0x0)" ( (binary_expression "pOVar9 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    dyncount = 0;\n    oVar15 = 0;\n  }" { (expression_statement "dyncount = 0;" (assignment_expression "dyncount = 0" identifier = number_literal) ;) (expression_statement "oVar15 = 0;" (assignment_expression "oVar15 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    lVar12 = pOVar9->entsize_ * (ulong)param_5;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    oVar15 = (pOVar9->super_Output_data).offset_ + lVar12;\n    if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar12 = (pOVar9->super_Output_data).data_size_ - lVar12;\n    dyncount = lVar12 / (long)uVar14;\n    if (lVar12 != (long)local_7c * dyncount) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" else (compound_statement "{\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    lVar12 = pOVar9->entsize_ * (ulong)param_5;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    oVar15 = (pOVar9->super_Output_data).offset_ + lVar12;\n    if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }\n    lVar12 = (pOVar9->super_Output_data).data_size_ - lVar12;\n    dyncount = lVar12 / (long)uVar14;\n    if (lVar12 != (long)local_7c * dyncount) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" { (expression_statement "bVar2 = (pOVar9->super_Output_data).field_0x20;" (assignment_expression "bVar2 = (pOVar9->super_Output_data).field_0x20" identifier = (field_expression "(pOVar9->super_Output_data).field_0x20" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "lVar12 = pOVar9->entsize_ * (ulong)param_5;" (assignment_expression "lVar12 = pOVar9->entsize_ * (ulong)param_5" identifier = (binary_expression "pOVar9->entsize_ * (ulong)param_5" (field_expression "pOVar9->entsize_" identifier -> field_identifier) * (cast_expression "(ulong)param_5" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }" if (parenthesized_expression "((bVar2 & 4) == 0)" ( (binary_expression "(bVar2 & 4) == 0" (parenthesized_expression "(bVar2 & 4)" ( (binary_expression "bVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe3,"offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "oVar15 = (pOVar9->super_Output_data).offset_ + lVar12;" (assignment_expression "oVar15 = (pOVar9->super_Output_data).offset_ + lVar12" identifier = (binary_expression "(pOVar9->super_Output_data).offset_ + lVar12" (field_expression "(pOVar9->super_Output_data).offset_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) + identifier)) ;) (if_statement "if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }" if (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (expression_statement "lVar12 = (pOVar9->super_Output_data).data_size_ - lVar12;" (assignment_expression "lVar12 = (pOVar9->super_Output_data).data_size_ - lVar12" identifier = (binary_expression "(pOVar9->super_Output_data).data_size_ - lVar12" (field_expression "(pOVar9->super_Output_data).data_size_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) - identifier)) ;) (expression_statement "dyncount = lVar12 / (long)uVar14;" (assignment_expression "dyncount = lVar12 / (long)uVar14" identifier = (binary_expression "lVar12 / (long)uVar14" identifier / (cast_expression "(long)uVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (lVar12 != (long)local_7c * dyncount) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }" if (parenthesized_expression "(lVar12 != (long)local_7c * dyncount)" ( (binary_expression "lVar12 != (long)local_7c * dyncount" identifier != (binary_expression "(long)local_7c * dyncount" (cast_expression "(long)local_7c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x1143,"create_symtab_sections")" identifier (argument_list "("../../gold/layout.cc",0x1143,"create_symtab_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_symtab_sections"" " string_content ") ))) ;) })) }))) (expression_statement "pool = &this->sympool_;" (assignment_expression "pool = &this->sympool_" identifier = (pointer_expression "&this->sympool_" & (field_expression "this->sympool_" identifier -> field_identifier))) ;) (ERROR "oVar15 = Symbol_table::" (assignment_expression "oVar15 = Symbol_table" identifier = identifier) : :) (expression_statement "finalize(symtab,off,oVar15,(ulong)param_5,dyncount,pool,&local_symcount);" (call_expression "finalize(symtab,off,oVar15,(ulong)param_5,dyncount,pool,&local_symcount)" identifier (argument_list "(symtab,off,oVar15,(ulong)param_5,dyncount,pool,&local_symcount)" ( identifier , identifier , identifier , (cast_expression "(ulong)param_5" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , identifier , (pointer_expression "&local_symcount" & identifier) ))) ;) (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_->strip_all_).value == false) {\n    Stringpool_template<char>::set_string_offsets(pool);\n    this_00 = &this->namepool_;\n    pcVar8 = Stringpool_template<char>::add(this_00,".symtab",false,(Key *)0x0);\n    pOVar9 = make_output_section(this,pcVar8,2,0,ORDER_INVALID,false);\n    this->symtab_section_ = pOVar9;\n    pOVar10 = (Output_section_data *)operator_new(0x40);\n    align = (ulong)local_4c;\n    bVar2 = (pOVar10->super_Output_data).field_0x20;\n    (pOVar10->super_Output_data).address_ = 0;\n    pOVar10->addralign_ = align;\n    (pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00434088;\n    pOVar10->output_section_ = (Output_section *)0x0;\n    (pOVar10->super_Output_data).data_size_ = oVar15;\n    (pOVar10->super_Output_data).offset_ = -1;\n    (pOVar10->super_Output_data).field_0x20 = bVar2 & 0xe0 | 10;\n    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** symtab";\n    Output_section::add_output_section_data(pOVar9,pOVar10);\n    if (0xfeff < shnum) {\n      pcVar8 = Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0);\n      pOVar11 = make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false);\n      posd = (Output_symtab_xindex *)operator_new(0x50);\n      (posd->super_Output_section_data).super_Output_data.address_ = 0;\n      (posd->super_Output_section_data).addralign_ = 4;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      (posd->super_Output_section_data).super_Output_data.offset_ = -1;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_start = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_finish = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage = (pointer)0x0;\n      this->symtab_xindex_ = posd;\n      (posd->super_Output_section_data).super_Output_data.data_size_ = oVar15 / (long)uVar14 << 2;\n      (posd->super_Output_section_data).super_Output_data.field_0x20 =\n           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28;\n      Output_section::add_output_section_data(pOVar11,(Output_section_data *)posd);\n      if (((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||\n         ((pOVar11->field_0xc8 & 8) != 0)) goto LAB_001aa349;\n      pOVar11->link_section_ = &pOVar9->super_Output_data;\n      pOVar11->addralign_ = 4;\n      Output_section::set_entsize(pOVar11,4);\n      pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }\n    pcVar8 = Stringpool_template<char>::add(this_00,".strtab",false,(Key *)0x0);\n    pOVar11 = make_output_section(this,pcVar8,3,0,ORDER_INVALID,false);\n    pOVar10 = (Output_section_data *)operator_new(0x40);\n    puVar1 = &(pOVar10->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00428978;\n    (pOVar10->super_Output_data).address_ = 0;\n    (pOVar10->super_Output_data).data_size_ = 0;\n    (pOVar10->super_Output_data).offset_ = -1;\n    pOVar10->output_section_ = (Output_section *)0x0;\n    pOVar10->addralign_ = 1;\n    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pool;\n    Output_section::add_output_section_data(pOVar11,pOVar10);\n    bVar6 = Parameters::incremental_update(parameters);\n    if (bVar6) {\n      uVar14 = Free_list::allocate(&this->free_list_,oVar15,align,*poff);\n      if (oVar15 == -1) {\n        pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                );\n                    /* WARNING: Subroutine does not return */\n        gold_fallback(pcVar8);\n      }\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);\n      }\n    }\n    else {\n      uVar14 = (align - 1) + *poff & -align;\n    }\n    symtab->offset_ = off + uVar14;\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    (pOVar9->super_Output_data).offset_ = uVar14;\n    (pOVar9->super_Output_data).field_0x20 = bVar2 | 4;\n    if (((bVar2 & 2) == 0) &&\n       ((*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),\n       ((pOVar9->super_Output_data).field_0x20 & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if (((pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0)) || ((pOVar9->field_0xc8 & 8) != 0)\n       ) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n    }\n    pOVar9->link_section_ = &pOVar11->super_Output_data;\n    if (((pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)\n        ) || ((local_symcount != pOVar9->info_ && (pOVar9->info_ != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }\n    pOVar9->info_ = local_symcount;\n    Output_section::set_entsize(pOVar9,(long)local_7c);\n    if (*poff < (long)(uVar14 + oVar15)) {\n      *poff = uVar14 + oVar15;\n      return;\n    }\n  }" if (parenthesized_expression "((parameters->options_->strip_all_).value == false)" ( (binary_expression "(parameters->options_->strip_all_).value == false" (field_expression "(parameters->options_->strip_all_).value" (parenthesized_expression "(parameters->options_->strip_all_)" ( (field_expression "parameters->options_->strip_all_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n    Stringpool_template<char>::set_string_offsets(pool);\n    this_00 = &this->namepool_;\n    pcVar8 = Stringpool_template<char>::add(this_00,".symtab",false,(Key *)0x0);\n    pOVar9 = make_output_section(this,pcVar8,2,0,ORDER_INVALID,false);\n    this->symtab_section_ = pOVar9;\n    pOVar10 = (Output_section_data *)operator_new(0x40);\n    align = (ulong)local_4c;\n    bVar2 = (pOVar10->super_Output_data).field_0x20;\n    (pOVar10->super_Output_data).address_ = 0;\n    pOVar10->addralign_ = align;\n    (pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00434088;\n    pOVar10->output_section_ = (Output_section *)0x0;\n    (pOVar10->super_Output_data).data_size_ = oVar15;\n    (pOVar10->super_Output_data).offset_ = -1;\n    (pOVar10->super_Output_data).field_0x20 = bVar2 & 0xe0 | 10;\n    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** symtab";\n    Output_section::add_output_section_data(pOVar9,pOVar10);\n    if (0xfeff < shnum) {\n      pcVar8 = Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0);\n      pOVar11 = make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false);\n      posd = (Output_symtab_xindex *)operator_new(0x50);\n      (posd->super_Output_section_data).super_Output_data.address_ = 0;\n      (posd->super_Output_section_data).addralign_ = 4;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      (posd->super_Output_section_data).super_Output_data.offset_ = -1;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_start = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_finish = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage = (pointer)0x0;\n      this->symtab_xindex_ = posd;\n      (posd->super_Output_section_data).super_Output_data.data_size_ = oVar15 / (long)uVar14 << 2;\n      (posd->super_Output_section_data).super_Output_data.field_0x20 =\n           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28;\n      Output_section::add_output_section_data(pOVar11,(Output_section_data *)posd);\n      if (((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||\n         ((pOVar11->field_0xc8 & 8) != 0)) goto LAB_001aa349;\n      pOVar11->link_section_ = &pOVar9->super_Output_data;\n      pOVar11->addralign_ = 4;\n      Output_section::set_entsize(pOVar11,4);\n      pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }\n    pcVar8 = Stringpool_template<char>::add(this_00,".strtab",false,(Key *)0x0);\n    pOVar11 = make_output_section(this,pcVar8,3,0,ORDER_INVALID,false);\n    pOVar10 = (Output_section_data *)operator_new(0x40);\n    puVar1 = &(pOVar10->super_Output_data).field_0x20;\n    *puVar1 = *puVar1 & 0xe0;\n    (pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00428978;\n    (pOVar10->super_Output_data).address_ = 0;\n    (pOVar10->super_Output_data).data_size_ = 0;\n    (pOVar10->super_Output_data).offset_ = -1;\n    pOVar10->output_section_ = (Output_section *)0x0;\n    pOVar10->addralign_ = 1;\n    pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pool;\n    Output_section::add_output_section_data(pOVar11,pOVar10);\n    bVar6 = Parameters::incremental_update(parameters);\n    if (bVar6) {\n      uVar14 = Free_list::allocate(&this->free_list_,oVar15,align,*poff);\n      if (oVar15 == -1) {\n        pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                );\n                    /* WARNING: Subroutine does not return */\n        gold_fallback(pcVar8);\n      }\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);\n      }\n    }\n    else {\n      uVar14 = (align - 1) + *poff & -align;\n    }\n    symtab->offset_ = off + uVar14;\n    bVar2 = (pOVar9->super_Output_data).field_0x20;\n    if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    (pOVar9->super_Output_data).offset_ = uVar14;\n    (pOVar9->super_Output_data).field_0x20 = bVar2 | 4;\n    if (((bVar2 & 2) == 0) &&\n       ((*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),\n       ((pOVar9->super_Output_data).field_0x20 & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if (((pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0)) || ((pOVar9->field_0xc8 & 8) != 0)\n       ) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n    }\n    pOVar9->link_section_ = &pOVar11->super_Output_data;\n    if (((pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)\n        ) || ((local_symcount != pOVar9->info_ && (pOVar9->info_ != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }\n    pOVar9->info_ = local_symcount;\n    Output_section::set_entsize(pOVar9,(long)local_7c);\n    if (*poff < (long)(uVar14 + oVar15)) {\n      *poff = uVar14 + oVar15;\n      return;\n    }\n  }" { (expression_statement "Stringpool_template<char>::set_string_offsets(pool);" (binary_expression "Stringpool_template<char>::set_string_offsets(pool)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "set_string_offsets(pool)" identifier (argument_list "(pool)" ( identifier )))) ;) (expression_statement "this_00 = &this->namepool_;" (assignment_expression "this_00 = &this->namepool_" identifier = (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier))) ;) (expression_statement "pcVar8 = Stringpool_template<char>::add(this_00,".symtab",false,(Key *)0x0);" (assignment_expression "pcVar8 = Stringpool_template<char>::add(this_00,".symtab",false,(Key *)0x0)" identifier = (binary_expression "Stringpool_template<char>::add(this_00,".symtab",false,(Key *)0x0)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(this_00,".symtab",false,(Key *)0x0)" identifier (argument_list "(this_00,".symtab",false,(Key *)0x0)" ( identifier , (string_literal "".symtab"" " string_content ") , false , (cast_expression "(Key *)0x0" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "pOVar9 = make_output_section(this,pcVar8,2,0,ORDER_INVALID,false);" (assignment_expression "pOVar9 = make_output_section(this,pcVar8,2,0,ORDER_INVALID,false)" identifier = (call_expression "make_output_section(this,pcVar8,2,0,ORDER_INVALID,false)" identifier (argument_list "(this,pcVar8,2,0,ORDER_INVALID,false)" ( identifier , identifier , number_literal , number_literal , identifier , false )))) ;) (expression_statement "this->symtab_section_ = pOVar9;" (assignment_expression "this->symtab_section_ = pOVar9" (field_expression "this->symtab_section_" identifier -> field_identifier) = identifier) ;) (expression_statement "pOVar10 = (Output_section_data *)operator_new(0x40);" (assignment_expression "pOVar10 = (Output_section_data *)operator_new(0x40)" identifier = (cast_expression "(Output_section_data *)operator_new(0x40)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "align = (ulong)local_4c;" (assignment_expression "align = (ulong)local_4c" identifier = (cast_expression "(ulong)local_4c" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "bVar2 = (pOVar10->super_Output_data).field_0x20;" (assignment_expression "bVar2 = (pOVar10->super_Output_data).field_0x20" identifier = (field_expression "(pOVar10->super_Output_data).field_0x20" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(pOVar10->super_Output_data).address_ = 0;" (assignment_expression "(pOVar10->super_Output_data).address_ = 0" (field_expression "(pOVar10->super_Output_data).address_" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "pOVar10->addralign_ = align;" (assignment_expression "pOVar10->addralign_ = align" (field_expression "pOVar10->addralign_" identifier -> field_identifier) = identifier) ;) (expression_statement "(pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00434088;" (assignment_expression "(pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00434088" (field_expression "(pOVar10->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_fixed_space_00434088" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_fixed_space_00434088" & identifier))) ;) (expression_statement "pOVar10->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar10->output_section_ = (Output_section *)0x0" (field_expression "pOVar10->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pOVar10->super_Output_data).data_size_ = oVar15;" (assignment_expression "(pOVar10->super_Output_data).data_size_ = oVar15" (field_expression "(pOVar10->super_Output_data).data_size_" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pOVar10->super_Output_data).offset_ = -1;" (assignment_expression "(pOVar10->super_Output_data).offset_ = -1" (field_expression "(pOVar10->super_Output_data).offset_" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pOVar10->super_Output_data).field_0x20 = bVar2 & 0xe0 | 10;" (assignment_expression "(pOVar10->super_Output_data).field_0x20 = bVar2 & 0xe0 | 10" (field_expression "(pOVar10->super_Output_data).field_0x20" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar2 & 0xe0 | 10" (binary_expression "bVar2 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** symtab";" (assignment_expression "pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** symtab"" (field_expression "pOVar10[1].super_Output_data._vptr_Output_data" (field_expression "pOVar10[1].super_Output_data" (subscript_expression "pOVar10[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)"** symtab"" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (string_literal ""** symtab"" " string_content "))) ;) (labeled_statement "Output_section::add_output_section_data(pOVar9,pOVar10);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(pOVar9,pOVar10);" (call_expression "add_output_section_data(pOVar9,pOVar10)" identifier (argument_list "(pOVar9,pOVar10)" ( identifier , identifier ))) ;)) (if_statement "if (0xfeff < shnum) {\n      pcVar8 = Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0);\n      pOVar11 = make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false);\n      posd = (Output_symtab_xindex *)operator_new(0x50);\n      (posd->super_Output_section_data).super_Output_data.address_ = 0;\n      (posd->super_Output_section_data).addralign_ = 4;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      (posd->super_Output_section_data).super_Output_data.offset_ = -1;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_start = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_finish = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage = (pointer)0x0;\n      this->symtab_xindex_ = posd;\n      (posd->super_Output_section_data).super_Output_data.data_size_ = oVar15 / (long)uVar14 << 2;\n      (posd->super_Output_section_data).super_Output_data.field_0x20 =\n           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28;\n      Output_section::add_output_section_data(pOVar11,(Output_section_data *)posd);\n      if (((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||\n         ((pOVar11->field_0xc8 & 8) != 0)) goto LAB_001aa349;\n      pOVar11->link_section_ = &pOVar9->super_Output_data;\n      pOVar11->addralign_ = 4;\n      Output_section::set_entsize(pOVar11,4);\n      pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }" if (parenthesized_expression "(0xfeff < shnum)" ( (binary_expression "0xfeff < shnum" number_literal < identifier) )) (compound_statement "{\n      pcVar8 = Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0);\n      pOVar11 = make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false);\n      posd = (Output_symtab_xindex *)operator_new(0x50);\n      (posd->super_Output_section_data).super_Output_data.address_ = 0;\n      (posd->super_Output_section_data).addralign_ = 4;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      (posd->super_Output_section_data).super_Output_data.offset_ = -1;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_start = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_finish = (pointer)0x0;\n      (posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage = (pointer)0x0;\n      this->symtab_xindex_ = posd;\n      (posd->super_Output_section_data).super_Output_data.data_size_ = oVar15 / (long)uVar14 << 2;\n      (posd->super_Output_section_data).super_Output_data.field_0x20 =\n           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28;\n      Output_section::add_output_section_data(pOVar11,(Output_section_data *)posd);\n      if (((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||\n         ((pOVar11->field_0xc8 & 8) != 0)) goto LAB_001aa349;\n      pOVar11->link_section_ = &pOVar9->super_Output_data;\n      pOVar11->addralign_ = 4;\n      Output_section::set_entsize(pOVar11,4);\n      pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }" { (expression_statement "pcVar8 = Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0);" (assignment_expression "pcVar8 = Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0)" identifier = (binary_expression "Stringpool_template<char>::add(this_00,".symtab_shndx",false,(Key *)0x0)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(this_00,".symtab_shndx",false,(Key *)0x0)" identifier (argument_list "(this_00,".symtab_shndx",false,(Key *)0x0)" ( identifier , (string_literal "".symtab_shndx"" " string_content ") , false , (cast_expression "(Key *)0x0" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "pOVar11 = make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false);" (assignment_expression "pOVar11 = make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false)" identifier = (call_expression "make_output_section(this,pcVar8,0x12,0,ORDER_INVALID,false)" identifier (argument_list "(this,pcVar8,0x12,0,ORDER_INVALID,false)" ( identifier , identifier , number_literal , number_literal , identifier , false )))) ;) (expression_statement "posd = (Output_symtab_xindex *)operator_new(0x50);" (assignment_expression "posd = (Output_symtab_xindex *)operator_new(0x50)" identifier = (cast_expression "(Output_symtab_xindex *)operator_new(0x50)" ( (type_descriptor "Output_symtab_xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "(posd->super_Output_section_data).super_Output_data.address_ = 0;" (assignment_expression "(posd->super_Output_section_data).super_Output_data.address_ = 0" (field_expression "(posd->super_Output_section_data).super_Output_data.address_" (field_expression "(posd->super_Output_section_data).super_Output_data" (parenthesized_expression "(posd->super_Output_section_data)" ( (field_expression "posd->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(posd->super_Output_section_data).addralign_ = 4;" (assignment_expression "(posd->super_Output_section_data).addralign_ = 4" (field_expression "(posd->super_Output_section_data).addralign_" (parenthesized_expression "(posd->super_Output_section_data)" ( (field_expression "posd->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(posd->super_Output_section_data).output_section_ = (Output_section *)0x0;" (assignment_expression "(posd->super_Output_section_data).output_section_ = (Output_section *)0x0" (field_expression "(posd->super_Output_section_data).output_section_" (parenthesized_expression "(posd->super_Output_section_data)" ( (field_expression "posd->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(posd->super_Output_section_data).super_Output_data.offset_ = -1;" (assignment_expression "(posd->super_Output_section_data).super_Output_data.offset_ = -1" (field_expression "(posd->super_Output_section_data).super_Output_data.offset_" (field_expression "(posd->super_Output_section_data).super_Output_data" (parenthesized_expression "(posd->super_Output_section_data)" ( (field_expression "posd->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (ERROR "(posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::" (comma_expression "(posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std" (binary_expression "(posd->entries_).\n      super__Vector_base<std::pair<unsigned_int" (binary_expression "(posd->entries_).\n      super__Vector_base<std" (field_expression "(posd->entries_).\n      super__Vector_base" (parenthesized_expression "(posd->entries_)" ( (field_expression "posd->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (expression_statement "pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_start = (pointer)0x0;" (comma_expression "pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_start = (pointer)0x0" (binary_expression "pair<unsigned_int" identifier < identifier) , (assignment_expression "_unsigned_int>_>_>\n      ._M_impl._M_start = (pointer)0x0" (field_expression "_unsigned_int>_>_>\n      ._M_impl._M_start" (field_expression "_unsigned_int>_>_>\n      ._M_impl" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal))) ;) (ERROR "(posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::" (comma_expression "(posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std" (binary_expression "(posd->entries_).\n      super__Vector_base<std::pair<unsigned_int" (binary_expression "(posd->entries_).\n      super__Vector_base<std" (field_expression "(posd->entries_).\n      super__Vector_base" (parenthesized_expression "(posd->entries_)" ( (field_expression "posd->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (expression_statement "pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_finish = (pointer)0x0;" (comma_expression "pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_finish = (pointer)0x0" (binary_expression "pair<unsigned_int" identifier < identifier) , (assignment_expression "_unsigned_int>_>_>\n      ._M_impl._M_finish = (pointer)0x0" (field_expression "_unsigned_int>_>_>\n      ._M_impl._M_finish" (field_expression "_unsigned_int>_>_>\n      ._M_impl" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal))) ;) (ERROR "(posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::" (comma_expression "(posd->entries_).\n      super__Vector_base<std::pair<unsigned_int,_unsigned_int>,_std" (binary_expression "(posd->entries_).\n      super__Vector_base<std::pair<unsigned_int" (binary_expression "(posd->entries_).\n      super__Vector_base<std" (field_expression "(posd->entries_).\n      super__Vector_base" (parenthesized_expression "(posd->entries_)" ( (field_expression "posd->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (expression_statement "pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage = (pointer)0x0;" (comma_expression "pair<unsigned_int,_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage = (pointer)0x0" (binary_expression "pair<unsigned_int" identifier < identifier) , (assignment_expression "_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "_unsigned_int>_>_>\n      ._M_impl._M_end_of_storage" (field_expression "_unsigned_int>_>_>\n      ._M_impl" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal))) ;) (expression_statement "this->symtab_xindex_ = posd;" (assignment_expression "this->symtab_xindex_ = posd" (field_expression "this->symtab_xindex_" identifier -> field_identifier) = identifier) ;) (expression_statement "(posd->super_Output_section_data).super_Output_data.data_size_ = oVar15 / (long)uVar14 << 2;" (assignment_expression "(posd->super_Output_section_data).super_Output_data.data_size_ = oVar15 / (long)uVar14 << 2" (field_expression "(posd->super_Output_section_data).super_Output_data.data_size_" (field_expression "(posd->super_Output_section_data).super_Output_data" (parenthesized_expression "(posd->super_Output_section_data)" ( (field_expression "posd->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "oVar15 / (long)uVar14 << 2" (binary_expression "oVar15 / (long)uVar14" identifier / (cast_expression "(long)uVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) << number_literal)) ;) (expression_statement "(posd->super_Output_section_data).super_Output_data.field_0x20 =\n           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10;" (assignment_expression "(posd->super_Output_section_data).super_Output_data.field_0x20 =\n           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10" (field_expression "(posd->super_Output_section_data).super_Output_data.field_0x20" (field_expression "(posd->super_Output_section_data).super_Output_data" (parenthesized_expression "(posd->super_Output_section_data)" ( (field_expression "posd->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10" (binary_expression "(posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0" (field_expression "(posd->super_Output_section_data).super_Output_data.field_0x20" (field_expression "(posd->super_Output_section_data).super_Output_data" (parenthesized_expression "(posd->super_Output_section_data)" ( (field_expression "posd->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) | number_literal)) ;) (expression_statement "(posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28;" (assignment_expression "(posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28" (field_expression "(posd->super_Output_section_data).super_Output_data._vptr_Output_data" (field_expression "(posd->super_Output_section_data).super_Output_data" (parenthesized_expression "(posd->super_Output_section_data)" ( (field_expression "posd->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_symtab_xindex_00428b28" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_symtab_xindex_00428b28" & identifier))) ;) (labeled_statement "Output_section::add_output_section_data(pOVar11,(Output_section_data *)posd);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(pOVar11,(Output_section_data *)posd);" (call_expression "add_output_section_data(pOVar11,(Output_section_data *)posd)" identifier (argument_list "(pOVar11,(Output_section_data *)posd)" ( identifier , (cast_expression "(Output_section_data *)posd" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (if_statement "if (((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||\n         ((pOVar11->field_0xc8 & 8) != 0)) goto LAB_001aa349;" if (parenthesized_expression "(((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||\n         ((pOVar11->field_0xc8 & 8) != 0))" ( (binary_expression "((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||\n         ((pOVar11->field_0xc8 & 8) != 0)" (parenthesized_expression "((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0))" ( (binary_expression "(pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)" (parenthesized_expression "(pOVar11->link_ != 0)" ( (binary_expression "pOVar11->link_ != 0" (field_expression "pOVar11->link_" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "((pOVar11->field_0xc8 & 4) != 0)" ( (binary_expression "(pOVar11->field_0xc8 & 4) != 0" (parenthesized_expression "(pOVar11->field_0xc8 & 4)" ( (binary_expression "pOVar11->field_0xc8 & 4" (field_expression "pOVar11->field_0xc8" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((pOVar11->field_0xc8 & 8) != 0)" ( (binary_expression "(pOVar11->field_0xc8 & 8) != 0" (parenthesized_expression "(pOVar11->field_0xc8 & 8)" ( (binary_expression "pOVar11->field_0xc8 & 8" (field_expression "pOVar11->field_0xc8" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_001aa349;" goto statement_identifier ;)) (expression_statement "pOVar11->link_section_ = &pOVar9->super_Output_data;" (assignment_expression "pOVar11->link_section_ = &pOVar9->super_Output_data" (field_expression "pOVar11->link_section_" identifier -> field_identifier) = (pointer_expression "&pOVar9->super_Output_data" & (field_expression "pOVar9->super_Output_data" identifier -> field_identifier))) ;) (expression_statement "pOVar11->addralign_ = 4;" (assignment_expression "pOVar11->addralign_ = 4" (field_expression "pOVar11->addralign_" identifier -> field_identifier) = number_literal) ;) (labeled_statement "Output_section::set_entsize(pOVar11,4);" statement_identifier : (ERROR ":" :) (expression_statement "set_entsize(pOVar11,4);" (call_expression "set_entsize(pOVar11,4)" identifier (argument_list "(pOVar11,4)" ( identifier , number_literal ))) ;)) (expression_statement "pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10;" (assignment_expression "pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10" (field_expression "pOVar11->field_0xc8" identifier -> field_identifier) = (binary_expression "pOVar11->field_0xc8 | 0x10" (field_expression "pOVar11->field_0xc8" identifier -> field_identifier) | number_literal)) ;) (expression_statement "this->any_postprocessing_sections_ = true;" (assignment_expression "this->any_postprocessing_sections_ = true" (field_expression "this->any_postprocessing_sections_" identifier -> field_identifier) = true) ;) })) (expression_statement "pcVar8 = Stringpool_template<char>::add(this_00,".strtab",false,(Key *)0x0);" (assignment_expression "pcVar8 = Stringpool_template<char>::add(this_00,".strtab",false,(Key *)0x0)" identifier = (binary_expression "Stringpool_template<char>::add(this_00,".strtab",false,(Key *)0x0)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(this_00,".strtab",false,(Key *)0x0)" identifier (argument_list "(this_00,".strtab",false,(Key *)0x0)" ( identifier , (string_literal "".strtab"" " string_content ") , false , (cast_expression "(Key *)0x0" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "pOVar11 = make_output_section(this,pcVar8,3,0,ORDER_INVALID,false);" (assignment_expression "pOVar11 = make_output_section(this,pcVar8,3,0,ORDER_INVALID,false)" identifier = (call_expression "make_output_section(this,pcVar8,3,0,ORDER_INVALID,false)" identifier (argument_list "(this,pcVar8,3,0,ORDER_INVALID,false)" ( identifier , identifier , number_literal , number_literal , identifier , false )))) ;) (expression_statement "pOVar10 = (Output_section_data *)operator_new(0x40);" (assignment_expression "pOVar10 = (Output_section_data *)operator_new(0x40)" identifier = (cast_expression "(Output_section_data *)operator_new(0x40)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "puVar1 = &(pOVar10->super_Output_data).field_0x20;" (assignment_expression "puVar1 = &(pOVar10->super_Output_data).field_0x20" identifier = (pointer_expression "&(pOVar10->super_Output_data).field_0x20" & (field_expression "(pOVar10->super_Output_data).field_0x20" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 & 0xe0;" (assignment_expression "*puVar1 = *puVar1 & 0xe0" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xe0" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "(pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00428978;" (assignment_expression "(pOVar10->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00428978" (field_expression "(pOVar10->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_strtab_00428978" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_strtab_00428978" & identifier))) ;) (expression_statement "(pOVar10->super_Output_data).address_ = 0;" (assignment_expression "(pOVar10->super_Output_data).address_ = 0" (field_expression "(pOVar10->super_Output_data).address_" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pOVar10->super_Output_data).data_size_ = 0;" (assignment_expression "(pOVar10->super_Output_data).data_size_ = 0" (field_expression "(pOVar10->super_Output_data).data_size_" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pOVar10->super_Output_data).offset_ = -1;" (assignment_expression "(pOVar10->super_Output_data).offset_ = -1" (field_expression "(pOVar10->super_Output_data).offset_" (parenthesized_expression "(pOVar10->super_Output_data)" ( (field_expression "pOVar10->super_Output_data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "pOVar10->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar10->output_section_ = (Output_section *)0x0" (field_expression "pOVar10->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pOVar10->addralign_ = 1;" (assignment_expression "pOVar10->addralign_ = 1" (field_expression "pOVar10->addralign_" identifier -> field_identifier) = number_literal) ;) (expression_statement "pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pool;" (assignment_expression "pOVar10[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)pool" (field_expression "pOVar10[1].super_Output_data._vptr_Output_data" (field_expression "pOVar10[1].super_Output_data" (subscript_expression "pOVar10[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)pool" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (labeled_statement "Output_section::add_output_section_data(pOVar11,pOVar10);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(pOVar11,pOVar10);" (call_expression "add_output_section_data(pOVar11,pOVar10)" identifier (argument_list "(pOVar11,pOVar10)" ( identifier , identifier ))) ;)) (ERROR "bVar6 = Parameters::" (assignment_expression "bVar6 = Parameters" identifier = identifier) : :) (expression_statement "incremental_update(parameters);" (call_expression "incremental_update(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;) (if_statement "if (bVar6) {\n      uVar14 = Free_list::allocate(&this->free_list_,oVar15,align,*poff);\n      if (oVar15 == -1) {\n        pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                );\n                    /* WARNING: Subroutine does not return */\n        gold_fallback(pcVar8);\n      }\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);\n      }\n    }\n    else {\n      uVar14 = (align - 1) + *poff & -align;\n    }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n      uVar14 = Free_list::allocate(&this->free_list_,oVar15,align,*poff);\n      if (oVar15 == -1) {\n        pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                );\n                    /* WARNING: Subroutine does not return */\n        gold_fallback(pcVar8);\n      }\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);\n      }\n    }" { (ERROR "uVar14 = Free_list::" (assignment_expression "uVar14 = Free_list" identifier = identifier) : :) (expression_statement "allocate(&this->free_list_,oVar15,align,*poff);" (call_expression "allocate(&this->free_list_,oVar15,align,*poff)" identifier (argument_list "(&this->free_list_,oVar15,align,*poff)" ( (pointer_expression "&this->free_list_" & (field_expression "this->free_list_" identifier -> field_identifier)) , identifier , identifier , (pointer_expression "*poff" * identifier) ))) ;) (if_statement "if (oVar15 == -1) {\n        pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                );\n                    /* WARNING: Subroutine does not return */\n        gold_fallback(pcVar8);\n      }" if (parenthesized_expression "(oVar15 == -1)" ( (binary_expression "oVar15 == -1" identifier == number_literal) )) (compound_statement "{\n        pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                );\n                    /* WARNING: Subroutine does not return */\n        gold_fallback(pcVar8);\n      }" { (expression_statement "pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                );" (assignment_expression "pcVar8 = (char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                )" identifier = (cast_expression "(char *)gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                )" identifier (argument_list "(\n                                "out of patch space for symbol table; relink with --incremental-full"\n                                )" ( (string_literal ""out of patch space for symbol table; relink with --incremental-full"" " string_content ") ))))) ;) comment (expression_statement "gold_fallback(pcVar8);" (call_expression "gold_fallback(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) })) (if_statement "if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);\n      }" if (parenthesized_expression "((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))" ( (binary_expression "(parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)" (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)) )) && (parenthesized_expression "((parameters->debug_ & 0x10) != 0)" ( (binary_expression "(parameters->debug_ & 0x10) != 0" (parenthesized_expression "(parameters->debug_ & 0x10)" ( (binary_expression "parameters->debug_ & 0x10" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);\n      }" { (labeled_statement "Errors::debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);" statement_identifier : (ERROR ":" :) (expression_statement "debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15);" (call_expression "debug(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15)" identifier (argument_list "(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",uVar14,\n                      oVar15)" ( (field_expression "parameters->errors_" identifier -> field_identifier) , (string_literal ""create_symtab_sections: %08lx %08lx .symtab"" " string_content ") , identifier , identifier ))) ;)) })) }) (else_clause "else {\n      uVar14 = (align - 1) + *poff & -align;\n    }" else (compound_statement "{\n      uVar14 = (align - 1) + *poff & -align;\n    }" { (expression_statement "uVar14 = (align - 1) + *poff & -align;" (assignment_expression "uVar14 = (align - 1) + *poff & -align" identifier = (binary_expression "(align - 1) + *poff & -align" (binary_expression "(align - 1) + *poff" (parenthesized_expression "(align - 1)" ( (binary_expression "align - 1" identifier - number_literal) )) + (pointer_expression "*poff" * identifier)) & (unary_expression "-align" - identifier))) ;) }))) (expression_statement "symtab->offset_ = off + uVar14;" (assignment_expression "symtab->offset_ = off + uVar14" (field_expression "symtab->offset_" identifier -> field_identifier) = (binary_expression "off + uVar14" identifier + identifier)) ;) (expression_statement "bVar2 = (pOVar9->super_Output_data).field_0x20;" (assignment_expression "bVar2 = (pOVar9->super_Output_data).field_0x20" identifier = (field_expression "(pOVar9->super_Output_data).field_0x20" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }" if (parenthesized_expression "((bVar2 & 4) != 0)" ( (binary_expression "(bVar2 & 4) != 0" (parenthesized_expression "(bVar2 & 4)" ( (binary_expression "bVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset")" identifier (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_file_offset"" " string_content ") ))) ;) })) (expression_statement "(pOVar9->super_Output_data).offset_ = uVar14;" (assignment_expression "(pOVar9->super_Output_data).offset_ = uVar14" (field_expression "(pOVar9->super_Output_data).offset_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pOVar9->super_Output_data).field_0x20 = bVar2 | 4;" (assignment_expression "(pOVar9->super_Output_data).field_0x20 = bVar2 | 4" (field_expression "(pOVar9->super_Output_data).field_0x20" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar2 | 4" identifier | number_literal)) ;) (if_statement "if (((bVar2 & 2) == 0) &&\n       ((*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),\n       ((pOVar9->super_Output_data).field_0x20 & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }" if (parenthesized_expression "(((bVar2 & 2) == 0) &&\n       ((*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),\n       ((pOVar9->super_Output_data).field_0x20 & 2) == 0))" ( (binary_expression "((bVar2 & 2) == 0) &&\n       ((*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),\n       ((pOVar9->super_Output_data).field_0x20 & 2) == 0)" (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),\n       ((pOVar9->super_Output_data).field_0x20 & 2) == 0)" ( (comma_expression "(*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9),\n       ((pOVar9->super_Output_data).field_0x20 & 2) == 0" (call_expression "(*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9)" (parenthesized_expression "(*(pOVar9->super_Output_data)._vptr_Output_data[0xe])" ( (pointer_expression "*(pOVar9->super_Output_data)._vptr_Output_data[0xe]" * (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[0xe]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pOVar9)" ( identifier ))) , (binary_expression "((pOVar9->super_Output_data).field_0x20 & 2) == 0" (parenthesized_expression "((pOVar9->super_Output_data).field_0x20 & 2)" ( (binary_expression "(pOVar9->super_Output_data).field_0x20 & 2" (field_expression "(pOVar9->super_Output_data).field_0x20" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;) })) (if_statement "if (((pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0)) || ((pOVar9->field_0xc8 & 8) != 0)\n       ) {\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n    }" if (parenthesized_expression "(((pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0)) || ((pOVar9->field_0xc8 & 8) != 0)\n       )" ( (binary_expression "((pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0)) || ((pOVar9->field_0xc8 & 8) != 0)" (parenthesized_expression "((pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0))" ( (binary_expression "(pOVar9->link_ != 0) || ((pOVar9->field_0xc8 & 4) != 0)" (parenthesized_expression "(pOVar9->link_ != 0)" ( (binary_expression "pOVar9->link_ != 0" (field_expression "pOVar9->link_" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "((pOVar9->field_0xc8 & 4) != 0)" ( (binary_expression "(pOVar9->field_0xc8 & 4) != 0" (parenthesized_expression "(pOVar9->field_0xc8 & 4)" ( (binary_expression "pOVar9->field_0xc8 & 4" (field_expression "pOVar9->field_0xc8" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((pOVar9->field_0xc8 & 8) != 0)" ( (binary_expression "(pOVar9->field_0xc8 & 8) != 0" (parenthesized_expression "(pOVar9->field_0xc8 & 8)" ( (binary_expression "pOVar9->field_0xc8 & 8" (field_expression "pOVar9->field_0xc8" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n    }" { (labeled_statement "LAB_001aa349:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");" (call_expression "do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section")" identifier (argument_list "("../../gold/output.h",0xd07,"set_link_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_link_section"" " string_content ") ))) ;)) })) (expression_statement "pOVar9->link_section_ = &pOVar11->super_Output_data;" (assignment_expression "pOVar9->link_section_ = &pOVar11->super_Output_data" (field_expression "pOVar9->link_section_" identifier -> field_identifier) = (pointer_expression "&pOVar11->super_Output_data" & (field_expression "pOVar11->super_Output_data" identifier -> field_identifier))) ;) (if_statement "if (((pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)\n        ) || ((local_symcount != pOVar9->info_ && (pOVar9->info_ != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }" if (parenthesized_expression "(((pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)\n        ) || ((local_symcount != pOVar9->info_ && (pOVar9->info_ != 0))))" ( (binary_expression "((pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)\n        ) || ((local_symcount != pOVar9->info_ && (pOVar9->info_ != 0)))" (parenthesized_expression "((pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)\n        )" ( (binary_expression "(pOVar9->info_section_ != (Output_section *)0x0) || (pOVar9->info_symndx_ != (Symbol *)0x0)" (parenthesized_expression "(pOVar9->info_section_ != (Output_section *)0x0)" ( (binary_expression "pOVar9->info_section_ != (Output_section *)0x0" (field_expression "pOVar9->info_section_" identifier -> field_identifier) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pOVar9->info_symndx_ != (Symbol *)0x0)" ( (binary_expression "pOVar9->info_symndx_ != (Symbol *)0x0" (field_expression "pOVar9->info_symndx_" identifier -> field_identifier) != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((local_symcount != pOVar9->info_ && (pOVar9->info_ != 0)))" ( (parenthesized_expression "(local_symcount != pOVar9->info_ && (pOVar9->info_ != 0))" ( (binary_expression "local_symcount != pOVar9->info_ && (pOVar9->info_ != 0)" (binary_expression "local_symcount != pOVar9->info_" identifier != (field_expression "pOVar9->info_" identifier -> field_identifier)) && (parenthesized_expression "(pOVar9->info_ != 0)" ( (binary_expression "pOVar9->info_ != 0" (field_expression "pOVar9->info_" identifier -> field_identifier) != number_literal) ))) )) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");" (call_expression "do_gold_unreachable("../../gold/output.h",0xd5e,"set_info")" identifier (argument_list "("../../gold/output.h",0xd5e,"set_info")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info"" " string_content ") ))) ;) })) (expression_statement "pOVar9->info_ = local_symcount;" (assignment_expression "pOVar9->info_ = local_symcount" (field_expression "pOVar9->info_" identifier -> field_identifier) = identifier) ;) (labeled_statement "Output_section::set_entsize(pOVar9,(long)local_7c);" statement_identifier : (ERROR ":" :) (expression_statement "set_entsize(pOVar9,(long)local_7c);" (call_expression "set_entsize(pOVar9,(long)local_7c)" identifier (argument_list "(pOVar9,(long)local_7c)" ( identifier , (cast_expression "(long)local_7c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ))) ;)) (if_statement "if (*poff < (long)(uVar14 + oVar15)) {\n      *poff = uVar14 + oVar15;\n      return;\n    }" if (parenthesized_expression "(*poff < (long)(uVar14 + oVar15))" ( (binary_expression "*poff < (long)(uVar14 + oVar15)" (pointer_expression "*poff" * identifier) < (cast_expression "(long)(uVar14 + oVar15)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(uVar14 + oVar15)" ( (binary_expression "uVar14 + oVar15" identifier + identifier) )))) )) (compound_statement "{\n      *poff = uVar14 + oVar15;\n      return;\n    }" { (expression_statement "*poff = uVar14 + oVar15;" (assignment_expression "*poff = uVar14 + oVar15" (pointer_expression "*poff" * identifier) = (binary_expression "uVar14 + oVar15" identifier + identifier)) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001a9c80(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)\n\n{\n  byte bVar1;\n  int iVar2;\n  char cVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  long lVar9;\n  ulong uVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  uint uVar14;\n  undefined8 uStack_90;\n  int local_7c;\n  uint local_4c;\n  uint local_3c [3];\n  \n  if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }\n  iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);\n  if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }\n  plVar6 = *(long **)(param_1 + 0x248);\n  local_3c[0] = 1;\n  uVar11 = uVar10;\n  if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }\nLAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;\n  uVar14 = local_3c[0];\n  if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }\n  if (local_3c[0] * local_7c != uVar11) {\n                    \n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  lVar4 = *(long *)(param_1 + 0x2e0);\n  if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  lVar9 = param_1 + 0xa0;\n  lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }\n  if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_001a9c80(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)\n\n{\n  byte bVar1;\n  int iVar2;\n  char cVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  long lVar9;\n  ulong uVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  uint uVar14;\n  undefined8 uStack_90;\n  int local_7c;\n  uint local_4c;\n  uint local_3c [3];\n  \n  if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }\n  iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);\n  if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }\n  plVar6 = *(long **)(param_1 + 0x248);\n  local_3c[0] = 1;\n  uVar11 = uVar10;\n  if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }\nLAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;\n  uVar14 = local_3c[0];\n  if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }\n  if (local_3c[0] * local_7c != uVar11) {\n                    \n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  lVar4 = *(long *)(param_1 + 0x2e0);\n  if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  lVar9 = param_1 + 0xa0;\n  lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }\n  if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001a9c80(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)" identifier (parameter_list "(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "uint param_6" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  char cVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  long lVar9;\n  ulong uVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  uint uVar14;\n  undefined8 uStack_90;\n  int local_7c;\n  uint local_4c;\n  uint local_3c [3];\n  \n  if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }\n  iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);\n  if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }\n  plVar6 = *(long **)(param_1 + 0x248);\n  local_3c[0] = 1;\n  uVar11 = uVar10;\n  if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }\nLAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;\n  uVar14 = local_3c[0];\n  if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }\n  if (local_3c[0] * local_7c != uVar11) {\n                    \n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  lVar4 = *(long *)(param_1 + 0x2e0);\n  if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  lVar9 = param_1 + 0xa0;\n  lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }\n  if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined8 uStack_90;" type_identifier identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_3c [3];" type_identifier (array_declarator "local_3c [3]" identifier [ number_literal ]) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }" { (expression_statement "FUN_0017c650("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (expression_statement "iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);" (assignment_expression "iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" identifier = (pointer_expression "**(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" * (pointer_expression "*(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" * (cast_expression "(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }" if (parenthesized_expression "(iVar2 == 0x20)" ( (binary_expression "iVar2 == 0x20" identifier == number_literal) )) (compound_statement "{\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }" { (expression_statement "uVar10 = 0x10;" (assignment_expression "uVar10 = 0x10" identifier = number_literal) ;) (expression_statement "local_4c = 4;" (assignment_expression "local_4c = 4" identifier = number_literal) ;) (expression_statement "local_7c = 0x10;" (assignment_expression "local_7c = 0x10" identifier = number_literal) ;) }) (else_clause "else {\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }" else (compound_statement "{\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }" { (if_statement "if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }" if (parenthesized_expression "(iVar2 != 0x40)" ( (binary_expression "iVar2 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }" { (expression_statement "FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections")" identifier (argument_list "("../../gold/layout.cc",0x1110,"create_symtab_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_symtab_sections"" " string_content ") ))) ;) })) (expression_statement "local_4c = 8;" (assignment_expression "local_4c = 8" identifier = number_literal) ;) (expression_statement "uVar10 = 0x18;" (assignment_expression "uVar10 = 0x18" identifier = number_literal) ;) (expression_statement "local_7c = 0x18;" (assignment_expression "local_7c = 0x18" identifier = number_literal) ;) }))) (expression_statement "plVar6 = *(long **)(param_1 + 0x248);" (assignment_expression "plVar6 = *(long **)(param_1 + 0x248)" identifier = (pointer_expression "*(long **)(param_1 + 0x248)" * (cast_expression "(long **)(param_1 + 0x248)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "local_3c[0] = 1;" (assignment_expression "local_3c[0] = 1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (if_statement "if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }" if (parenthesized_expression "(plVar6 != *(long **)(param_1 + 0x250))" ( (binary_expression "plVar6 != *(long **)(param_1 + 0x250)" identifier != (pointer_expression "*(long **)(param_1 + 0x250)" * (cast_expression "(long **)(param_1 + 0x250)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }" { (do_statement "do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);" do (compound_statement "{\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    }" { (while_statement "while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }" while (parenthesized_expression "(lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0)" ( (comma_expression "lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0" (assignment_expression "lVar4 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) , (binary_expression "(*(byte *)(lVar4 + 200) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar4 + 200) & 1)" ( (binary_expression "*(byte *)(lVar4 + 200) & 1" (pointer_expression "*(byte *)(lVar4 + 200)" * (cast_expression "(byte *)(lVar4 + 200)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 200)" ( (binary_expression "lVar4 + 200" identifier + number_literal) )))) & number_literal) )) != number_literal)) )) (compound_statement "{\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }" { (if_statement "if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }" if (parenthesized_expression "(local_3c[0] == 0)" ( (binary_expression "local_3c[0] == 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }" { (expression_statement "FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");" (call_expression "FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index")" identifier (argument_list "("../../gold/output.h",0xd89,"set_symtab_index")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_symtab_index"" " string_content ") ))) ;) })) (expression_statement "*(uint *)(lVar4 + 0x80) = local_3c[0];" (assignment_expression "*(uint *)(lVar4 + 0x80) = local_3c[0]" (pointer_expression "*(uint *)(lVar4 + 0x80)" * (cast_expression "(uint *)(lVar4 + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x80)" ( (binary_expression "lVar4 + 0x80" identifier + number_literal) )))) = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar11 + uVar10;" (assignment_expression "uVar11 = uVar11 + uVar10" identifier = (binary_expression "uVar11 + uVar10" identifier + identifier)) ;) (expression_statement "local_3c[0] = local_3c[0] + 1;" (assignment_expression "local_3c[0] = local_3c[0] + 1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (binary_expression "local_3c[0] + 1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "plVar6 = plVar6 + 1;" (assignment_expression "plVar6 = plVar6 + 1" identifier = (binary_expression "plVar6 + 1" identifier + number_literal)) ;) (if_statement "if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;" if (parenthesized_expression "(*(long **)(param_1 + 0x250) == plVar6)" ( (binary_expression "*(long **)(param_1 + 0x250) == plVar6" (pointer_expression "*(long **)(param_1 + 0x250)" * (cast_expression "(long **)(param_1 + 0x250)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_001a9d4f;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(lVar4 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(lVar4 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(lVar4 + 0x80)" * (cast_expression "(undefined4 *)(lVar4 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x80)" ( (binary_expression "lVar4 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "plVar6 = plVar6 + 1;" (assignment_expression "plVar6 = plVar6 + 1" identifier = (binary_expression "plVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(long **)(param_1 + 0x250) != plVar6)" ( (binary_expression "*(long **)(param_1 + 0x250) != plVar6" (pointer_expression "*(long **)(param_1 + 0x250)" * (cast_expression "(long **)(param_1 + 0x250)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) )))) != identifier) )) ;) })) (labeled_statement "LAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;" statement_identifier : (expression_statement "puVar7 = (undefined8 *)*param_2;" (assignment_expression "puVar7 = (undefined8 *)*param_2" identifier = (cast_expression "(undefined8 *)*param_2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) (expression_statement "uVar14 = local_3c[0];" (assignment_expression "uVar14 = local_3c[0]" identifier = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (if_statement "if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }" if (parenthesized_expression "(puVar7 != (undefined8 *)param_2[1])" ( (binary_expression "puVar7 != (undefined8 *)param_2[1]" identifier != (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }" { (do_statement "do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);" do (compound_statement "{\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    }" { (expression_statement "plVar6 = (long *)*puVar7;" (assignment_expression "plVar6 = (long *)*puVar7" identifier = (cast_expression "(long *)*puVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "uStack_90 = 0x1a9d99;" (assignment_expression "uStack_90 = 0x1a9d99" identifier = number_literal) ;) (expression_statement "local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);" (assignment_expression "local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3)" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "(**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3)" (parenthesized_expression "(**(code **)(*plVar6 + 0x198))" ( (pointer_expression "**(code **)(*plVar6 + 0x198)" * (pointer_expression "*(code **)(*plVar6 + 0x198)" * (cast_expression "(code **)(*plVar6 + 0x198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x198)" ( (binary_expression "*plVar6 + 0x198" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6,uVar14,uVar11,param_3)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;" (assignment_expression "uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c" identifier = (binary_expression "uVar11 + (local_3c[0] - uVar14) * local_7c" identifier + (binary_expression "(local_3c[0] - uVar14) * local_7c" (parenthesized_expression "(local_3c[0] - uVar14)" ( (binary_expression "local_3c[0] - uVar14" (subscript_expression "local_3c[0]" identifier [ number_literal ]) - identifier) )) * identifier))) ;) (expression_statement "uVar14 = local_3c[0];" (assignment_expression "uVar14 = local_3c[0]" identifier = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "((undefined8 *)param_2[1] != puVar7)" ( (binary_expression "(undefined8 *)param_2[1] != puVar7" (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) != identifier) )) ;) })) (if_statement "if (local_3c[0] * local_7c != uVar11) {\n                    \n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }" if (parenthesized_expression "(local_3c[0] * local_7c != uVar11)" ( (binary_expression "local_3c[0] * local_7c != uVar11" (binary_expression "local_3c[0] * local_7c" (subscript_expression "local_3c[0]" identifier [ number_literal ]) * identifier) != identifier) )) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }" { (expression_statement "FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections")" identifier (argument_list "("../../gold/layout.cc",0x1134,"create_symtab_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_symtab_sections"" " string_content ") ))) ;) })) (expression_statement "lVar4 = *(long *)(param_1 + 0x2e0);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x2e0)" identifier = (pointer_expression "*(long *)(param_1 + 0x2e0)" * (cast_expression "(long *)(param_1 + 0x2e0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2e0)" ( (binary_expression "param_1 + 0x2e0" identifier + number_literal) ))))) ;) (if_statement "if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar4 = 0;\n    lVar12 = 0;\n  }" { (expression_statement "lVar4 = 0;" (assignment_expression "lVar4 = 0" identifier = number_literal) ;) (expression_statement "lVar12 = 0;" (assignment_expression "lVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" else (compound_statement "{\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" { (expression_statement "lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;" (assignment_expression "lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6" identifier = (binary_expression "*(long *)(lVar4 + 0x38) * (ulong)param_6" (pointer_expression "*(long *)(lVar4 + 0x38)" * (cast_expression "(long *)(lVar4 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x38)" ( (binary_expression "lVar4 + 0x38" identifier + number_literal) )))) * (cast_expression "(ulong)param_6" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (if_statement "if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }" if (parenthesized_expression "((*(byte *)(lVar4 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar4 + 0x20) & 4" (pointer_expression "*(byte *)(lVar4 + 0x20)" * (cast_expression "(byte *)(lVar4 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x20)" ( (binary_expression "lVar4 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }" { (expression_statement "FUN_0017c650("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_0017c650("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "lVar12 = *(long *)(lVar4 + 0x18) + lVar9;" (assignment_expression "lVar12 = *(long *)(lVar4 + 0x18) + lVar9" identifier = (binary_expression "*(long *)(lVar4 + 0x18) + lVar9" (pointer_expression "*(long *)(lVar4 + 0x18)" * (cast_expression "(long *)(lVar4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x18)" ( (binary_expression "lVar4 + 0x18" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;" if (parenthesized_expression "((*(byte *)(lVar4 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar4 + 0x20) & 2" (pointer_expression "*(byte *)(lVar4 + 0x20)" * (cast_expression "(byte *)(lVar4 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x20)" ( (binary_expression "lVar4 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001aa2e9;" goto statement_identifier ;)) (expression_statement "lVar9 = *(long *)(lVar4 + 0x10) - lVar9;" (assignment_expression "lVar9 = *(long *)(lVar4 + 0x10) - lVar9" identifier = (binary_expression "*(long *)(lVar4 + 0x10) - lVar9" (pointer_expression "*(long *)(lVar4 + 0x10)" * (cast_expression "(long *)(lVar4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x10)" ( (binary_expression "lVar4 + 0x10" identifier + number_literal) )))) - identifier)) ;) (expression_statement "lVar4 = lVar9 / (long)uVar10;" (assignment_expression "lVar4 = lVar9 / (long)uVar10" identifier = (binary_expression "lVar9 / (long)uVar10" identifier / (cast_expression "(long)uVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }" if (parenthesized_expression "(lVar9 != local_7c * lVar4)" ( (binary_expression "lVar9 != local_7c * lVar4" identifier != (binary_expression "local_7c * lVar4" identifier * identifier)) )) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }" { (expression_statement "FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections")" identifier (argument_list "("../../gold/layout.cc",0x1143,"create_symtab_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_symtab_sections"" " string_content ") ))) ;) })) }))) (expression_statement "lVar9 = param_1 + 0xa0;" (assignment_expression "lVar9 = param_1 + 0xa0" identifier = (binary_expression "param_1 + 0xa0" identifier + number_literal)) ;) (expression_statement "lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);" (assignment_expression "lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9)" identifier = (call_expression "FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9)" identifier (argument_list "(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9)" ( identifier , identifier , identifier , (cast_expression "(ulong)param_6" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , identifier )))) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }" { (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);" (call_expression "FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",local_3c)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }" { (expression_statement "FUN_0026fab0(lVar9,uStack_90);" (call_expression "FUN_0026fab0(lVar9,uStack_90)" identifier (argument_list "(lVar9,uStack_90)" ( identifier , identifier ))) ;) (expression_statement "lVar12 = param_1 + 0x10;" (assignment_expression "lVar12 = param_1 + 0x10" identifier = (binary_expression "param_1 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);" (assignment_expression "uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0)" identifier = (call_expression "FUN_0026e6a0(lVar12,".symtab",0,0)" identifier (argument_list "(lVar12,".symtab",0,0)" ( identifier , (string_literal "".symtab"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);" (assignment_expression "plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0)" identifier = (cast_expression "(long *)FUN_001a8f30(param_1,uVar5,2,0,0,0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001a8f30(param_1,uVar5,2,0,0,0)" identifier (argument_list "(param_1,uVar5,2,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "*(long **)(param_1 + 0x2d0) = plVar6;" (assignment_expression "*(long **)(param_1 + 0x2d0) = plVar6" (pointer_expression "*(long **)(param_1 + 0x2d0)" * (cast_expression "(long **)(param_1 + 0x2d0)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7 = (undefined8 *)FUN_002d94a0(0x40);" (assignment_expression "puVar7 = (undefined8 *)FUN_002d94a0(0x40)" identifier = (cast_expression "(undefined8 *)FUN_002d94a0(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002d94a0(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "uVar13 = (ulong)local_4c;" (assignment_expression "uVar13 = (ulong)local_4c" identifier = (cast_expression "(ulong)local_4c" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = uVar13;" (assignment_expression "puVar7[6] = uVar13" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar7 = &PTR_FUN_00434088;" (assignment_expression "*puVar7 = &PTR_FUN_00434088" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00434088" & identifier)) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = lVar4;" (assignment_expression "puVar7[2] = lVar4" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = 0xffffffffffffffff;" (assignment_expression "puVar7[3] = 0xffffffffffffffff" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar7 + 4) & 0xe0 | 10" (binary_expression "*(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar7[7] = "** symtab";" (assignment_expression "puVar7[7] = "** symtab"" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = (string_literal ""** symtab"" " string_content ")) ;) (expression_statement "FUN_001f9c60(plVar6,puVar7);" (call_expression "FUN_001f9c60(plVar6,puVar7)" identifier (argument_list "(plVar6,puVar7)" ( identifier , identifier ))) ;) (if_statement "if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }" if (parenthesized_expression "(0xfeff < param_4)" ( (binary_expression "0xfeff < param_4" number_literal < identifier) )) (compound_statement "{\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }" { (expression_statement "uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);" (assignment_expression "uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0)" identifier = (call_expression "FUN_0026e6a0(lVar12,".symtab_shndx",0,0)" identifier (argument_list "(lVar12,".symtab_shndx",0,0)" ( identifier , (string_literal "".symtab_shndx"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);" (assignment_expression "lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0)" identifier = (call_expression "FUN_001a8f30(param_1,uVar5,0x12,0,0,0)" identifier (argument_list "(param_1,uVar5,0x12,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "puVar7 = (undefined8 *)FUN_002d94a0(0x50);" (assignment_expression "puVar7 = (undefined8 *)FUN_002d94a0(0x50)" identifier = (cast_expression "(undefined8 *)FUN_002d94a0(0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002d94a0(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 4;" (assignment_expression "puVar7[6] = 4" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0xffffffffffffffff;" (assignment_expression "puVar7[3] = 0xffffffffffffffff" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined8 **)(param_1 + 0x2d8) = puVar7;" (assignment_expression "*(undefined8 **)(param_1 + 0x2d8) = puVar7" (pointer_expression "*(undefined8 **)(param_1 + 0x2d8)" * (cast_expression "(undefined8 **)(param_1 + 0x2d8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2d8)" ( (binary_expression "param_1 + 0x2d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7[2] = lVar4 / (long)uVar10 << 2;" (assignment_expression "puVar7[2] = lVar4 / (long)uVar10 << 2" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (binary_expression "lVar4 / (long)uVar10 << 2" (binary_expression "lVar4 / (long)uVar10" identifier / (cast_expression "(long)uVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) << number_literal)) ;) (expression_statement "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar7 + 4) & 0xe0 | 10" (binary_expression "*(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*puVar7 = &PTR_FUN_00428b28;" (assignment_expression "*puVar7 = &PTR_FUN_00428b28" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00428b28" & identifier)) ;) (expression_statement "FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);" (call_expression "FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10)" identifier (argument_list "(lVar8,puVar7,lVar4 % (long)uVar10)" ( identifier , identifier , (binary_expression "lVar4 % (long)uVar10" identifier % (cast_expression "(long)uVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ;) (if_statement "if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;" if (parenthesized_expression "(((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0))" ( (binary_expression "((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)" (parenthesized_expression "((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0))" ( (binary_expression "(*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)" (parenthesized_expression "(*(int *)(lVar8 + 0x50) != 0)" ( (binary_expression "*(int *)(lVar8 + 0x50) != 0" (pointer_expression "*(int *)(lVar8 + 0x50)" * (cast_expression "(int *)(lVar8 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x50)" ( (binary_expression "lVar8 + 0x50" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(lVar8 + 200) & 4) != 0)" ( (binary_expression "(*(byte *)(lVar8 + 200) & 4) != 0" (parenthesized_expression "(*(byte *)(lVar8 + 200) & 4)" ( (binary_expression "*(byte *)(lVar8 + 200) & 4" (pointer_expression "*(byte *)(lVar8 + 200)" * (cast_expression "(byte *)(lVar8 + 200)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 200)" ( (binary_expression "lVar8 + 200" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(lVar8 + 200) & 8) != 0)" ( (binary_expression "(*(byte *)(lVar8 + 200) & 8) != 0" (parenthesized_expression "(*(byte *)(lVar8 + 200) & 8)" ( (binary_expression "*(byte *)(lVar8 + 200) & 8" (pointer_expression "*(byte *)(lVar8 + 200)" * (cast_expression "(byte *)(lVar8 + 200)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 200)" ( (binary_expression "lVar8 + 200" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_001aa349;" goto statement_identifier ;)) (expression_statement "*(long **)(lVar8 + 0x48) = plVar6;" (assignment_expression "*(long **)(lVar8 + 0x48) = plVar6" (pointer_expression "*(long **)(lVar8 + 0x48)" * (cast_expression "(long **)(lVar8 + 0x48)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar8 + 0x48)" ( (binary_expression "lVar8 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar8 + 0x30) = 4;" (assignment_expression "*(undefined8 *)(lVar8 + 0x30) = 4" (pointer_expression "*(undefined8 *)(lVar8 + 0x30)" * (cast_expression "(undefined8 *)(lVar8 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x30)" ( (binary_expression "lVar8 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001f5d50(lVar8,4);" (call_expression "FUN_001f5d50(lVar8,4)" identifier (argument_list "(lVar8,4)" ( identifier , number_literal ))) ;) (expression_statement "*(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;" (assignment_expression "*(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10" (pointer_expression "*(byte *)(lVar8 + 200)" * (cast_expression "(byte *)(lVar8 + 200)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 200)" ( (binary_expression "lVar8 + 200" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar8 + 200) | 0x10" (pointer_expression "*(byte *)(lVar8 + 200)" * (cast_expression "(byte *)(lVar8 + 200)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 200)" ( (binary_expression "lVar8 + 200" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + 0x36e) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x36e) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x36e)" * (cast_expression "(undefined1 *)(param_1 + 0x36e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36e)" ( (binary_expression "param_1 + 0x36e" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);" (assignment_expression "uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0)" identifier = (call_expression "FUN_0026e6a0(lVar12,".strtab",0,0)" identifier (argument_list "(lVar12,".strtab",0,0)" ( identifier , (string_literal "".strtab"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);" (assignment_expression "lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0)" identifier = (call_expression "FUN_001a8f30(param_1,uVar5,3,0,0,0)" identifier (argument_list "(param_1,uVar5,3,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "puVar7 = (undefined8 *)FUN_002d94a0(0x40);" (assignment_expression "puVar7 = (undefined8 *)FUN_002d94a0(0x40)" identifier = (cast_expression "(undefined8 *)FUN_002d94a0(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002d94a0(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" * (cast_expression "(byte *)(puVar7 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*puVar7 = &PTR_FUN_00428978;" (assignment_expression "*puVar7 = &PTR_FUN_00428978" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00428978" & identifier)) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0xffffffffffffffff;" (assignment_expression "puVar7[3] = 0xffffffffffffffff" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 1;" (assignment_expression "puVar7[6] = 1" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = lVar9;" (assignment_expression "puVar7[7] = lVar9" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_001f9c60(lVar12,puVar7);" (call_expression "FUN_001f9c60(lVar12,puVar7)" identifier (argument_list "(lVar12,puVar7)" ( identifier , identifier ))) ;) (expression_statement "cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);" (assignment_expression "cVar3 = FUN_002379c0(PTR_DAT_0043e6b0)" identifier = (call_expression "FUN_002379c0(PTR_DAT_0043e6b0)" identifier (argument_list "(PTR_DAT_0043e6b0)" ( identifier )))) ;) (if_statement "if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }" { (expression_statement "uVar10 = (uVar13 - 1) + *param_5 & -uVar13;" (assignment_expression "uVar10 = (uVar13 - 1) + *param_5 & -uVar13" identifier = (binary_expression "(uVar13 - 1) + *param_5 & -uVar13" (binary_expression "(uVar13 - 1) + *param_5" (parenthesized_expression "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) )) + (pointer_expression "*param_5" * identifier)) & (unary_expression "-uVar13" - identifier))) ;) }) (else_clause "else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }" else (compound_statement "{\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }" { (expression_statement "uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);" (assignment_expression "uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5)" identifier = (call_expression "FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5)" identifier (argument_list "(param_1 + 0x468,lVar4,uVar13,*param_5)" ( (binary_expression "param_1 + 0x468" identifier + number_literal) , identifier , identifier , (pointer_expression "*param_5" * identifier) )))) ;) (if_statement "if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "(lVar4 == -1)" ( (binary_expression "lVar4 == -1" identifier == number_literal) )) (compound_statement "{\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" { (expression_statement "uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");" (assignment_expression "uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full")" identifier = (call_expression "gettext("out of patch space for symbol table; relink with --incremental-full")" identifier (argument_list "("out of patch space for symbol table; relink with --incremental-full")" ( (string_literal ""out of patch space for symbol table; relink with --incremental-full"" " string_content ") )))) ;) (expression_statement "FUN_00178280(uVar5);" (call_expression "FUN_00178280(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (labeled_statement "LAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }" { (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4)" identifier (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4)" ( (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" * (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""create_symtab_sections: %08lx %08lx .symtab"" " string_content ") , identifier , identifier ))) ;) })) }))) (expression_statement "*(ulong *)(param_3 + 0x10) = uVar11 + uVar10;" (assignment_expression "*(ulong *)(param_3 + 0x10) = uVar11 + uVar10" (pointer_expression "*(ulong *)(param_3 + 0x10)" * (cast_expression "(ulong *)(param_3 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) = (binary_expression "uVar11 + uVar10" identifier + identifier)) ;) (expression_statement "bVar1 = *(byte *)(plVar6 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar6 + 4)" identifier = (pointer_expression "*(byte *)(plVar6 + 4)" * (cast_expression "(byte *)(plVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }" { (expression_statement "FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset")" identifier (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_file_offset"" " string_content ") ))) ;) })) (expression_statement "plVar6[3] = uVar10;" (assignment_expression "plVar6[3] = uVar10" (subscript_expression "plVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(plVar6 + 4) = bVar1 | 4;" (assignment_expression "*(byte *)(plVar6 + 4) = bVar1 | 4" (pointer_expression "*(byte *)(plVar6 + 4)" * (cast_expression "(byte *)(plVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) )))) = (binary_expression "bVar1 | 4" identifier | number_literal)) ;) (if_statement "if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }" if (parenthesized_expression "(((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0))" ( (binary_expression "((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)" (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)" ( (comma_expression "(**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0" (call_expression "(**(code **)(*plVar6 + 0x70))(plVar6)" (parenthesized_expression "(**(code **)(*plVar6 + 0x70))" ( (pointer_expression "**(code **)(*plVar6 + 0x70)" * (pointer_expression "*(code **)(*plVar6 + 0x70)" * (cast_expression "(code **)(*plVar6 + 0x70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x70)" ( (binary_expression "*plVar6 + 0x70" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6)" ( identifier ))) , (binary_expression "(*(byte *)(plVar6 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar6 + 4) & 2)" ( (binary_expression "*(byte *)(plVar6 + 4) & 2" (pointer_expression "*(byte *)(plVar6 + 4)" * (cast_expression "(byte *)(plVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }" { (expression_statement "FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;) })) (if_statement "if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }" if (parenthesized_expression "((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0))" ( (binary_expression "(((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)" (parenthesized_expression "(((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0))" ( (binary_expression "((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)" (parenthesized_expression "((int)plVar6[10] != 0)" ( (binary_expression "(int)plVar6[10] != 0" (cast_expression "(int)plVar6[10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar6[10]" identifier [ number_literal ])) != number_literal) )) || (parenthesized_expression "((*(byte *)(plVar6 + 0x19) & 4) != 0)" ( (binary_expression "(*(byte *)(plVar6 + 0x19) & 4) != 0" (parenthesized_expression "(*(byte *)(plVar6 + 0x19) & 4)" ( (binary_expression "*(byte *)(plVar6 + 0x19) & 4" (pointer_expression "*(byte *)(plVar6 + 0x19)" * (cast_expression "(byte *)(plVar6 + 0x19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 0x19)" ( (binary_expression "plVar6 + 0x19" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(plVar6 + 0x19) & 8) != 0)" ( (binary_expression "(*(byte *)(plVar6 + 0x19) & 8) != 0" (parenthesized_expression "(*(byte *)(plVar6 + 0x19) & 8)" ( (binary_expression "*(byte *)(plVar6 + 0x19) & 8" (pointer_expression "*(byte *)(plVar6 + 0x19)" * (cast_expression "(byte *)(plVar6 + 0x19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 0x19)" ( (binary_expression "plVar6 + 0x19" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }" { (labeled_statement "LAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_0017c650("../../gold/output.h",0xd07,"set_link_section")" identifier (argument_list "("../../gold/output.h",0xd07,"set_link_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_link_section"" " string_content ") ))) ;)) })) (expression_statement "plVar6[9] = lVar12;" (assignment_expression "plVar6[9] = lVar12" (subscript_expression "plVar6[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }" if (parenthesized_expression "(((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0))))" ( (binary_expression "((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))" (parenthesized_expression "((plVar6[0xb] != 0) || (plVar6[0xc] != 0))" ( (binary_expression "(plVar6[0xb] != 0) || (plVar6[0xc] != 0)" (parenthesized_expression "(plVar6[0xb] != 0)" ( (binary_expression "plVar6[0xb] != 0" (subscript_expression "plVar6[0xb]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(plVar6[0xc] != 0)" ( (binary_expression "plVar6[0xc] != 0" (subscript_expression "plVar6[0xc]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))" ( (parenthesized_expression "(local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0))" ( (binary_expression "local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)" (binary_expression "local_3c[0] != *(uint *)(plVar6 + 0xd)" (subscript_expression "local_3c[0]" identifier [ number_literal ]) != (pointer_expression "*(uint *)(plVar6 + 0xd)" * (cast_expression "(uint *)(plVar6 + 0xd)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 0xd)" ( (binary_expression "plVar6 + 0xd" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(plVar6 + 0xd) != 0)" ( (binary_expression "*(uint *)(plVar6 + 0xd) != 0" (pointer_expression "*(uint *)(plVar6 + 0xd)" * (cast_expression "(uint *)(plVar6 + 0xd)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 0xd)" ( (binary_expression "plVar6 + 0xd" identifier + number_literal) )))) != number_literal) ))) )) ))) )) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }" { (expression_statement "FUN_0017c650("../../gold/output.h",0xd5e,"set_info");" (call_expression "FUN_0017c650("../../gold/output.h",0xd5e,"set_info")" identifier (argument_list "("../../gold/output.h",0xd5e,"set_info")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info"" " string_content ") ))) ;) })) (expression_statement "*(uint *)(plVar6 + 0xd) = local_3c[0];" (assignment_expression "*(uint *)(plVar6 + 0xd) = local_3c[0]" (pointer_expression "*(uint *)(plVar6 + 0xd)" * (cast_expression "(uint *)(plVar6 + 0xd)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 0xd)" ( (binary_expression "plVar6 + 0xd" identifier + number_literal) )))) = (subscript_expression "local_3c[0]" identifier [ number_literal ])) ;) (expression_statement "FUN_001f5d50(plVar6,local_7c);" (call_expression "FUN_001f5d50(plVar6,local_7c)" identifier (argument_list "(plVar6,local_7c)" ( identifier , identifier ))) ;) (if_statement "if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }" if (parenthesized_expression "(*param_5 < (long)(uVar10 + lVar4))" ( (binary_expression "*param_5 < (long)(uVar10 + lVar4)" (pointer_expression "*param_5" * identifier) < (cast_expression "(long)(uVar10 + lVar4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(uVar10 + lVar4)" ( (binary_expression "uVar10 + lVar4" identifier + identifier) )))) )) (compound_statement "{\n      *param_5 = uVar10 + lVar4;\n      return;\n    }" { (expression_statement "*param_5 = uVar10 + lVar4;" (assignment_expression "*param_5 = uVar10 + lVar4" (pointer_expression "*param_5" * identifier) = (binary_expression "uVar10 + lVar4" identifier + identifier)) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT) != IDENT) )) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (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 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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT , 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 ") , IDENT ))) ;) })) (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 ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT / (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) << LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT % (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (pointer_expression * IDENT)) & (unary_expression - IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (string_literal " string_content ") , IDENT , IDENT ))) ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (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 ))) , (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 ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + IDENT)) ;) (return_statement return ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_001a9c80(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)\n\n{\n  byte bVar1;\n  int iVar2;\n  char cVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  long lVar9;\n  ulong uVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  uint uVar14;\n  undefined8 uStack_90;\n  int local_7c;\n  uint local_4c;\n  uint local_3c [3];\n  \n  if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }\n  iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);\n  if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }\n  plVar6 = *(long **)(param_1 + 0x248);\n  local_3c[0] = 1;\n  uVar11 = uVar10;\n  if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }\nLAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;\n  uVar14 = local_3c[0];\n  if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }\n  if (local_3c[0] * local_7c != uVar11) {\n                    \n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  lVar4 = *(long *)(param_1 + 0x2e0);\n  if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  lVar9 = param_1 + 0xa0;\n  lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }\n  if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001a9c80(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)" (identifier "FUN_001a9c80") (parameter_list "(long param_1,long *param_2,long param_3,uint param_4,long *param_5,uint param_6)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "long *param_5" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "uint param_6" (type_identifier "uint") (identifier "param_6")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  char cVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  long lVar9;\n  ulong uVar10;\n  ulong uVar11;\n  long lVar12;\n  ulong uVar13;\n  uint uVar14;\n  undefined8 uStack_90;\n  int local_7c;\n  uint local_4c;\n  uint local_3c [3];\n  \n  if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }\n  iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);\n  if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }\n  plVar6 = *(long **)(param_1 + 0x248);\n  local_3c[0] = 1;\n  uVar11 = uVar10;\n  if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }\nLAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;\n  uVar14 = local_3c[0];\n  if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }\n  if (local_3c[0] * local_7c != uVar11) {\n                    \n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }\n  lVar4 = *(long *)(param_1 + 0x2e0);\n  if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }\n  lVar9 = param_1 + 0xa0;\n  lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }\n  if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "long *plVar6;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar6" (* "*") (identifier "plVar6")) (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined8 uStack_90;" (type_identifier "undefined8") (identifier "uStack_90") (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "uint local_3c [3];" (type_identifier "uint") (array_declarator "local_3c [3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]")) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x18" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/parameters.h",0x69,"target");\n  }" ({ "{") (expression_statement "FUN_0017c650("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x69,"target")" (identifier "FUN_0017c650") (argument_list "("../../gold/parameters.h",0x69,"target")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);" (assignment_expression "iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" (identifier "iVar2") (= "=") (pointer_expression "**(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" (* "*") (pointer_expression "*(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" (* "*") (cast_expression "(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x18" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (iVar2 == 0x20) {\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }\n  else {\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0x20)" (( "(") (binary_expression "iVar2 == 0x20" (identifier "iVar2") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    uVar10 = 0x10;\n    local_4c = 4;\n    local_7c = 0x10;\n  }" ({ "{") (expression_statement "uVar10 = 0x10;" (assignment_expression "uVar10 = 0x10" (identifier "uVar10") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "local_4c = 4;" (assignment_expression "local_4c = 4" (identifier "local_4c") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_7c = 0x10;" (assignment_expression "local_7c = 0x10" (identifier "local_7c") (= "=") (number_literal "0x10")) (; ";")) (} "}")) (else_clause "else {\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }" (else "else") (compound_statement "{\n    if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }\n    local_4c = 8;\n    uVar10 = 0x18;\n    local_7c = 0x18;\n  }" ({ "{") (if_statement "if (iVar2 != 0x40) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }" (if "if") (parenthesized_expression "(iVar2 != 0x40)" (( "(") (binary_expression "iVar2 != 0x40" (identifier "iVar2") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections")" (identifier "FUN_0017c650") (argument_list "("../../gold/layout.cc",0x1110,"create_symtab_sections")" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0x1110") (, ",") (string_literal ""create_symtab_sections"" (" """) (string_content "create_symtab_sections") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_4c = 8;" (assignment_expression "local_4c = 8" (identifier "local_4c") (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar10 = 0x18;" (assignment_expression "uVar10 = 0x18" (identifier "uVar10") (= "=") (number_literal "0x18")) (; ";")) (expression_statement "local_7c = 0x18;" (assignment_expression "local_7c = 0x18" (identifier "local_7c") (= "=") (number_literal "0x18")) (; ";")) (} "}")))) (expression_statement "plVar6 = *(long **)(param_1 + 0x248);" (assignment_expression "plVar6 = *(long **)(param_1 + 0x248)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(param_1 + 0x248)" (* "*") (cast_expression "(long **)(param_1 + 0x248)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "local_3c[0] = 1;" (assignment_expression "local_3c[0] = 1" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" (identifier "uVar11") (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (plVar6 != *(long **)(param_1 + 0x250)) {\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }" (if "if") (parenthesized_expression "(plVar6 != *(long **)(param_1 + 0x250))" (( "(") (binary_expression "plVar6 != *(long **)(param_1 + 0x250)" (identifier "plVar6") (!= "!=") (pointer_expression "*(long **)(param_1 + 0x250)" (* "*") (cast_expression "(long **)(param_1 + 0x250)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x250)" (( "(") (binary_expression "param_1 + 0x250" (identifier "param_1") (+ "+") (number_literal "0x250")) () ")"))))) () ")")) (compound_statement "{\n    do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);\n  }" ({ "{") (do_statement "do {\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    } while (*(long **)(param_1 + 0x250) != plVar6);" (do "do") (compound_statement "{\n      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }\n      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;\n      plVar6 = plVar6 + 1;\n    }" ({ "{") (while_statement "while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }" (while "while") (parenthesized_expression "(lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0)" (( "(") (comma_expression "lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0" (assignment_expression "lVar4 = *plVar6" (identifier "lVar4") (= "=") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))) (, ",") (binary_expression "(*(byte *)(lVar4 + 200) & 1) != 0" (parenthesized_expression "(*(byte *)(lVar4 + 200) & 1)" (( "(") (binary_expression "*(byte *)(lVar4 + 200) & 1" (pointer_expression "*(byte *)(lVar4 + 200)" (* "*") (cast_expression "(byte *)(lVar4 + 200)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 200)" (( "(") (binary_expression "lVar4 + 200" (identifier "lVar4") (+ "+") (number_literal "200")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }\n        *(uint *)(lVar4 + 0x80) = local_3c[0];\n        uVar11 = uVar11 + uVar10;\n        local_3c[0] = local_3c[0] + 1;\n        plVar6 = plVar6 + 1;\n        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;\n      }" ({ "{") (if_statement "if (local_3c[0] == 0) {\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }" (if "if") (parenthesized_expression "(local_3c[0] == 0)" (( "(") (binary_expression "local_3c[0] == 0" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");\n        }" ({ "{") (expression_statement "FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");" (call_expression "FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0xd89,"set_symtab_index")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xd89") (, ",") (string_literal ""set_symtab_index"" (" """) (string_content "set_symtab_index") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(lVar4 + 0x80) = local_3c[0];" (assignment_expression "*(uint *)(lVar4 + 0x80) = local_3c[0]" (pointer_expression "*(uint *)(lVar4 + 0x80)" (* "*") (cast_expression "(uint *)(lVar4 + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x80)" (( "(") (binary_expression "lVar4 + 0x80" (identifier "lVar4") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar11 = uVar11 + uVar10;" (assignment_expression "uVar11 = uVar11 + uVar10" (identifier "uVar11") (= "=") (binary_expression "uVar11 + uVar10" (identifier "uVar11") (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "local_3c[0] = local_3c[0] + 1;" (assignment_expression "local_3c[0] = local_3c[0] + 1" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_3c[0] + 1" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "plVar6 = plVar6 + 1;" (assignment_expression "plVar6 = plVar6 + 1" (identifier "plVar6") (= "=") (binary_expression "plVar6 + 1" (identifier "plVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;" (if "if") (parenthesized_expression "(*(long **)(param_1 + 0x250) == plVar6)" (( "(") (binary_expression "*(long **)(param_1 + 0x250) == plVar6" (pointer_expression "*(long **)(param_1 + 0x250)" (* "*") (cast_expression "(long **)(param_1 + 0x250)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x250)" (( "(") (binary_expression "param_1 + 0x250" (identifier "param_1") (+ "+") (number_literal "0x250")) () ")")))) (== "==") (identifier "plVar6")) () ")")) (goto_statement "goto LAB_001a9d4f;" (goto "goto") (statement_identifier "LAB_001a9d4f") (; ";"))) (} "}"))) (expression_statement "*(undefined4 *)(lVar4 + 0x80) = 0xffffffff;" (assignment_expression "*(undefined4 *)(lVar4 + 0x80) = 0xffffffff" (pointer_expression "*(undefined4 *)(lVar4 + 0x80)" (* "*") (cast_expression "(undefined4 *)(lVar4 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x80)" (( "(") (binary_expression "lVar4 + 0x80" (identifier "lVar4") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "plVar6 = plVar6 + 1;" (assignment_expression "plVar6 = plVar6 + 1" (identifier "plVar6") (= "=") (binary_expression "plVar6 + 1" (identifier "plVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(long **)(param_1 + 0x250) != plVar6)" (( "(") (binary_expression "*(long **)(param_1 + 0x250) != plVar6" (pointer_expression "*(long **)(param_1 + 0x250)" (* "*") (cast_expression "(long **)(param_1 + 0x250)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x250)" (( "(") (binary_expression "param_1 + 0x250" (identifier "param_1") (+ "+") (number_literal "0x250")) () ")")))) (!= "!=") (identifier "plVar6")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_001a9d4f:\n  puVar7 = (undefined8 *)*param_2;" (statement_identifier "LAB_001a9d4f") (: ":") (expression_statement "puVar7 = (undefined8 *)*param_2;" (assignment_expression "puVar7 = (undefined8 *)*param_2" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)*param_2" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";"))) (expression_statement "uVar14 = local_3c[0];" (assignment_expression "uVar14 = local_3c[0]" (identifier "uVar14") (= "=") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (puVar7 != (undefined8 *)param_2[1]) {\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined8 *)param_2[1])" (( "(") (binary_expression "puVar7 != (undefined8 *)param_2[1]" (identifier "puVar7") (!= "!=") (cast_expression "(undefined8 *)param_2[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n    do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);\n  }" ({ "{") (do_statement "do {\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    } while ((undefined8 *)param_2[1] != puVar7);" (do "do") (compound_statement "{\n      plVar6 = (long *)*puVar7;\n      puVar7 = puVar7 + 1;\n      uStack_90 = 0x1a9d99;\n      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);\n      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;\n      uVar14 = local_3c[0];\n    }" ({ "{") (expression_statement "plVar6 = (long *)*puVar7;" (assignment_expression "plVar6 = (long *)*puVar7" (identifier "plVar6") (= "=") (cast_expression "(long *)*puVar7" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uStack_90 = 0x1a9d99;" (assignment_expression "uStack_90 = 0x1a9d99" (identifier "uStack_90") (= "=") (number_literal "0x1a9d99")) (; ";")) (expression_statement "local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);" (assignment_expression "local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3)" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3)" (parenthesized_expression "(**(code **)(*plVar6 + 0x198))" (( "(") (pointer_expression "**(code **)(*plVar6 + 0x198)" (* "*") (pointer_expression "*(code **)(*plVar6 + 0x198)" (* "*") (cast_expression "(code **)(*plVar6 + 0x198)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x198)" (( "(") (binary_expression "*plVar6 + 0x198" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x198")) () ")"))))) () ")")) (argument_list "(plVar6,uVar14,uVar11,param_3)" (( "(") (identifier "plVar6") (, ",") (identifier "uVar14") (, ",") (identifier "uVar11") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;" (assignment_expression "uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c" (identifier "uVar11") (= "=") (binary_expression "uVar11 + (local_3c[0] - uVar14) * local_7c" (identifier "uVar11") (+ "+") (binary_expression "(local_3c[0] - uVar14) * local_7c" (parenthesized_expression "(local_3c[0] - uVar14)" (( "(") (binary_expression "local_3c[0] - uVar14" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (- "-") (identifier "uVar14")) () ")")) (* "*") (identifier "local_7c")))) (; ";")) (expression_statement "uVar14 = local_3c[0];" (assignment_expression "uVar14 = local_3c[0]" (identifier "uVar14") (= "=") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined8 *)param_2[1] != puVar7)" (( "(") (binary_expression "(undefined8 *)param_2[1] != puVar7" (cast_expression "(undefined8 *)param_2[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "puVar7")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_3c[0] * local_7c != uVar11) {\n                    \n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }" (if "if") (parenthesized_expression "(local_3c[0] * local_7c != uVar11)" (( "(") (binary_expression "local_3c[0] * local_7c != uVar11" (binary_expression "local_3c[0] * local_7c" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (* "*") (identifier "local_7c")) (!= "!=") (identifier "uVar11")) () ")")) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");\n  }" ({ "{") (expression_statement "FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections")" (identifier "FUN_0017c650") (argument_list "("../../gold/layout.cc",0x1134,"create_symtab_sections")" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0x1134") (, ",") (string_literal ""create_symtab_sections"" (" """) (string_content "create_symtab_sections") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar4 = *(long *)(param_1 + 0x2e0);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x2e0)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(param_1 + 0x2e0)" (* "*") (cast_expression "(long *)(param_1 + 0x2e0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2e0)" (( "(") (binary_expression "param_1 + 0x2e0" (identifier "param_1") (+ "+") (number_literal "0x2e0")) () ")"))))) (; ";")) (if_statement "if (lVar4 == 0) {\n    lVar4 = 0;\n    lVar12 = 0;\n  }\n  else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" (if "if") (parenthesized_expression "(lVar4 == 0)" (( "(") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar4 = 0;\n    lVar12 = 0;\n  }" ({ "{") (expression_statement "lVar4 = 0;" (assignment_expression "lVar4 = 0" (identifier "lVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar12 = 0;" (assignment_expression "lVar12 = 0" (identifier "lVar12") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" (else "else") (compound_statement "{\n    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;\n    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }\n    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;\n    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;\n    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;\n    lVar4 = lVar9 / (long)uVar10;\n    if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }\n  }" ({ "{") (expression_statement "lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;" (assignment_expression "lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6" (identifier "lVar9") (= "=") (binary_expression "*(long *)(lVar4 + 0x38) * (ulong)param_6" (pointer_expression "*(long *)(lVar4 + 0x38)" (* "*") (cast_expression "(long *)(lVar4 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x38)" (( "(") (binary_expression "lVar4 + 0x38" (identifier "lVar4") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (cast_expression "(ulong)param_6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_6")))) (; ";")) (if_statement "if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }" (if "if") (parenthesized_expression "((*(byte *)(lVar4 + 0x20) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(lVar4 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x20) & 4)" (( "(") (binary_expression "*(byte *)(lVar4 + 0x20) & 4" (pointer_expression "*(byte *)(lVar4 + 0x20)" (* "*") (cast_expression "(byte *)(lVar4 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x20)" (( "(") (binary_expression "lVar4 + 0x20" (identifier "lVar4") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/output.h",0xe3,"offset");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_0017c650("../../gold/output.h",0xe3,"offset")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0xe3,"offset")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe3") (, ",") (string_literal ""offset"" (" """) (string_content "offset") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar12 = *(long *)(lVar4 + 0x18) + lVar9;" (assignment_expression "lVar12 = *(long *)(lVar4 + 0x18) + lVar9" (identifier "lVar12") (= "=") (binary_expression "*(long *)(lVar4 + 0x18) + lVar9" (pointer_expression "*(long *)(lVar4 + 0x18)" (* "*") (cast_expression "(long *)(lVar4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x18)" (( "(") (binary_expression "lVar4 + 0x18" (identifier "lVar4") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (identifier "lVar9"))) (; ";")) (if_statement "if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;" (if "if") (parenthesized_expression "((*(byte *)(lVar4 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar4 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar4 + 0x20) & 2" (pointer_expression "*(byte *)(lVar4 + 0x20)" (* "*") (cast_expression "(byte *)(lVar4 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x20)" (( "(") (binary_expression "lVar4 + 0x20" (identifier "lVar4") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001aa2e9;" (goto "goto") (statement_identifier "LAB_001aa2e9") (; ";"))) (expression_statement "lVar9 = *(long *)(lVar4 + 0x10) - lVar9;" (assignment_expression "lVar9 = *(long *)(lVar4 + 0x10) - lVar9" (identifier "lVar9") (= "=") (binary_expression "*(long *)(lVar4 + 0x10) - lVar9" (pointer_expression "*(long *)(lVar4 + 0x10)" (* "*") (cast_expression "(long *)(lVar4 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x10)" (( "(") (binary_expression "lVar4 + 0x10" (identifier "lVar4") (+ "+") (number_literal "0x10")) () ")")))) (- "-") (identifier "lVar9"))) (; ";")) (expression_statement "lVar4 = lVar9 / (long)uVar10;" (assignment_expression "lVar4 = lVar9 / (long)uVar10" (identifier "lVar4") (= "=") (binary_expression "lVar9 / (long)uVar10" (identifier "lVar9") (/ "/") (cast_expression "(long)uVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar10")))) (; ";")) (if_statement "if (lVar9 != local_7c * lVar4) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }" (if "if") (parenthesized_expression "(lVar9 != local_7c * lVar4)" (( "(") (binary_expression "lVar9 != local_7c * lVar4" (identifier "lVar9") (!= "!=") (binary_expression "local_7c * lVar4" (identifier "local_7c") (* "*") (identifier "lVar4"))) () ")")) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections")" (identifier "FUN_0017c650") (argument_list "("../../gold/layout.cc",0x1143,"create_symtab_sections")" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0x1143") (, ",") (string_literal ""create_symtab_sections"" (" """) (string_content "create_symtab_sections") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "lVar9 = param_1 + 0xa0;" (assignment_expression "lVar9 = param_1 + 0xa0" (identifier "lVar9") (= "=") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0"))) (; ";")) (expression_statement "lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);" (assignment_expression "lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9)" (identifier "lVar4") (= "=") (call_expression "FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9)" (identifier "FUN_002733c0") (argument_list "(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9)" (( "(") (identifier "param_3") (, ",") (identifier "uVar11") (, ",") (identifier "lVar12") (, ",") (cast_expression "(ulong)param_6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_6")) (, ",") (identifier "lVar4") (, ",") (identifier "lVar9") () ")")))) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);\n  }" ({ "{") (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);" (call_expression "FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c)" (identifier "FUN_0017c650") (argument_list "("../../gold/parameters.h",0x5c,"options",local_3c)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "local_3c") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x54f9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_0026fab0(lVar9,uStack_90);\n    lVar12 = param_1 + 0x10;\n    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);\n    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);\n    *(long **)(param_1 + 0x2d0) = plVar6;\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    uVar13 = (ulong)local_4c;\n    puVar7[1] = 0;\n    puVar7[6] = uVar13;\n    *puVar7 = &PTR_FUN_00434088;\n    puVar7[5] = 0;\n    puVar7[2] = lVar4;\n    puVar7[3] = 0xffffffffffffffff;\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n    puVar7[7] = "** symtab";\n    FUN_001f9c60(plVar6,puVar7);\n    if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }\n    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);\n    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);\n    puVar7 = (undefined8 *)FUN_002d94a0(0x40);\n    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;\n    *puVar7 = &PTR_FUN_00428978;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0xffffffffffffffff;\n    puVar7[5] = 0;\n    puVar7[6] = 1;\n    puVar7[7] = lVar9;\n    FUN_001f9c60(lVar12,puVar7);\n    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);\n    if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }\n    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;\n    bVar1 = *(byte *)(plVar6 + 4);\n    if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    plVar6[3] = uVar10;\n    *(byte *)(plVar6 + 4) = bVar1 | 4;\n    if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }\n    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }\n    plVar6[9] = lVar12;\n    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(plVar6 + 0xd) = local_3c[0];\n    FUN_001f5d50(plVar6,local_7c);\n    if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }\n  }" ({ "{") (expression_statement "FUN_0026fab0(lVar9,uStack_90);" (call_expression "FUN_0026fab0(lVar9,uStack_90)" (identifier "FUN_0026fab0") (argument_list "(lVar9,uStack_90)" (( "(") (identifier "lVar9") (, ",") (identifier "uStack_90") () ")"))) (; ";")) (expression_statement "lVar12 = param_1 + 0x10;" (assignment_expression "lVar12 = param_1 + 0x10" (identifier "lVar12") (= "=") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);" (assignment_expression "uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0)" (identifier "uVar5") (= "=") (call_expression "FUN_0026e6a0(lVar12,".symtab",0,0)" (identifier "FUN_0026e6a0") (argument_list "(lVar12,".symtab",0,0)" (( "(") (identifier "lVar12") (, ",") (string_literal "".symtab"" (" """) (string_content ".symtab") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);" (assignment_expression "plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0)" (identifier "plVar6") (= "=") (cast_expression "(long *)FUN_001a8f30(param_1,uVar5,2,0,0,0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001a8f30(param_1,uVar5,2,0,0,0)" (identifier "FUN_001a8f30") (argument_list "(param_1,uVar5,2,0,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar5") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "*(long **)(param_1 + 0x2d0) = plVar6;" (assignment_expression "*(long **)(param_1 + 0x2d0) = plVar6" (pointer_expression "*(long **)(param_1 + 0x2d0)" (* "*") (cast_expression "(long **)(param_1 + 0x2d0)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (= "=") (identifier "plVar6")) (; ";")) (expression_statement "puVar7 = (undefined8 *)FUN_002d94a0(0x40);" (assignment_expression "puVar7 = (undefined8 *)FUN_002d94a0(0x40)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)FUN_002d94a0(0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002d94a0(0x40)" (identifier "FUN_002d94a0") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")"))))) (; ";")) (expression_statement "uVar13 = (ulong)local_4c;" (assignment_expression "uVar13 = (ulong)local_4c" (identifier "uVar13") (= "=") (cast_expression "(ulong)local_4c" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_4c"))) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[6] = uVar13;" (assignment_expression "puVar7[6] = uVar13" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*puVar7 = &PTR_FUN_00434088;" (assignment_expression "*puVar7 = &PTR_FUN_00434088" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "&PTR_FUN_00434088" (& "&") (identifier "PTR_FUN_00434088"))) (; ";")) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[2] = lVar4;" (assignment_expression "puVar7[2] = lVar4" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "lVar4")) (; ";")) (expression_statement "puVar7[3] = 0xffffffffffffffff;" (assignment_expression "puVar7[3] = 0xffffffffffffffff" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar7 + 4)" (* "*") (cast_expression "(byte *)(puVar7 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar7 + 4) & 0xe0 | 10" (binary_expression "*(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" (* "*") (cast_expression "(byte *)(puVar7 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar7[7] = "** symtab";" (assignment_expression "puVar7[7] = "** symtab"" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (string_literal ""** symtab"" (" """) (string_content "** symtab") (" """))) (; ";")) (expression_statement "FUN_001f9c60(plVar6,puVar7);" (call_expression "FUN_001f9c60(plVar6,puVar7)" (identifier "FUN_001f9c60") (argument_list "(plVar6,puVar7)" (( "(") (identifier "plVar6") (, ",") (identifier "puVar7") () ")"))) (; ";")) (if_statement "if (0xfeff < param_4) {\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }" (if "if") (parenthesized_expression "(0xfeff < param_4)" (( "(") (binary_expression "0xfeff < param_4" (number_literal "0xfeff") (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);\n      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);\n      puVar7 = (undefined8 *)FUN_002d94a0(0x50);\n      puVar7[1] = 0;\n      puVar7[6] = 4;\n      puVar7[5] = 0;\n      puVar7[3] = 0xffffffffffffffff;\n      puVar7[7] = 0;\n      puVar7[8] = 0;\n      puVar7[9] = 0;\n      *(undefined8 **)(param_1 + 0x2d8) = puVar7;\n      puVar7[2] = lVar4 / (long)uVar10 << 2;\n      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;\n      *puVar7 = &PTR_FUN_00428b28;\n      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);\n      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;\n      *(long **)(lVar8 + 0x48) = plVar6;\n      *(undefined8 *)(lVar8 + 0x30) = 4;\n      FUN_001f5d50(lVar8,4);\n      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;\n      *(undefined1 *)(param_1 + 0x36e) = 1;\n    }" ({ "{") (expression_statement "uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);" (assignment_expression "uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0)" (identifier "uVar5") (= "=") (call_expression "FUN_0026e6a0(lVar12,".symtab_shndx",0,0)" (identifier "FUN_0026e6a0") (argument_list "(lVar12,".symtab_shndx",0,0)" (( "(") (identifier "lVar12") (, ",") (string_literal "".symtab_shndx"" (" """) (string_content ".symtab_shndx") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);" (assignment_expression "lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0)" (identifier "lVar8") (= "=") (call_expression "FUN_001a8f30(param_1,uVar5,0x12,0,0,0)" (identifier "FUN_001a8f30") (argument_list "(param_1,uVar5,0x12,0,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar5") (, ",") (number_literal "0x12") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar7 = (undefined8 *)FUN_002d94a0(0x50);" (assignment_expression "puVar7 = (undefined8 *)FUN_002d94a0(0x50)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)FUN_002d94a0(0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002d94a0(0x50)" (identifier "FUN_002d94a0") (argument_list "(0x50)" (( "(") (number_literal "0x50") () ")"))))) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[6] = 4;" (assignment_expression "puVar7[6] = 4" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[3] = 0xffffffffffffffff;" (assignment_expression "puVar7[3] = 0xffffffffffffffff" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" (identifier "puVar7") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 **)(param_1 + 0x2d8) = puVar7;" (assignment_expression "*(undefined8 **)(param_1 + 0x2d8) = puVar7" (pointer_expression "*(undefined8 **)(param_1 + 0x2d8)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x2d8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x2d8)" (( "(") (binary_expression "param_1 + 0x2d8" (identifier "param_1") (+ "+") (number_literal "0x2d8")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "puVar7[2] = lVar4 / (long)uVar10 << 2;" (assignment_expression "puVar7[2] = lVar4 / (long)uVar10 << 2" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "lVar4 / (long)uVar10 << 2" (binary_expression "lVar4 / (long)uVar10" (identifier "lVar4") (/ "/") (cast_expression "(long)uVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar10"))) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar7 + 4)" (* "*") (cast_expression "(byte *)(puVar7 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar7 + 4) & 0xe0 | 10" (binary_expression "*(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" (* "*") (cast_expression "(byte *)(puVar7 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "*puVar7 = &PTR_FUN_00428b28;" (assignment_expression "*puVar7 = &PTR_FUN_00428b28" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "&PTR_FUN_00428b28" (& "&") (identifier "PTR_FUN_00428b28"))) (; ";")) (expression_statement "FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);" (call_expression "FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10)" (identifier "FUN_001f9c60") (argument_list "(lVar8,puVar7,lVar4 % (long)uVar10)" (( "(") (identifier "lVar8") (, ",") (identifier "puVar7") (, ",") (binary_expression "lVar4 % (long)uVar10" (identifier "lVar4") (% "%") (cast_expression "(long)uVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar10"))) () ")"))) (; ";")) (if_statement "if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;" (if "if") (parenthesized_expression "(((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0))" (( "(") (binary_expression "((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||\n         ((*(byte *)(lVar8 + 200) & 8) != 0)" (parenthesized_expression "((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0))" (( "(") (binary_expression "(*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)" (parenthesized_expression "(*(int *)(lVar8 + 0x50) != 0)" (( "(") (binary_expression "*(int *)(lVar8 + 0x50) != 0" (pointer_expression "*(int *)(lVar8 + 0x50)" (* "*") (cast_expression "(int *)(lVar8 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x50)" (( "(") (binary_expression "lVar8 + 0x50" (identifier "lVar8") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(lVar8 + 200) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(lVar8 + 200) & 4) != 0" (parenthesized_expression "(*(byte *)(lVar8 + 200) & 4)" (( "(") (binary_expression "*(byte *)(lVar8 + 200) & 4" (pointer_expression "*(byte *)(lVar8 + 200)" (* "*") (cast_expression "(byte *)(lVar8 + 200)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 200)" (( "(") (binary_expression "lVar8 + 200" (identifier "lVar8") (+ "+") (number_literal "200")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(lVar8 + 200) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(lVar8 + 200) & 8) != 0" (parenthesized_expression "(*(byte *)(lVar8 + 200) & 8)" (( "(") (binary_expression "*(byte *)(lVar8 + 200) & 8" (pointer_expression "*(byte *)(lVar8 + 200)" (* "*") (cast_expression "(byte *)(lVar8 + 200)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 200)" (( "(") (binary_expression "lVar8 + 200" (identifier "lVar8") (+ "+") (number_literal "200")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_001aa349;" (goto "goto") (statement_identifier "LAB_001aa349") (; ";"))) (expression_statement "*(long **)(lVar8 + 0x48) = plVar6;" (assignment_expression "*(long **)(lVar8 + 0x48) = plVar6" (pointer_expression "*(long **)(lVar8 + 0x48)" (* "*") (cast_expression "(long **)(lVar8 + 0x48)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar8 + 0x48)" (( "(") (binary_expression "lVar8 + 0x48" (identifier "lVar8") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "plVar6")) (; ";")) (expression_statement "*(undefined8 *)(lVar8 + 0x30) = 4;" (assignment_expression "*(undefined8 *)(lVar8 + 0x30) = 4" (pointer_expression "*(undefined8 *)(lVar8 + 0x30)" (* "*") (cast_expression "(undefined8 *)(lVar8 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x30)" (( "(") (binary_expression "lVar8 + 0x30" (identifier "lVar8") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "FUN_001f5d50(lVar8,4);" (call_expression "FUN_001f5d50(lVar8,4)" (identifier "FUN_001f5d50") (argument_list "(lVar8,4)" (( "(") (identifier "lVar8") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "*(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;" (assignment_expression "*(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10" (pointer_expression "*(byte *)(lVar8 + 200)" (* "*") (cast_expression "(byte *)(lVar8 + 200)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 200)" (( "(") (binary_expression "lVar8 + 200" (identifier "lVar8") (+ "+") (number_literal "200")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar8 + 200) | 0x10" (pointer_expression "*(byte *)(lVar8 + 200)" (* "*") (cast_expression "(byte *)(lVar8 + 200)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 200)" (( "(") (binary_expression "lVar8 + 200" (identifier "lVar8") (+ "+") (number_literal "200")) () ")")))) (| "|") (number_literal "0x10"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x36e) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x36e) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x36e)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x36e)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x36e)" (( "(") (binary_expression "param_1 + 0x36e" (identifier "param_1") (+ "+") (number_literal "0x36e")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);" (assignment_expression "uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0)" (identifier "uVar5") (= "=") (call_expression "FUN_0026e6a0(lVar12,".strtab",0,0)" (identifier "FUN_0026e6a0") (argument_list "(lVar12,".strtab",0,0)" (( "(") (identifier "lVar12") (, ",") (string_literal "".strtab"" (" """) (string_content ".strtab") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);" (assignment_expression "lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0)" (identifier "lVar12") (= "=") (call_expression "FUN_001a8f30(param_1,uVar5,3,0,0,0)" (identifier "FUN_001a8f30") (argument_list "(param_1,uVar5,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar5") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar7 = (undefined8 *)FUN_002d94a0(0x40);" (assignment_expression "puVar7 = (undefined8 *)FUN_002d94a0(0x40)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)FUN_002d94a0(0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002d94a0(0x40)" (identifier "FUN_002d94a0") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")"))))) (; ";")) (expression_statement "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;" (assignment_expression "*(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" (* "*") (cast_expression "(byte *)(puVar7 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar7 + 4) & 0xe0" (pointer_expression "*(byte *)(puVar7 + 4)" (* "*") (cast_expression "(byte *)(puVar7 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "*puVar7 = &PTR_FUN_00428978;" (assignment_expression "*puVar7 = &PTR_FUN_00428978" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "&PTR_FUN_00428978" (& "&") (identifier "PTR_FUN_00428978"))) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[3] = 0xffffffffffffffff;" (assignment_expression "puVar7[3] = 0xffffffffffffffff" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[6] = 1;" (assignment_expression "puVar7[6] = 1" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar7[7] = lVar9;" (assignment_expression "puVar7[7] = lVar9" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "lVar9")) (; ";")) (expression_statement "FUN_001f9c60(lVar12,puVar7);" (call_expression "FUN_001f9c60(lVar12,puVar7)" (identifier "FUN_001f9c60") (argument_list "(lVar12,puVar7)" (( "(") (identifier "lVar12") (, ",") (identifier "puVar7") () ")"))) (; ";")) (expression_statement "cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);" (assignment_expression "cVar3 = FUN_002379c0(PTR_DAT_0043e6b0)" (identifier "cVar3") (= "=") (call_expression "FUN_002379c0(PTR_DAT_0043e6b0)" (identifier "FUN_002379c0") (argument_list "(PTR_DAT_0043e6b0)" (( "(") (identifier "PTR_DAT_0043e6b0") () ")")))) (; ";")) (if_statement "if (cVar3 == '\0') {\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }\n    else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;\n    }" ({ "{") (expression_statement "uVar10 = (uVar13 - 1) + *param_5 & -uVar13;" (assignment_expression "uVar10 = (uVar13 - 1) + *param_5 & -uVar13" (identifier "uVar10") (= "=") (binary_expression "(uVar13 - 1) + *param_5 & -uVar13" (binary_expression "(uVar13 - 1) + *param_5" (parenthesized_expression "(uVar13 - 1)" (( "(") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) () ")")) (+ "+") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (& "&") (unary_expression "-uVar13" (- "-") (identifier "uVar13")))) (; ";")) (} "}")) (else_clause "else {\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }" (else "else") (compound_statement "{\n      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);\n      if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }\n    }" ({ "{") (expression_statement "uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);" (assignment_expression "uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5)" (identifier "uVar10") (= "=") (call_expression "FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5)" (identifier "FUN_001a4800") (argument_list "(param_1 + 0x468,lVar4,uVar13,*param_5)" (( "(") (binary_expression "param_1 + 0x468" (identifier "param_1") (+ "+") (number_literal "0x468")) (, ",") (identifier "lVar4") (, ",") (identifier "uVar13") (, ",") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")")))) (; ";")) (if_statement "if (lVar4 == -1) {\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" (if "if") (parenthesized_expression "(lVar4 == -1)" (( "(") (binary_expression "lVar4 == -1" (identifier "lVar4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");\n        FUN_00178280(uVar5);\nLAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" ({ "{") (expression_statement "uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");" (assignment_expression "uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full")" (identifier "uVar5") (= "=") (call_expression "gettext("out of patch space for symbol table; relink with --incremental-full")" (identifier "gettext") (argument_list "("out of patch space for symbol table; relink with --incremental-full")" (( "(") (string_literal ""out of patch space for symbol table; relink with --incremental-full"" (" """) (string_content "out of patch space for symbol table; relink with --incremental-full") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00178280(uVar5);" (call_expression "FUN_00178280(uVar5)" (identifier "FUN_00178280") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (labeled_statement "LAB_001aa2e9:\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (statement_identifier "LAB_001aa2e9") (: ":") (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }" (if "if") (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" (( "(") (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (( "(") (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" (identifier "PTR_DAT_0043e6b0") ([ "[") (number_literal "0x24") (] "]")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);\n      }" ({ "{") (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4)" (identifier "FUN_00178100") (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",\n                     uVar10,lVar4)" (( "(") (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" (* "*") (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0043e6b0"))) (, ",") (string_literal ""create_symtab_sections: %08lx %08lx .symtab"" (" """) (string_content "create_symtab_sections: %08lx %08lx .symtab") (" """)) (, ",") (identifier "uVar10") (, ",") (identifier "lVar4") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "*(ulong *)(param_3 + 0x10) = uVar11 + uVar10;" (assignment_expression "*(ulong *)(param_3 + 0x10) = uVar11 + uVar10" (pointer_expression "*(ulong *)(param_3 + 0x10)" (* "*") (cast_expression "(ulong *)(param_3 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "uVar11 + uVar10" (identifier "uVar11") (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "bVar1 = *(byte *)(plVar6 + 4);" (assignment_expression "bVar1 = *(byte *)(plVar6 + 4)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(plVar6 + 4)" (* "*") (cast_expression "(byte *)(plVar6 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 4)" (( "(") (binary_expression "plVar6 + 4" (identifier "plVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 4) != 0) {\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x14b") (, ",") (string_literal ""set_file_offset"" (" """) (string_content "set_file_offset") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "plVar6[3] = uVar10;" (assignment_expression "plVar6[3] = uVar10" (subscript_expression "plVar6[3]" (identifier "plVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(byte *)(plVar6 + 4) = bVar1 | 4;" (assignment_expression "*(byte *)(plVar6 + 4) = bVar1 | 4" (pointer_expression "*(byte *)(plVar6 + 4)" (* "*") (cast_expression "(byte *)(plVar6 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 4)" (( "(") (binary_expression "plVar6 + 4" (identifier "plVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "bVar1 | 4" (identifier "bVar1") (| "|") (number_literal "4"))) (; ";")) (if_statement "if (((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }" (if "if") (parenthesized_expression "(((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0))" (( "(") (binary_expression "((bVar1 & 2) == 0) &&\n       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)" (parenthesized_expression "((bVar1 & 2) == 0)" (( "(") (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)" (( "(") (comma_expression "(**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0" (call_expression "(**(code **)(*plVar6 + 0x70))(plVar6)" (parenthesized_expression "(**(code **)(*plVar6 + 0x70))" (( "(") (pointer_expression "**(code **)(*plVar6 + 0x70)" (* "*") (pointer_expression "*(code **)(*plVar6 + 0x70)" (* "*") (cast_expression "(code **)(*plVar6 + 0x70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x70)" (( "(") (binary_expression "*plVar6 + 0x70" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x70")) () ")"))))) () ")")) (argument_list "(plVar6)" (( "(") (identifier "plVar6") () ")"))) (, ",") (binary_expression "(*(byte *)(plVar6 + 4) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar6 + 4) & 2)" (( "(") (binary_expression "*(byte *)(plVar6 + 4) & 2" (pointer_expression "*(byte *)(plVar6 + 4)" (* "*") (cast_expression "(byte *)(plVar6 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 4)" (( "(") (binary_expression "plVar6 + 4" (identifier "plVar6") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x163") (, ",") (string_literal ""finalize_data_size"" (" """) (string_content "finalize_data_size") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }" (if "if") (parenthesized_expression "((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0))" (( "(") (binary_expression "(((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||\n       ((*(byte *)(plVar6 + 0x19) & 8) != 0)" (parenthesized_expression "(((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0))" (( "(") (binary_expression "((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)" (parenthesized_expression "((int)plVar6[10] != 0)" (( "(") (binary_expression "(int)plVar6[10] != 0" (cast_expression "(int)plVar6[10]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar6[10]" (identifier "plVar6") ([ "[") (number_literal "10") (] "]"))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(plVar6 + 0x19) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(plVar6 + 0x19) & 4) != 0" (parenthesized_expression "(*(byte *)(plVar6 + 0x19) & 4)" (( "(") (binary_expression "*(byte *)(plVar6 + 0x19) & 4" (pointer_expression "*(byte *)(plVar6 + 0x19)" (* "*") (cast_expression "(byte *)(plVar6 + 0x19)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 0x19)" (( "(") (binary_expression "plVar6 + 0x19" (identifier "plVar6") (+ "+") (number_literal "0x19")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(plVar6 + 0x19) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(plVar6 + 0x19) & 8) != 0" (parenthesized_expression "(*(byte *)(plVar6 + 0x19) & 8)" (( "(") (binary_expression "*(byte *)(plVar6 + 0x19) & 8" (pointer_expression "*(byte *)(plVar6 + 0x19)" (* "*") (cast_expression "(byte *)(plVar6 + 0x19)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 0x19)" (( "(") (binary_expression "plVar6 + 0x19" (identifier "plVar6") (+ "+") (number_literal "0x19")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");\n    }" ({ "{") (labeled_statement "LAB_001aa349:\n                    \n      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");" (statement_identifier "LAB_001aa349") (: ":") (expression_statement "FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_0017c650("../../gold/output.h",0xd07,"set_link_section")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0xd07,"set_link_section")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xd07") (, ",") (string_literal ""set_link_section"" (" """) (string_content "set_link_section") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "plVar6[9] = lVar12;" (assignment_expression "plVar6[9] = lVar12" (subscript_expression "plVar6[9]" (identifier "plVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "lVar12")) (; ";")) (if_statement "if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }" (if "if") (parenthesized_expression "(((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0))))" (( "(") (binary_expression "((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||\n       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))" (parenthesized_expression "((plVar6[0xb] != 0) || (plVar6[0xc] != 0))" (( "(") (binary_expression "(plVar6[0xb] != 0) || (plVar6[0xc] != 0)" (parenthesized_expression "(plVar6[0xb] != 0)" (( "(") (binary_expression "plVar6[0xb] != 0" (subscript_expression "plVar6[0xb]" (identifier "plVar6") ([ "[") (number_literal "0xb") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(plVar6[0xc] != 0)" (( "(") (binary_expression "plVar6[0xc] != 0" (subscript_expression "plVar6[0xc]" (identifier "plVar6") ([ "[") (number_literal "0xc") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))" (( "(") (parenthesized_expression "(local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0))" (( "(") (binary_expression "local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)" (binary_expression "local_3c[0] != *(uint *)(plVar6 + 0xd)" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (pointer_expression "*(uint *)(plVar6 + 0xd)" (* "*") (cast_expression "(uint *)(plVar6 + 0xd)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 0xd)" (( "(") (binary_expression "plVar6 + 0xd" (identifier "plVar6") (+ "+") (number_literal "0xd")) () ")"))))) (&& "&&") (parenthesized_expression "(*(uint *)(plVar6 + 0xd) != 0)" (( "(") (binary_expression "*(uint *)(plVar6 + 0xd) != 0" (pointer_expression "*(uint *)(plVar6 + 0xd)" (* "*") (cast_expression "(uint *)(plVar6 + 0xd)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 0xd)" (( "(") (binary_expression "plVar6 + 0xd" (identifier "plVar6") (+ "+") (number_literal "0xd")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/output.h",0xd5e,"set_info");" (call_expression "FUN_0017c650("../../gold/output.h",0xd5e,"set_info")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0xd5e,"set_info")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xd5e") (, ",") (string_literal ""set_info"" (" """) (string_content "set_info") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(plVar6 + 0xd) = local_3c[0];" (assignment_expression "*(uint *)(plVar6 + 0xd) = local_3c[0]" (pointer_expression "*(uint *)(plVar6 + 0xd)" (* "*") (cast_expression "(uint *)(plVar6 + 0xd)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 0xd)" (( "(") (binary_expression "plVar6 + 0xd" (identifier "plVar6") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "FUN_001f5d50(plVar6,local_7c);" (call_expression "FUN_001f5d50(plVar6,local_7c)" (identifier "FUN_001f5d50") (argument_list "(plVar6,local_7c)" (( "(") (identifier "plVar6") (, ",") (identifier "local_7c") () ")"))) (; ";")) (if_statement "if (*param_5 < (long)(uVar10 + lVar4)) {\n      *param_5 = uVar10 + lVar4;\n      return;\n    }" (if "if") (parenthesized_expression "(*param_5 < (long)(uVar10 + lVar4))" (( "(") (binary_expression "*param_5 < (long)(uVar10 + lVar4)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (< "<") (cast_expression "(long)(uVar10 + lVar4)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(uVar10 + lVar4)" (( "(") (binary_expression "uVar10 + lVar4" (identifier "uVar10") (+ "+") (identifier "lVar4")) () ")")))) () ")")) (compound_statement "{\n      *param_5 = uVar10 + lVar4;\n      return;\n    }" ({ "{") (expression_statement "*param_5 = uVar10 + lVar4;" (assignment_expression "*param_5 = uVar10 + lVar4" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "uVar10 + lVar4" (identifier "uVar10") (+ "+") (identifier "lVar4"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void create_symtab_sections(Layout * this, Input_objects *
   input_objects, Symbol_table * symtab, uint shnum, off_t * poff, uint local_dynamic_count) */

void __thiscall
var_3::type_1::function_1
          (type_1 *this,type_2 *input_objects,type_3 *symtab,type_4 var_25,type_5 *poff,
          type_4 param_5)

{
  type_6 *this_00;
  type_7 *puVar1;
  type_6 *pool;
  type_8 var_14;
  int var_2;
  type_9 *pRVar4;
  type_4 var_11;
  bool bVar6;
  type_10 var_6;
  size_t var_16;
  char *pcVar8;
  type_11 *var_13;
  type_12 *pOVar10;
  type_11 *pOVar11;
  type_13 *posd;
  long var_15;
  type_10 var_10;
  type_14 var_9;
  type_14 var_8;
  type_5 var_29;
  type_14 var_36;
  int var_12;
  type_4 local_4c;
  type_4 var_7;
  
  if (parameters->target_ == (type_15 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/parameters.h",0x69,"target");
  }
  var_2 = **(int **)(parameters->target_ + 8);
  if (var_2 == 0x20) {
    var_9 = 0x10;
    local_4c = 4;
    var_12 = 0x10;
  }
  else {
    if (var_2 != 0x40) {
                    /* WARNING: Subroutine does not return */
      var_1("../../gold/layout.cc",0x1110,"create_symtab_sections");
    }
    local_4c = 8;
    var_9 = 0x18;
    var_12 = 0x18;
  }
  var_6 = (this->section_list_).
            super__Vector_base<var_3::type_11*,var_4::allocator<var_3::type_11*>var_5>.
            _M_impl._M_start;
  var_7 = 1;
  var_8 = var_9;
  if (var_6 !=
      (this->section_list_).
      super__Vector_base<var_3::type_11*,var_4::allocator<var_3::type_11*>var_5>._M_impl.
      _M_finish) {
    do {
      while (var_13 = *var_6, (var_13->field_0xc8 & 1) == 0) {
        var_13->symtab_index_ = 0xffffffff;
        var_6 = var_6 + 1;
        if ((this->section_list_).
            super__Vector_base<var_3::type_11*,var_4::allocator<var_3::type_11*>var_5>.
            _M_impl._M_finish == var_6) goto LAB_001a9d4f;
      }
      if (var_7 == 0) {
                    /* WARNING: Subroutine does not return */
        var_1("../../gold/output.h",0xd89,"set_symtab_index");
      }
      var_13->symtab_index_ = var_7;
      var_8 = var_8 + var_9;
      var_7 = var_7 + 1;
      var_6 = var_6 + 1;
    } while ((this->section_list_).
             super__Vector_base<var_3::type_11*,var_4::allocator<var_3::type_11*>var_5>.
             _M_impl._M_finish != var_6);
  }
LAB_001a9d4f:
  var_10 = (input_objects->relobj_list_).
             super__Vector_base<var_3::type_9*,var_4::allocator<var_3::type_9*>var_5>._M_impl._M_start;
  var_11 = var_7;
  if (var_10 !=
      (input_objects->relobj_list_).
      super__Vector_base<var_3::type_9*,var_4::allocator<var_3::type_9*>var_5>._M_impl._M_finish) {
    do {
      pRVar4 = *var_10;
      var_10 = var_10 + 1;
      var_7 = (*(pRVar4->super_Object)._vptr_Object[0x33])(pRVar4,(type_14)var_11,var_8,symtab);
      var_8 = var_8 + (var_7 - var_11) * var_12;
      var_11 = var_7;
    } while ((input_objects->relobj_list_).
             super__Vector_base<var_3::type_9*,var_4::allocator<var_3::type_9*>var_5>._M_impl._M_finish !=
             var_10);
  }
  if (var_7 * var_12 != var_8) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/layout.cc",0x1134,"create_symtab_sections");
  }
  var_13 = this->dynsym_section_;
  if (var_13 == (type_11 *)0x0) {
    var_16 = 0;
    var_29 = 0;
  }
  else {
    var_14 = (var_13->super_Output_data).field_0x20;
    var_15 = var_13->entsize_ * (type_14)param_5;
    if ((var_14 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
      var_1("../../gold/output.h",0xe3,"offset");
    }
    var_29 = (var_13->super_Output_data).offset_ + var_15;
    if ((var_14 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
      var_1("../../gold/output.h",0xcf,"data_size");
    }
    var_15 = (var_13->super_Output_data).data_size_ - var_15;
    var_16 = var_15 / (long)var_9;
    if (var_15 != (long)var_12 * var_16) {
                    /* WARNING: Subroutine does not return */
      var_1("../../gold/layout.cc",0x1143,"create_symtab_sections");
    }
  }
  pool = &this->sympool_;
  var_29 = type_3::var_17(symtab,var_8,var_29,(type_14)param_5,var_16,pool,&var_7);
  if (parameters->options_ == (type_16 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->strip_all_).value == false) {
    var_18<var_19>::var_20(pool);
    this_00 = &this->namepool_;
    pcVar8 = var_18<var_19>::var_21(this_00,".symtab",false,(type_17 *)0x0);
    var_13 = var_22(this,pcVar8,2,0,ORDER_INVALID,false);
    this->symtab_section_ = var_13;
    pOVar10 = (type_12 *)var_23(0x40);
    var_36 = (type_14)local_4c;
    var_14 = (pOVar10->super_Output_data).field_0x20;
    (pOVar10->super_Output_data).address_ = 0;
    pOVar10->addralign_ = var_36;
    (pOVar10->super_Output_data)._vptr_Output_data =
         (type_18 **)&PTR__Output_data_fixed_space_00434088;
    pOVar10->output_section_ = (type_11 *)0x0;
    (pOVar10->super_Output_data).data_size_ = var_29;
    (pOVar10->super_Output_data).offset_ = -1;
    (pOVar10->super_Output_data).field_0x20 = var_14 & 0xe0 | 10;
    pOVar10[1].super_Output_data._vptr_Output_data = (type_18 **)"** symtab";
    Output_section::var_24(var_13,pOVar10);
    if (0xfeff < var_25) {
      pcVar8 = var_18<var_19>::var_21(this_00,".symtab_shndx",false,(type_17 *)0x0);
      pOVar11 = var_22(this,pcVar8,0x12,0,ORDER_INVALID,false);
      posd = (type_13 *)var_23(0x50);
      (posd->super_Output_section_data).super_Output_data.address_ = 0;
      (posd->super_Output_section_data).addralign_ = 4;
      (posd->super_Output_section_data).output_section_ = (type_11 *)0x0;
      (posd->super_Output_section_data).super_Output_data.offset_ = -1;
      (posd->entries_).
      super__Vector_base<std::var_26<var_27,var_28>,var_4::allocator<std::var_26<var_27,var_28>var_5>var_5>
      ._M_impl._M_start = (type_10)0x0;
      (posd->entries_).
      super__Vector_base<std::var_26<var_27,var_28>,var_4::allocator<std::var_26<var_27,var_28>var_5>var_5>
      ._M_impl._M_finish = (type_10)0x0;
      (posd->entries_).
      super__Vector_base<std::var_26<var_27,var_28>,var_4::allocator<std::var_26<var_27,var_28>var_5>var_5>
      ._M_impl._M_end_of_storage = (type_10)0x0;
      this->symtab_xindex_ = posd;
      (posd->super_Output_section_data).super_Output_data.data_size_ = var_29 / (long)var_9 << 2;
      (posd->super_Output_section_data).super_Output_data.field_0x20 =
           (posd->super_Output_section_data).super_Output_data.field_0x20 & 0xe0 | 10;
      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =
           (type_18 **)&PTR__Output_symtab_xindex_00428b28;
      Output_section::var_24(pOVar11,(type_12 *)posd);
      if (((pOVar11->link_ != 0) || ((pOVar11->field_0xc8 & 4) != 0)) ||
         ((pOVar11->field_0xc8 & 8) != 0)) goto LAB_001aa349;
      pOVar11->link_section_ = &var_13->super_Output_data;
      pOVar11->addralign_ = 4;
      Output_section::var_30(pOVar11,4);
      pOVar11->field_0xc8 = pOVar11->field_0xc8 | 0x10;
      this->any_postprocessing_sections_ = true;
    }
    pcVar8 = var_18<var_19>::var_21(this_00,".strtab",false,(type_17 *)0x0);
    pOVar11 = var_22(this,pcVar8,3,0,ORDER_INVALID,false);
    pOVar10 = (type_12 *)var_23(0x40);
    puVar1 = &(pOVar10->super_Output_data).field_0x20;
    *puVar1 = *puVar1 & 0xe0;
    (pOVar10->super_Output_data)._vptr_Output_data =
         (type_18 **)&PTR__Output_data_strtab_00428978;
    (pOVar10->super_Output_data).address_ = 0;
    (pOVar10->super_Output_data).data_size_ = 0;
    (pOVar10->super_Output_data).offset_ = -1;
    pOVar10->output_section_ = (type_11 *)0x0;
    pOVar10->addralign_ = 1;
    pOVar10[1].super_Output_data._vptr_Output_data = (type_18 **)pool;
    Output_section::var_24(pOVar11,pOVar10);
    bVar6 = Parameters::var_31(parameters);
    if (bVar6) {
      var_9 = Free_list::var_32(&this->free_list_,var_29,var_36,*poff);
      if (var_29 == -1) {
        pcVar8 = (char *)var_33(
                                "out of patch space for symbol table; relink with --incremental-full"
                                );
                    /* WARNING: Subroutine does not return */
        var_34(pcVar8);
      }
      if ((parameters->options_ != (type_16 *)0x0) && ((parameters->debug_ & 0x10) != 0)) {
        Errors::var_35(parameters->errors_,"create_symtab_sections: %08lx %08lx .symtab",var_9,
                      var_29);
      }
    }
    else {
      var_9 = (var_36 - 1) + *poff & -var_36;
    }
    symtab->offset_ = var_8 + var_9;
    var_14 = (var_13->super_Output_data).field_0x20;
    if ((var_14 & 4) != 0) {
                    /* WARNING: Subroutine does not return */
      var_1("../../gold/output.h",0x14b,"set_file_offset");
    }
    (var_13->super_Output_data).offset_ = var_9;
    (var_13->super_Output_data).field_0x20 = var_14 | 4;
    if (((var_14 & 2) == 0) &&
       ((*(var_13->super_Output_data)._vptr_Output_data[0xe])(var_13),
       ((var_13->super_Output_data).field_0x20 & 2) == 0)) {
                    /* WARNING: Subroutine does not return */
      var_1("../../gold/output.h",0x163,"finalize_data_size");
    }
    if (((var_13->link_ != 0) || ((var_13->field_0xc8 & 4) != 0)) || ((var_13->field_0xc8 & 8) != 0)
       ) {
LAB_001aa349:
                    /* WARNING: Subroutine does not return */
      var_1("../../gold/output.h",0xd07,"set_link_section");
    }
    var_13->link_section_ = &pOVar11->super_Output_data;
    if (((var_13->info_section_ != (type_11 *)0x0) || (var_13->info_symndx_ != (type_19 *)0x0)
        ) || ((var_7 != var_13->info_ && (var_13->info_ != 0)))) {
                    /* WARNING: Subroutine does not return */
      var_1("../../gold/output.h",0xd5e,"set_info");
    }
    var_13->info_ = var_7;
    Output_section::var_30(var_13,(long)var_12);
    if (*poff < (long)(var_9 + var_29)) {
      *poff = var_9 + var_29;
      return;
    }
  }
  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: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) 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: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_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))))))) consequence: (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (identifier))) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (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: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (identifier) (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)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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 (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (string_literal (string_content)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) 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: (pointer_expression argument: (identifier))) right: (unary_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (string_literal (string_content)) (identifier) (identifier))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (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: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (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: (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)))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) (return_statement))))) (return_statement))))

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

{
  byte bVar1;
  int iVar2;
  char cVar3;
  long lVar4;
  undefined8 uVar5;
  long *plVar6;
  undefined8 *puVar7;
  long lVar8;
  long lVar9;
  ulong uVar10;
  ulong uVar11;
  long lVar12;
  ulong uVar13;
  uint uVar14;
  undefined8 uStack_90;
  int local_7c;
  uint local_4c;
  uint local_3c [3];
  
  if (*(long *)(PTR_DAT_0043e6b0 + 0x18) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x69,"target");
  }
  iVar2 = **(int **)(*(long *)(PTR_DAT_0043e6b0 + 0x18) + 8);
  if (iVar2 == 0x20) {
    uVar10 = 0x10;
    local_4c = 4;
    local_7c = 0x10;
  }
  else {
    if (iVar2 != 0x40) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/layout.cc",0x1110,"create_symtab_sections");
    }
    local_4c = 8;
    uVar10 = 0x18;
    local_7c = 0x18;
  }
  plVar6 = *(long **)(param_1 + 0x248);
  local_3c[0] = 1;
  uVar11 = uVar10;
  if (plVar6 != *(long **)(param_1 + 0x250)) {
    do {
      while (lVar4 = *plVar6, (*(byte *)(lVar4 + 200) & 1) != 0) {
        if (local_3c[0] == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/output.h",0xd89,"set_symtab_index");
        }
        *(uint *)(lVar4 + 0x80) = local_3c[0];
        uVar11 = uVar11 + uVar10;
        local_3c[0] = local_3c[0] + 1;
        plVar6 = plVar6 + 1;
        if (*(long **)(param_1 + 0x250) == plVar6) goto LAB_001a9d4f;
      }
      *(undefined4 *)(lVar4 + 0x80) = 0xffffffff;
      plVar6 = plVar6 + 1;
    } while (*(long **)(param_1 + 0x250) != plVar6);
  }
LAB_001a9d4f:
  puVar7 = (undefined8 *)*param_2;
  uVar14 = local_3c[0];
  if (puVar7 != (undefined8 *)param_2[1]) {
    do {
      plVar6 = (long *)*puVar7;
      puVar7 = puVar7 + 1;
      uStack_90 = 0x1a9d99;
      local_3c[0] = (**(code **)(*plVar6 + 0x198))(plVar6,uVar14,uVar11,param_3);
      uVar11 = uVar11 + (local_3c[0] - uVar14) * local_7c;
      uVar14 = local_3c[0];
    } while ((undefined8 *)param_2[1] != puVar7);
  }
  if (local_3c[0] * local_7c != uVar11) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/layout.cc",0x1134,"create_symtab_sections");
  }
  lVar4 = *(long *)(param_1 + 0x2e0);
  if (lVar4 == 0) {
    lVar4 = 0;
    lVar12 = 0;
  }
  else {
    lVar9 = *(long *)(lVar4 + 0x38) * (ulong)param_6;
    if ((*(byte *)(lVar4 + 0x20) & 4) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0xe3,"offset");
    }
    lVar12 = *(long *)(lVar4 + 0x18) + lVar9;
    if ((*(byte *)(lVar4 + 0x20) & 2) == 0) goto LAB_001aa2e9;
    lVar9 = *(long *)(lVar4 + 0x10) - lVar9;
    lVar4 = lVar9 / (long)uVar10;
    if (lVar9 != local_7c * lVar4) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/layout.cc",0x1143,"create_symtab_sections");
    }
  }
  lVar9 = param_1 + 0xa0;
  lVar4 = FUN_002733c0(param_3,uVar11,lVar12,(ulong)param_6,lVar4,lVar9);
  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x5c,"options",local_3c);
  }
  if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x54f9) == '\0') {
    FUN_0026fab0(lVar9,uStack_90);
    lVar12 = param_1 + 0x10;
    uVar5 = FUN_0026e6a0(lVar12,".symtab",0,0);
    plVar6 = (long *)FUN_001a8f30(param_1,uVar5,2,0,0,0);
    *(long **)(param_1 + 0x2d0) = plVar6;
    puVar7 = (undefined8 *)FUN_002d94a0(0x40);
    uVar13 = (ulong)local_4c;
    puVar7[1] = 0;
    puVar7[6] = uVar13;
    *puVar7 = &PTR_FUN_00434088;
    puVar7[5] = 0;
    puVar7[2] = lVar4;
    puVar7[3] = 0xffffffffffffffff;
    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;
    puVar7[7] = "** symtab";
    FUN_001f9c60(plVar6,puVar7);
    if (0xfeff < param_4) {
      uVar5 = FUN_0026e6a0(lVar12,".symtab_shndx",0,0);
      lVar8 = FUN_001a8f30(param_1,uVar5,0x12,0,0,0);
      puVar7 = (undefined8 *)FUN_002d94a0(0x50);
      puVar7[1] = 0;
      puVar7[6] = 4;
      puVar7[5] = 0;
      puVar7[3] = 0xffffffffffffffff;
      puVar7[7] = 0;
      puVar7[8] = 0;
      puVar7[9] = 0;
      *(undefined8 **)(param_1 + 0x2d8) = puVar7;
      puVar7[2] = lVar4 / (long)uVar10 << 2;
      *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0 | 10;
      *puVar7 = &PTR_FUN_00428b28;
      FUN_001f9c60(lVar8,puVar7,lVar4 % (long)uVar10);
      if (((*(int *)(lVar8 + 0x50) != 0) || ((*(byte *)(lVar8 + 200) & 4) != 0)) ||
         ((*(byte *)(lVar8 + 200) & 8) != 0)) goto LAB_001aa349;
      *(long **)(lVar8 + 0x48) = plVar6;
      *(undefined8 *)(lVar8 + 0x30) = 4;
      FUN_001f5d50(lVar8,4);
      *(byte *)(lVar8 + 200) = *(byte *)(lVar8 + 200) | 0x10;
      *(undefined1 *)(param_1 + 0x36e) = 1;
    }
    uVar5 = FUN_0026e6a0(lVar12,".strtab",0,0);
    lVar12 = FUN_001a8f30(param_1,uVar5,3,0,0,0);
    puVar7 = (undefined8 *)FUN_002d94a0(0x40);
    *(byte *)(puVar7 + 4) = *(byte *)(puVar7 + 4) & 0xe0;
    *puVar7 = &PTR_FUN_00428978;
    puVar7[1] = 0;
    puVar7[2] = 0;
    puVar7[3] = 0xffffffffffffffff;
    puVar7[5] = 0;
    puVar7[6] = 1;
    puVar7[7] = lVar9;
    FUN_001f9c60(lVar12,puVar7);
    cVar3 = FUN_002379c0(PTR_DAT_0043e6b0);
    if (cVar3 == '\0') {
      uVar10 = (uVar13 - 1) + *param_5 & -uVar13;
    }
    else {
      uVar10 = FUN_001a4800(param_1 + 0x468,lVar4,uVar13,*param_5);
      if (lVar4 == -1) {
        uVar5 = gettext("out of patch space for symbol table; relink with --incremental-full");
        FUN_00178280(uVar5);
LAB_001aa2e9:
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/output.h",0xcf,"data_size");
      }
      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {
        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"create_symtab_sections: %08lx %08lx .symtab",
                     uVar10,lVar4);
      }
    }
    *(ulong *)(param_3 + 0x10) = uVar11 + uVar10;
    bVar1 = *(byte *)(plVar6 + 4);
    if ((bVar1 & 4) != 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0x14b,"set_file_offset");
    }
    plVar6[3] = uVar10;
    *(byte *)(plVar6 + 4) = bVar1 | 4;
    if (((bVar1 & 2) == 0) &&
       ((**(code **)(*plVar6 + 0x70))(plVar6), (*(byte *)(plVar6 + 4) & 2) == 0)) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0x163,"finalize_data_size");
    }
    if ((((int)plVar6[10] != 0) || ((*(byte *)(plVar6 + 0x19) & 4) != 0)) ||
       ((*(byte *)(plVar6 + 0x19) & 8) != 0)) {
LAB_001aa349:
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0xd07,"set_link_section");
    }
    plVar6[9] = lVar12;
    if (((plVar6[0xb] != 0) || (plVar6[0xc] != 0)) ||
       ((local_3c[0] != *(uint *)(plVar6 + 0xd) && (*(uint *)(plVar6 + 0xd) != 0)))) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/output.h",0xd5e,"set_info");
    }
    *(uint *)(plVar6 + 0xd) = local_3c[0];
    FUN_001f5d50(plVar6,local_7c);
    if (*param_5 < (long)(uVar10 + lVar4)) {
      *param_5 = uVar10 + lVar4;
      return;
    }
  }
  return;
}

