
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void create_dynamic_symtab(Layout * this, Input_objects *
   input_objects, Symbol_table * symtab, Output_section * * pdynstr, uint * plocal_dynamic_count,
   uint * pforced_local_dynamic_count, vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *
   pdynamic_symbols, Versions * pversions) */

void __thiscall
gold::Layout::create_dynamic_symtab
          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,Output_section **pdynstr,
          uint *plocal_dynamic_count,uint *pforced_local_dynamic_count,
          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *pdynamic_symbols,
          Versions *pversions)

{
  undefined1 *puVar1;
  byte bVar2;
  Relobj *pRVar3;
  Output_data_dynamic *pOVar4;
  anon_union_4_4_94c5dad9_for_u_ *paVar5;
  Output_segment *this_00;
  pointer ppOVar6;
  uint uVar7;
  anon_union_4_4_94c5dad9_for_u_ this_01;
  Output_section_data *pOVar8;
  anon_union_4_4_94c5dad9_for_u_ *paVar9;
  uint uVar10;
  anon_union_4_4_94c5dad9_for_u_ aVar11;
  iterator __position;
  byte *pbVar12;
  int iVar13;
  Output_section *pOVar14;
  Output_symtab_xindex *posd;
  int iVar15;
  iterator iVar16;
  uint index;
  pointer ppOVar17;
  uint uVar18;
  byte *pbVar19;
  pointer ppRVar20;
  byte *pbVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  Got_offset_list *local_5c;
  Output_section *local_58;
  uint forced_local_count;
  uchar *phash;
  uint hashlen;
  uchar *phash_1;
  uint hashlen_1;
  anon_union_4_4_94c5dad9_for_u_ local_2c;
  Output_data *local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar25 = 0;
  index = 1;
  uStack_14 = 0xa171e;
  ppOVar6 = (this->section_list_).
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
            _M_impl._M_start;
  if (ppOVar6 !=
      (this->section_list_).
      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.
      _M_finish) {
    do {
      while (pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0) {
        if (index == 0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");
        }
        pOVar14->dynsym_index_ = index;
        ppOVar6 = ppOVar6 + 1;
        index = index + 1;
        if ((this->section_list_).
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
            _M_impl._M_finish == ppOVar6) goto LAB_000a177e;
      }
      pOVar14->dynsym_index_ = 0xffffffff;
      ppOVar6 = ppOVar6 + 1;
    } while ((this->section_list_).
             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
             _M_impl._M_finish != ppOVar6);
  }
LAB_000a177e:
  ppRVar20 = (input_objects->relobj_list_).
             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;
  if (ppRVar20 !=
      (input_objects->relobj_list_).
      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {
    do {
      pRVar3 = *ppRVar20;
      ppRVar20 = ppRVar20 + 1;
      index = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index);
    } while ((input_objects->relobj_list_).
             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=
             ppRVar20);
  }
  forced_local_count = 0;
  uVar7 = Symbol_table::set_dynsym_indexes
                    (symtab,index,&forced_local_count,pdynamic_symbols,&this->dynpool_,pversions);
  *plocal_dynamic_count = index;
  *pforced_local_dynamic_count = forced_local_count;
  if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;
  iVar15 = **(int **)(parameters->target_ + 4);
  if (iVar15 == 0x20) {
    local_5c = (Got_offset_list *)0x4;
    local_58 = (Output_section *)0x10;
  }
  else {
    if (iVar15 != 0x40) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab");
    }
    local_5c = (Got_offset_list *)&DAT_00000008;
    local_58 = (Output_section *)0x18;
  }
  this_01.od = &choose_output_section
                          (this,(Relobj *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false
                           ,false)->super_Output_data;
  if ((Output_section *)this_01.val != (Output_section *)0x0) {
    pOVar8 = (Output_section_data *)operator_new(0x30);
    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;
    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;
    *(uint *)&(pOVar8->super_Output_data).data_size_ = (int)local_58 * uVar7;
    bVar2 = (pOVar8->super_Output_data).field_0x1c;
    pOVar8->output_section_ = (Output_section *)0x0;
    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;
    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;
    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;
    (pOVar8->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_fixed_space_00389d98;
    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;
    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;
    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;
    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** dynsym";
    Output_section::add_output_section_data((Output_section *)this_01.od,pOVar8);
    if (((*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||
        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)) ||
       ((forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&
        (*(uint *)(this_01.val + 0x4c) != 0)))) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");
    }
    *(uint *)(this_01.val + 0x4c) = forced_local_count + index;
    Output_section::set_entsize((Output_section *)this_01.od,(longlong)(int)local_58);
    ((this_01.sym)->got_offsets_).got_next_ = local_5c;
    *(undefined4 *)(this_01.val + 0x28) = 0;
    this->dynsym_section_ = (Output_section *)this_01;
  }
  pOVar4 = this->dynamic_data_;
  if (pOVar4 != (Output_data_dynamic *)0x0) {
    paVar5 = &((pOVar4->entries_).
               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
               ._M_impl._M_finish)->u_;
    local_24 = 6;
    iVar16._M_current =
         (pOVar4->entries_).
         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
         ._M_impl._M_end_of_storage;
    local_20 = 0;
    local_28 = (Output_data *)0x0;
    if (paVar5 == &(iVar16._M_current)->u_) {
      local_2c.od = this_01.od;
      std::
      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);
      paVar9 = &((pOVar4->entries_).
                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
                 ._M_impl._M_finish)->u_;
      iVar16._M_current =
           (pOVar4->entries_).
           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
           ._M_impl._M_end_of_storage;
    }
    else {
      paVar5->sym = (Symbol *)this_01;
      paVar9 = paVar5 + 4;
      paVar5[1].val = 0;
      paVar5[2].val = DT_SYMTAB;
      paVar5[3].val = 0;
      (pOVar4->entries_).
      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
      ._M_impl._M_finish = (pointer)paVar9;
    }
    local_24 = 0xb;
    local_20 = 0xffffffff;
    local_2c.val = (uint)local_58;
    if (&(iVar16._M_current)->u_ == paVar9) {
      std::
      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);
    }
    else {
      paVar9->val = (uint)local_58;
      paVar9[1].val = (uint)local_28;
      paVar9[2].val = DT_SYMENT;
      paVar9[3].val = 0xffffffff;
      (pOVar4->entries_).
      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
      ._M_impl._M_finish = (pointer)(paVar9 + 4);
    }
  }
  ppOVar17 = (this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_start;
  if (ppOVar17 !=
      (this->segment_list_).
      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.
      _M_finish) {
    uVar18 = 0;
    do {
      this_00 = *ppOVar17;
      ppOVar17 = ppOVar17 + 1;
      uVar10 = Output_segment::output_section_count(this_00);
      uVar18 = uVar18 + uVar10;
    } while ((this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_finish != ppOVar17);
    if ((0xfeff < uVar18) &&
       (pOVar14 = choose_output_section
                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,
                             false,false,false), pOVar14 != (Output_section *)0x0)) {
      posd = (Output_symtab_xindex *)operator_new(0x38);
      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0;
      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0;
      *(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_ = uVar7 << 2;
      bVar2 = (posd->super_Output_section_data).super_Output_data.field_0x1c;
      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;
      *(undefined4 *)&(posd->super_Output_section_data).addralign_ = 4;
      *(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0;
      (posd->super_Output_section_data).super_Output_data.field_0x1c = bVar2 & 0xe0 | 10;
      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0;
      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff;
      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =
           0xffffffff;
      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =
           (_func_int_varargs **)&PTR__Output_symtab_xindex_00383db4;
      (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->dynsym_xindex_ = posd;
      Output_section::add_output_section_data(pOVar14,(Output_section_data *)posd);
      if ((pOVar14->link_ != 0) ||
         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))) goto LAB_000a21c1;
      *(undefined4 *)&pOVar14->addralign_ = 4;
      *(undefined4 *)((int)&pOVar14->addralign_ + 4) = 0;
      pOVar14->link_section_ = (Output_data *)this_01;
      Output_section::set_entsize(pOVar14,4);
      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x10;
      this->any_postprocessing_sections_ = true;
    }
  }
  aVar11.od = &choose_output_section
                         (this,(Relobj *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,
                          false)->super_Output_data;
  *pdynstr = (Output_section *)aVar11;
  if ((Output_section *)aVar11.val != (Output_section *)0x0) {
    pOVar8 = (Output_section_data *)operator_new(0x30);
    puVar1 = &(pOVar8->super_Output_data).field_0x1c;
    *puVar1 = *puVar1 & 0xe0;
    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)&this->dynpool_;
    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;
    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;
    *(undefined4 *)&(pOVar8->super_Output_data).data_size_ = 0;
    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;
    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;
    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;
    pOVar8->output_section_ = (Output_section *)0x0;
    *(undefined4 *)&pOVar8->addralign_ = 1;
    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;
    (pOVar8->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_strtab_00383cdc;
    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);
    if ((Output_section *)this_01.val != (Output_section *)0x0) {
      if (((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||
         ((*(byte *)(this_01.val + 0x90) & 8) != 0)) goto LAB_000a21c1;
      ((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od = (Output_data *)aVar11;
    }
    pOVar14 = this->dynamic_section_;
    if (pOVar14 != (Output_section *)0x0) {
      if (((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||
         ((pOVar14->field_0x90 & 8) != 0)) goto LAB_000a21c1;
      pOVar14->link_section_ = (Output_data *)aVar11;
    }
    if (pOVar4 != (Output_data_dynamic *)0x0) {
      paVar5 = &((pOVar4->entries_).
                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
                 ._M_impl._M_finish)->u_;
      iVar16._M_current =
           (pOVar4->entries_).
           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
           ._M_impl._M_end_of_storage;
      local_24 = 5;
      local_20 = 0;
      local_28 = (Output_data *)0x0;
      if (paVar5 == &(iVar16._M_current)->u_) {
        local_2c.od = aVar11.od;
        std::
        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);
        __position._M_current =
             (pOVar4->entries_).
             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
             ._M_impl._M_finish;
        iVar16._M_current =
             (pOVar4->entries_).
             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
             ._M_impl._M_end_of_storage;
      }
      else {
        paVar5->od = (Output_data *)aVar11;
        __position._M_current = (Dynamic_entry *)(paVar5 + 4);
        paVar5[1].val = 0;
        paVar5[2].val = DT_STRTAB;
        paVar5[3].val = 0;
        (pOVar4->entries_).
        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ._M_impl._M_finish = __position._M_current;
      }
      local_24 = 10;
      local_20 = 0xfffffffe;
      local_28 = (Output_data *)0x0;
      if (__position._M_current == iVar16._M_current) {
        local_2c.od = aVar11.od;
        std::
        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);
      }
      else {
        ((__position._M_current)->u_).od = (Output_data *)aVar11;
        (__position._M_current)->od2 = (Output_data *)0x0;
        (__position._M_current)->tag_ = DT_STRSZ;
        (__position._M_current)->offset_ = 0xfffffffe;
        (pOVar4->entries_).
        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ._M_impl._M_finish = __position._M_current + 1;
        local_2c.od = aVar11.od;
      }
    }
  }
  bVar22 = false;
  bVar24 = parameters->options_ == (General_options *)0x0;
  if (bVar24) goto LAB_000a21dc;
  pbVar12 = (byte *)(parameters->options_->hash_style_).value;
  iVar15 = 4;
  pbVar19 = pbVar12;
  pbVar21 = &DAT_002806f5;
  do {
    if (iVar15 == 0) break;
    iVar15 = iVar15 + -1;
    bVar22 = *pbVar19 < *pbVar21;
    bVar24 = *pbVar19 == *pbVar21;
    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
  } while (bVar24);
  bVar23 = false;
  bVar22 = (!bVar22 && !bVar24) == bVar22;
  if (bVar22) {
LAB_000a1d90:
    Dynobj::create_gnu_hash_table(pdynamic_symbols,forced_local_count + index,&phash,&hashlen);
    aVar11.od = &choose_output_section
                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,
                            false,false,false)->super_Output_data;
    pOVar8 = (Output_section_data *)operator_new(0x34);
    bVar2 = (pOVar8->super_Output_data).field_0x1c;
    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;
    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;
    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;
    pOVar8->output_section_ = (Output_section *)0x0;
    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;
    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;
    *(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen;
    (pOVar8->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;
    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;
    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash;
    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;
    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;
    *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";
    if ((Output_section *)aVar11.val != (Output_section *)0x0) {
      Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);
      if ((Output_section *)this_01.val != (Output_section *)0x0) {
        if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||
           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;
        ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;
      }
      if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;
      if (**(int **)(parameters->target_ + 4) == 0x20) {
        Output_section::set_entsize((Output_section *)aVar11.od,4);
      }
      if (pOVar4 != (Output_data_dynamic *)0x0) {
        local_24 = 0x6ffffef5;
        iVar16._M_current =
             (pOVar4->entries_).
             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
             ._M_impl._M_finish;
        local_20 = 0;
        local_28 = (Output_data *)0x0;
        local_2c.od = aVar11.od;
        if (iVar16._M_current ==
            (pOVar4->entries_).
            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
            ._M_impl._M_end_of_storage) {
          std::
          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);
        }
        else {
          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;
          (iVar16._M_current)->od2 = (Output_data *)0x0;
          (iVar16._M_current)->tag_ = DT_GNU_HASH;
          (iVar16._M_current)->offset_ = 0;
          (pOVar4->entries_).
          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
          ._M_impl._M_finish = iVar16._M_current + 1;
        }
      }
    }
    bVar22 = parameters->options_ == (General_options *)0x0;
    if (bVar22) {
LAB_000a21dc:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
    }
    pbVar12 = (byte *)(parameters->options_->hash_style_).value;
  }
  else {
    iVar15 = 5;
    pbVar19 = pbVar12;
    pbVar21 = &DAT_00280708;
    do {
      if (iVar15 == 0) break;
      iVar15 = iVar15 + -1;
      bVar23 = *pbVar19 < *pbVar21;
      bVar22 = *pbVar19 == *pbVar21;
      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
      pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
    } while (bVar22);
    bVar22 = (!bVar23 && !bVar22) == bVar23;
    if (bVar22) goto LAB_000a1d90;
  }
  bVar24 = false;
  iVar15 = 5;
  pbVar19 = pbVar12;
  pbVar21 = &DAT_00280703;
  do {
    if (iVar15 == 0) break;
    iVar15 = iVar15 + -1;
    bVar24 = *pbVar19 < *pbVar21;
    bVar22 = *pbVar19 == *pbVar21;
    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
  } while (bVar22);
  bVar23 = false;
  bVar22 = (!bVar24 && !bVar22) == bVar24;
  if (!bVar22) {
    iVar15 = 5;
    pbVar19 = &DAT_00280708;
    do {
      if (iVar15 == 0) break;
      iVar15 = iVar15 + -1;
      bVar23 = *pbVar12 < *pbVar19;
      bVar22 = *pbVar12 == *pbVar19;
      pbVar12 = pbVar12 + (uint)bVar25 * -2 + 1;
      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
    } while (bVar22);
    if ((!bVar23 && !bVar22) != bVar23) {
      return;
    }
  }
  Dynobj::create_elf_hash_table(pdynamic_symbols,index + forced_local_count,&phash_1,&hashlen_1);
  aVar11.od = &choose_output_section
                         (this,(Relobj *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,
                          false)->super_Output_data;
  pOVar8 = (Output_section_data *)operator_new(0x34);
  bVar25 = (pOVar8->super_Output_data).field_0x1c;
  *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;
  *(Got_offset_list **)&pOVar8->addralign_ = local_5c;
  *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;
  pOVar8->output_section_ = (Output_section *)0x0;
  (pOVar8->super_Output_data).field_0x1c = bVar25 & 0xe0 | 10;
  *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;
  *(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen_1;
  (pOVar8->super_Output_data)._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;
  *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;
  pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash_1;
  *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;
  *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;
  *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";
  if ((Output_section *)aVar11.val != (Output_section *)0x0) {
    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);
    if ((Output_section *)this_01.val != (Output_section *)0x0) {
      if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||
         ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) {
LAB_000a21c1:
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");
      }
      ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;
    }
    if (parameters->target_ == (Target *)0x0) {
LAB_000a2224:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/parameters.h",0x69,"target");
    }
    iVar15 = *(int *)(*(int *)(parameters->target_ + 4) + 0x5c);
    iVar13 = iVar15 + 7;
    if (-1 < iVar15) {
      iVar13 = iVar15;
    }
    Output_section::set_entsize((Output_section *)aVar11.od,CONCAT44(iVar13 >> 0x1f,iVar13 >> 3));
  }
  if (pOVar4 != (Output_data_dynamic *)0x0) {
    local_24 = 4;
    iVar16._M_current =
         (pOVar4->entries_).
         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
         ._M_impl._M_finish;
    local_20 = 0;
    local_28 = (Output_data *)0x0;
    if (iVar16._M_current ==
        (pOVar4->entries_).
        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ._M_impl._M_end_of_storage) {
      local_2c.od = aVar11.od;
      std::
      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);
    }
    else {
      ((iVar16._M_current)->u_).od = (Output_data *)aVar11;
      (iVar16._M_current)->od2 = (Output_data *)0x0;
      (iVar16._M_current)->tag_ = DT_HASH;
      (iVar16._M_current)->offset_ = 0;
      (pOVar4->entries_).
      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
      ._M_impl._M_finish = iVar16._M_current + 1;
    }
  }
  return;
}



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

void FUN_000a1710(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,
                 int *param_6,undefined4 param_7,undefined4 param_8)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int *piVar4;
  undefined4 *puVar5;
  int *piVar6;
  int iVar7;
  int *piVar8;
  undefined4 *puVar9;
  byte *pbVar10;
  undefined4 extraout_ECX;
  int extraout_ECX_00;
  int extraout_ECX_01;
  int extraout_ECX_02;
  int extraout_ECX_03;
  int extraout_ECX_04;
  int extraout_ECX_05;
  int *piVar11;
  undefined4 *puVar12;
  int iVar13;
  uint uVar14;
  byte *pbVar15;
  byte *pbVar16;
  bool bVar17;
  bool bVar18;
  bool bVar19;
  byte bVar20;
  int local_5c;
  int *local_58;
  int local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  int *local_2c;
  int local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar20 = 0;
  iVar13 = 1;
  uStack_14 = 0xa171e;
  piVar4 = *(int **)(param_1 + 0x130);
  if (piVar4 != *(int **)(param_1 + 0x134)) {
    do {
      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {
        if (iVar13 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");
        }
        *(int *)(iVar3 + 0x68) = iVar13;
        piVar4 = piVar4 + 1;
        iVar13 = iVar13 + 1;
        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;
      }
      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;
      piVar4 = piVar4 + 1;
    } while (*(int **)(param_1 + 0x134) != piVar4);
  }
LAB_000a177e:
  puVar5 = (undefined4 *)*param_2;
  if (puVar5 != (undefined4 *)param_2[1]) {
    do {
      piVar4 = (int *)*puVar5;
      puVar5 = puVar5 + 1;
      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);
    } while ((undefined4 *)param_2[1] != puVar5);
  }
  local_40 = 0;
  iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);
  *param_5 = iVar13;
  *param_6 = local_40;
  if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;
  iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);
  if (iVar1 == 0x20) {
    local_5c = 4;
    local_58 = (int *)0x10;
  }
  else {
    if (iVar1 != 0x40) {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);
    }
    local_5c = 8;
    local_58 = (int *)0x18;
  }
  piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);
  if (piVar4 != (int *)0x0) {
    puVar5 = (undefined4 *)FUN_001e5200(0x30);
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = (int)local_58 * iVar3;
    puVar5[8] = 0;
    puVar5[9] = local_5c;
    puVar5[10] = 0;
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
    *puVar5 = &PTR_FUN_00389d98;
    puVar5[4] = 0;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[0xb] = "** dynsym";
    FUN_000f2600(piVar4,puVar5);
    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||
       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);
    }
    piVar4[0x13] = local_40 + iVar13;
    FUN_000ee490(piVar4,local_58,0);
    piVar4[9] = local_5c;
    piVar4[10] = 0;
    *(int **)(param_1 + 0x17c) = piVar4;
  }
  iVar1 = *(int *)(param_1 + 0x18c);
  if (iVar1 != 0) {
    piVar8 = *(int **)(iVar1 + 0x30);
    local_24 = 6;
    piVar11 = *(int **)(iVar1 + 0x34);
    local_20 = 0;
    local_28 = 0;
    if (piVar8 == piVar11) {
      local_2c = piVar4;
      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);
      piVar6 = *(int **)(iVar1 + 0x30);
      piVar11 = *(int **)(iVar1 + 0x34);
    }
    else {
      *piVar8 = (int)piVar4;
      piVar6 = piVar8 + 4;
      piVar8[1] = 0;
      piVar8[2] = 6;
      piVar8[3] = 0;
      *(int **)(iVar1 + 0x30) = piVar6;
    }
    local_24 = 0xb;
    local_20 = 0xffffffff;
    local_2c = local_58;
    if (piVar11 == piVar6) {
      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);
    }
    else {
      *piVar6 = (int)local_58;
      piVar6[1] = local_28;
      piVar6[2] = 0xb;
      piVar6[3] = -1;
      *(int **)(iVar1 + 0x30) = piVar6 + 4;
    }
  }
  puVar5 = *(undefined4 **)(param_1 + 0x124);
  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {
    uVar14 = 0;
    do {
      uVar2 = *puVar5;
      puVar5 = puVar5 + 1;
      iVar7 = FUN_000f1220(uVar2);
      uVar14 = uVar14 + iVar7;
    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);
    if ((0xfeff < uVar14) &&
       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {
      puVar5 = (undefined4 *)FUN_001e5200(0x38);
      puVar5[1] = 0;
      puVar5[2] = 0;
      puVar5[3] = iVar3 << 2;
      puVar5[8] = 0;
      puVar5[9] = 4;
      puVar5[10] = 0;
      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
      puVar5[4] = 0;
      puVar5[5] = 0xffffffff;
      puVar5[6] = 0xffffffff;
      *puVar5 = &PTR_FUN_00383db4;
      puVar5[0xb] = 0;
      puVar5[0xc] = 0;
      puVar5[0xd] = 0;
      *(undefined4 **)(param_1 + 0x180) = puVar5;
      FUN_000f2600(iVar7,puVar5);
      if ((*(int *)(iVar7 + 0x40) != 0) ||
         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))
      goto LAB_000a21c1;
      *(undefined4 *)(iVar7 + 0x24) = 4;
      *(undefined4 *)(iVar7 + 0x28) = 0;
      *(int **)(iVar7 + 0x3c) = piVar4;
      FUN_000ee490(iVar7,4,0);
      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;
      *(undefined1 *)(param_1 + 0x1ca) = 1;
    }
  }
  piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);
  *param_4 = piVar8;
  iVar3 = extraout_ECX_00;
  if (piVar8 != (int *)0x0) {
    puVar5 = (undefined4 *)FUN_001e5200(0x30);
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;
    puVar5[0xb] = param_1 + 0xa0;
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = 0;
    puVar5[4] = 0;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[8] = 0;
    puVar5[9] = 1;
    puVar5[10] = 0;
    *puVar5 = &PTR_FUN_00383cdc;
    FUN_000f2600(piVar8,puVar5);
    if (piVar4 != (int *)0x0) {
      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||
         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;
      piVar4[0xf] = (int)piVar8;
    }
    iVar3 = *(int *)(param_1 + 0x184);
    if (iVar3 != 0) {
      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||
         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;
      *(int **)(iVar3 + 0x3c) = piVar8;
    }
    iVar3 = iVar1;
    if (iVar1 != 0) {
      puVar5 = *(undefined4 **)(iVar1 + 0x30);
      puVar12 = *(undefined4 **)(iVar1 + 0x34);
      local_24 = 5;
      local_20 = 0;
      local_28 = 0;
      if (puVar5 == puVar12) {
        local_2c = piVar8;
        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);
        puVar9 = *(undefined4 **)(iVar1 + 0x30);
        puVar12 = *(undefined4 **)(iVar1 + 0x34);
      }
      else {
        *puVar5 = piVar8;
        puVar9 = puVar5 + 4;
        puVar5[1] = 0;
        puVar5[2] = 5;
        puVar5[3] = 0;
        *(undefined4 **)(iVar1 + 0x30) = puVar9;
      }
      local_24 = 10;
      local_20 = 0xfffffffe;
      local_28 = 0;
      if (puVar9 == puVar12) {
        local_2c = piVar8;
        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);
        iVar3 = extraout_ECX_04;
      }
      else {
        *puVar9 = piVar8;
        puVar9[1] = 0;
        puVar9[2] = 10;
        puVar9[3] = 0xfffffffe;
        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;
        local_2c = piVar8;
      }
    }
  }
  bVar17 = false;
  bVar19 = *(int *)(DAT_0038f378 + 8) == 0;
  if (bVar19) goto LAB_000a21dc;
  pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);
  iVar3 = 4;
  pbVar15 = pbVar10;
  pbVar16 = &DAT_002806f5;
  do {
    if (iVar3 == 0) break;
    iVar3 = iVar3 + -1;
    bVar17 = *pbVar15 < *pbVar16;
    bVar19 = *pbVar15 == *pbVar16;
    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
  } while (bVar19);
  bVar18 = false;
  bVar17 = (!bVar17 && !bVar19) == bVar17;
  if (bVar17) {
LAB_000a1d90:
    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);
    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);
    puVar5 = (undefined4 *)FUN_001e5200(0x34);
    puVar5[1] = 0;
    puVar5[9] = local_5c;
    puVar5[2] = 0;
    puVar5[8] = 0;
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
    puVar5[10] = 0;
    puVar5[3] = local_38;
    *puVar5 = &PTR_FUN_00383c70;
    puVar5[4] = 0;
    puVar5[0xb] = local_3c;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[0xc] = "** hash";
    iVar3 = extraout_ECX_01;
    if (param_2 != (int *)0x0) {
      FUN_000f2600(param_2,puVar5);
      if (piVar4 != (int *)0x0) {
        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||
           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;
        param_2[0xf] = (int)piVar4;
      }
      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;
      iVar3 = extraout_ECX_02;
      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {
        FUN_000ee490(param_2,4,0);
        iVar3 = extraout_ECX_03;
      }
      if (iVar1 != 0) {
        local_24 = 0x6ffffef5;
        puVar5 = *(undefined4 **)(iVar1 + 0x30);
        local_20 = 0;
        local_28 = 0;
        local_2c = param_2;
        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {
          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);
          iVar3 = extraout_ECX_05;
        }
        else {
          *puVar5 = param_2;
          puVar5[1] = 0;
          puVar5[2] = 0x6ffffef5;
          puVar5[3] = 0;
          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;
        }
      }
    }
    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;
    if (bVar17) {
LAB_000a21dc:
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);
    }
    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);
  }
  else {
    iVar3 = 5;
    pbVar15 = pbVar10;
    pbVar16 = &DAT_00280708;
    do {
      if (iVar3 == 0) break;
      iVar3 = iVar3 + -1;
      bVar18 = *pbVar15 < *pbVar16;
      bVar17 = *pbVar15 == *pbVar16;
      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
    } while (bVar17);
    bVar17 = (!bVar18 && !bVar17) == bVar18;
    if (bVar17) goto LAB_000a1d90;
  }
  bVar19 = false;
  iVar3 = 5;
  pbVar15 = pbVar10;
  pbVar16 = &DAT_00280703;
  do {
    if (iVar3 == 0) break;
    iVar3 = iVar3 + -1;
    bVar19 = *pbVar15 < *pbVar16;
    bVar17 = *pbVar15 == *pbVar16;
    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
  } while (bVar17);
  bVar18 = false;
  bVar17 = (!bVar19 && !bVar17) == bVar19;
  if (!bVar17) {
    iVar3 = 5;
    pbVar15 = &DAT_00280708;
    do {
      if (iVar3 == 0) break;
      iVar3 = iVar3 + -1;
      bVar18 = *pbVar10 < *pbVar15;
      bVar17 = *pbVar10 == *pbVar15;
      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;
      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    } while (bVar17);
    if ((!bVar18 && !bVar17) != bVar18) {
      return;
    }
  }
  FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);
  param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);
  puVar5 = (undefined4 *)FUN_001e5200(0x34);
  puVar5[1] = 0;
  puVar5[9] = local_5c;
  puVar5[2] = 0;
  puVar5[8] = 0;
  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
  puVar5[10] = 0;
  puVar5[3] = local_30;
  *puVar5 = &PTR_FUN_00383c70;
  puVar5[4] = 0;
  puVar5[0xb] = local_34;
  puVar5[5] = 0xffffffff;
  puVar5[6] = 0xffffffff;
  puVar5[0xc] = "** hash";
  if (param_2 != (int *)0x0) {
    FUN_000f2600(param_2,puVar5);
    if (piVar4 != (int *)0x0) {
      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||
         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {
LAB_000a21c1:
                    /* WARNING: Subroutine does not return */
        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");
      }
      param_2[0xf] = (int)piVar4;
    }
    if (*(int *)(DAT_0038f378 + 0xc) == 0) {
LAB_000a2224:
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);
    }
    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);
    iVar3 = iVar13 + 7;
    if (-1 < iVar13) {
      iVar3 = iVar13;
    }
    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);
  }
  if (iVar1 != 0) {
    local_24 = 4;
    puVar5 = *(undefined4 **)(iVar1 + 0x30);
    local_20 = 0;
    local_28 = 0;
    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {
      local_2c = param_2;
      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);
    }
    else {
      *puVar5 = param_2;
      puVar5[1] = 0;
      puVar5[2] = 4;
      puVar5[3] = 0;
      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;
    }
  }
  return;
}


PUSH EBP
MOV EBP,0x1
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x2ed8e2
SUB ESP,0x5c
MOV EAX,dword ptr [ESP + 0x70]
MOV EDI,dword ptr [ESP + 0x70]
MOV ESI,dword ptr [ESP + 0x74]
MOV EAX,dword ptr [EAX + 0x130]
CMP EAX,dword ptr [EDI + 0x134]
JZ 0x000a177e
MOV ECX,EDI
JMP 0x000a175a
MOV dword ptr [EDX + 0x68],0xffffffff
ADD EAX,0x4
CMP dword ptr [ECX + 0x134],EAX
JZ 0x000a177e
MOV EDX,dword ptr [EAX]
TEST byte ptr [EDX + 0x90],0x2
JZ 0x000a1748
TEST EBP,EBP
JZ 0x000a21a6
MOV dword ptr [EDX + 0x68],EBP
ADD EAX,0x4
ADD EBP,0x1
CMP dword ptr [ECX + 0x134],EAX
JNZ 0x000a175a
MOV EDI,dword ptr [ESI]
CMP EDI,dword ptr [ESI + 0x4]
JZ 0x000a17ac
MOV EAX,EBP
LEA ESI,[ESI]
NOP
MOV EDX,dword ptr [EDI]
SUB ESP,0x8
ADD EDI,0x4
MOV ECX,dword ptr [EDX]
PUSH EAX
PUSH EDX
CALL dword ptr [ECX + 0xd0]
ADD ESP,0x10
CMP dword ptr [ESI + 0x4],EDI
JNZ 0x000a1790
MOV EBP,EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x2c],0x0
SUB ESP,0x8
ADD EAX,0xa0
MOV dword ptr [ESP + 0x24],EAX
PUSH dword ptr [ESP + 0x94]
PUSH EAX
PUSH dword ptr [ESP + 0x98]
LEA EAX,[ESP + 0x40]
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x94]
CALL 0x00178e40
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0xa0]
MOV dword ptr [EAX],EBP
MOV EAX,dword ptr [ESP + 0xa4]
MOV dword ptr [EAX],EDX
LEA EAX,[EBX + 0x378]
MOV dword ptr [ESP + 0x2c],EAX
MOV EAX,dword ptr [EAX]
ADD ESP,0x20
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000a2224
MOV EAX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
CMP EAX,0x20
JZ 0x000a20d0
CMP EAX,0x40
JNZ 0x000a220b
MOV dword ptr [ESP + 0x10],0x8
MOV dword ptr [ESP + 0x14],0x18
SUB ESP,0x4
LEA EAX,[EBX + 0xffefb7e9]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0xb
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x9c]
CALL 0x0009fff0
ADD ESP,0x30
MOV dword ptr [ESP + 0x4],EAX
TEST EAX,EAX
JZ 0x000a1954
SUB ESP,0xc
XOR EDI,EDI
PUSH 0x30
CALL 0x001e5200
MOV EDX,dword ptr [ESP + 0x24]
IMUL EDX,dword ptr [ESP + 0x28]
MOV ESI,dword ptr [ESP + 0x20]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],EDX
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x20],0x0
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x24],ESI
OR EDX,0xa
MOV dword ptr [EAX + 0x28],EDI
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[EBX + 0xffffad98]
MOV dword ptr [EAX],EDX
LEA EDX,[EBX + 0xffefb7f1]
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x2c],EDX
POP ECX
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x10]
CALL 0x000f2600
MOV EAX,dword ptr [ESP + 0x3c]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [ECX + 0x44]
ADD EAX,EBP
TEST EDX,EDX
JNZ 0x000a21f2
MOV EDX,dword ptr [ECX + 0x48]
TEST EDX,EDX
JNZ 0x000a21f2
MOV EDX,dword ptr [ECX + 0x4c]
CMP EAX,EDX
JZ 0x000a191f
TEST EDX,EDX
JNZ 0x000a21f2
MOV ECX,dword ptr [ESP + 0x4]
SUB ESP,0x4
MOV dword ptr [ECX + 0x4c],EAX
MOV EAX,dword ptr [ESP + 0x18]
CDQ
PUSH EDX
PUSH EAX
MOV dword ptr [ESP + 0x10],ECX
PUSH ECX
CALL 0x000ee490
MOV ECX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESP + 0x80]
ADD ESP,0x10
MOV dword ptr [ECX + 0x24],ESI
MOV dword ptr [ECX + 0x28],EDI
MOV dword ptr [EAX + 0x17c],ECX
MOV EAX,dword ptr [ESP + 0x70]
MOV ESI,dword ptr [EAX + 0x18c]
MOV dword ptr [ESP + 0x8],ESI
TEST ESI,ESI
JZ 0x000a19f9
MOV ECX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [ESI + 0x30]
MOV dword ptr [ESP + 0x48],0x6
LEA EDI,[ESI + 0x2c]
MOV EDX,dword ptr [ESI + 0x34]
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x40],ECX
MOV dword ptr [ESP + 0x44],0x0
CMP EAX,EDX
JZ 0x000a20e5
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],ECX
MOV ECX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],ECX
MOV ECX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],ECX
MOV dword ptr [ESI + 0x30],EAX
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x48],0xb
MOV dword ptr [ESP + 0x4c],0xffffffff
MOV dword ptr [ESP + 0x40],ECX
CMP EDX,EAX
JZ 0x000a211b
MOV dword ptr [EAX],ECX
MOV EDX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV ESI,dword ptr [ESP + 0x8]
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [ESI + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x70]
XOR ESI,ESI
MOV EDI,dword ptr [EAX + 0x124]
CMP EDI,dword ptr [EAX + 0x128]
JZ 0x000a1a43
MOV dword ptr [ESP + 0x14],EBP
MOV EBP,EDI
MOV EDI,EAX
LEA ESI,[ESI]
SUB ESP,0xc
PUSH dword ptr [EBP]
ADD EBP,0x4
CALL 0x000f1220
ADD ESP,0x10
ADD ESI,EAX
CMP dword ptr [EDI + 0x128],EBP
JNZ 0x000a1a18
MOV EBP,dword ptr [ESP + 0x14]
CMP ESI,0xfeff
JA 0x000a1fa8
SUB ESP,0x4
LEA EAX,[EBX + 0xffefc16e]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x3
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x9c]
CALL 0x0009fff0
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0xac]
ADD ESP,0x30
MOV dword ptr [EAX],ESI
TEST ESI,ESI
JZ 0x000a1bed
SUB ESP,0xc
PUSH 0x30
CALL 0x001e5200
LEA EDX,[EBX + 0xffff4cd4]
MOV EDI,dword ptr [ESP + 0x2c]
AND byte ptr [EAX + 0x1c],0xe0
ADD EDX,0x8
MOV dword ptr [EAX + 0x2c],EDI
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x24],0x1
MOV dword ptr [EAX + 0x28],0x0
MOV dword ptr [EAX],EDX
POP EDX
POP ECX
PUSH EAX
PUSH ESI
CALL 0x000f2600
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x4]
TEST EDI,EDI
JZ 0x000a1b19
MOV EAX,dword ptr [EDI + 0x40]
TEST EAX,EAX
JNZ 0x000a21c1
MOVZX EAX,byte ptr [EDI + 0x90]
TEST AL,0x4
JNZ 0x000a21c1
TEST AL,0x8
JNZ 0x000a21c1
MOV dword ptr [EDI + 0x3c],ESI
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX + 0x184]
TEST EAX,EAX
JZ 0x000a1b4e
MOV EDI,dword ptr [EAX + 0x40]
TEST EDI,EDI
JNZ 0x000a21c1
MOVZX EDX,byte ptr [EAX + 0x90]
TEST DL,0x4
JNZ 0x000a21c1
AND EDX,0x8
JNZ 0x000a21c1
MOV dword ptr [EAX + 0x3c],ESI
MOV ECX,dword ptr [ESP + 0x8]
TEST ECX,ECX
JZ 0x000a1bed
MOV EAX,dword ptr [ECX + 0x30]
MOV EDX,dword ptr [ECX + 0x34]
MOV dword ptr [ESP + 0x40],ESI
LEA EDI,[ECX + 0x2c]
MOV dword ptr [ESP + 0x48],0x5
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x44],0x0
CMP EAX,EDX
JZ 0x000a2150
MOV dword ptr [EAX],ESI
MOV ECX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],ECX
MOV ECX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],ECX
MOV ECX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],ECX
MOV ECX,dword ptr [ESP + 0x8]
MOV dword ptr [ECX + 0x30],EAX
MOV dword ptr [ESP + 0x48],0xa
MOV dword ptr [ESP + 0x4c],0xfffffffe
MOV dword ptr [ESP + 0x40],ESI
MOV dword ptr [ESP + 0x44],0x0
CMP EAX,EDX
JZ 0x000a2171
MOV dword ptr [EAX],ESI
MOV EDX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV ESI,dword ptr [ESP + 0x8]
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [ESI + 0x30],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000a21dc
MOV EAX,dword ptr [EAX + 0x1b30]
MOV ECX,0x4
LEA EDI,[EBX + 0xffef16f5]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x000a1d90
MOV ECX,0x5
LEA EDI,[EBX + 0xffef1708]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x000a1d90
MOV ECX,0x5
LEA EDI,[EBX + 0xffef1703]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x000a1c73
MOV ESI,EAX
MOV ECX,0x5
LEA EDI,[EBX + 0xffef1708]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000a1d81
LEA EAX,[ESP + 0x3c]
PUSH EAX
LEA EAX,[ESP + 0x3c]
PUSH EAX
ADD EBP,dword ptr [ESP + 0x34]
PUSH EBP
PUSH dword ptr [ESP + 0x94]
CALL 0x001a25a0
ADD ESP,0xc
LEA EAX,[EBX + 0xffefb80d]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x5
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x9c]
CALL 0x0009fff0
ADD ESP,0x24
PUSH 0x34
MOV ESI,EAX
CALL 0x001e5200
MOV EDI,dword ptr [ESP + 0x20]
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x24],EDI
MOV EDI,dword ptr [ESP + 0x4c]
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x8],0x0
OR EDX,0xa
MOV dword ptr [EAX + 0x20],0x0
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[EBX + 0xffff4c68]
MOV dword ptr [EAX + 0x28],0x0
ADD EDX,0x8
MOV dword ptr [EAX + 0xc],EDI
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESP + 0x48]
ADD ESP,0x10
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x2c],EDX
LEA EDX,[EBX + 0xffefb813]
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x30],EDX
TEST ESI,ESI
JNZ 0x000a1e78
MOV EBX,dword ptr [ESP + 0x8]
TEST EBX,EBX
JZ 0x000a1d81
MOV dword ptr [ESP + 0x48],0x4
MOV EAX,dword ptr [EBX + 0x30]
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x40],ESI
MOV dword ptr [ESP + 0x44],0x0
CMP EAX,dword ptr [EBX + 0x34]
JZ 0x000a2132
MOV dword ptr [EAX],ESI
MOV EDX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [EBX + 0x30],EAX
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[ESP + 0x34]
PUSH EAX
LEA EAX,[ESP + 0x34]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x34]
ADD EAX,EBP
PUSH EAX
PUSH dword ptr [ESP + 0x94]
CALL 0x001a3090
ADD ESP,0xc
LEA EAX,[EBX + 0xffefb809]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x6ffffff6
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x9c]
CALL 0x0009fff0
ADD ESP,0x24
PUSH 0x34
MOV ESI,EAX
CALL 0x001e5200
MOV EDI,dword ptr [ESP + 0x20]
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x24],EDI
MOV EDI,dword ptr [ESP + 0x44]
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x8],0x0
OR EDX,0xa
MOV dword ptr [EAX + 0x20],0x0
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[EBX + 0xffff4c68]
MOV dword ptr [EAX + 0x28],0x0
ADD EDX,0x8
MOV dword ptr [EAX + 0xc],EDI
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESP + 0x40]
ADD ESP,0x10
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x2c],EDX
LEA EDX,[EBX + 0xffefb813]
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x30],EDX
TEST ESI,ESI
JNZ 0x000a1ef8
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000a21dc
MOV EAX,dword ptr [EAX + 0x1b30]
JMP 0x000a1c3e
SUB ESP,0x8
PUSH EAX
PUSH ESI
CALL 0x000f2600
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x4]
TEST ECX,ECX
JZ 0x000a1eb2
MOV EAX,dword ptr [ESI + 0x40]
TEST EAX,EAX
JNZ 0x000a21c1
MOVZX EAX,byte ptr [ESI + 0x90]
TEST AL,0x4
JNZ 0x000a21c1
TEST AL,0x8
JNZ 0x000a21c1
MOV dword ptr [ESI + 0x3c],ECX
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000a2224
MOV EAX,dword ptr [EAX + 0x4]
SUB ESP,0x4
MOV EDX,dword ptr [EAX + 0x5c]
TEST EDX,EDX
LEA EAX,[EDX + 0x7]
CMOVNS EAX,EDX
SAR EAX,0x3
CDQ
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x000ee490
ADD ESP,0x10
MOV EBX,dword ptr [ESP + 0x8]
TEST EBX,EBX
JNZ 0x000a1d3c
JMP 0x000a1d81
SUB ESP,0x8
PUSH EAX
PUSH ESI
CALL 0x000f2600
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x4]
TEST EDI,EDI
JZ 0x000a1f32
MOV EDX,dword ptr [ESI + 0x40]
TEST EDX,EDX
JNZ 0x000a21c1
MOVZX EAX,byte ptr [ESI + 0x90]
TEST AL,0x4
JNZ 0x000a21c1
TEST AL,0x8
JNZ 0x000a21c1
MOV dword ptr [ESI + 0x3c],EDI
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000a2224
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX],0x20
JZ 0x000a2106
MOV EDI,dword ptr [ESP + 0x8]
TEST EDI,EDI
JZ 0x000a1e56
MOV dword ptr [ESP + 0x48],0x6ffffef5
MOV EAX,dword ptr [EDI + 0x30]
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x40],ESI
MOV dword ptr [ESP + 0x44],0x0
CMP EAX,dword ptr [EDI + 0x34]
JZ 0x000a2188
MOV dword ptr [EAX],ESI
MOV EDX,dword ptr [ESP + 0x44]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESP + 0x48]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [EDI + 0x30],EAX
JMP 0x000a1e56
SUB ESP,0x4
LEA EAX,[EBX + 0xffefb7fb]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x12
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0x9c]
CALL 0x0009fff0
ADD ESP,0x30
MOV ESI,EAX
TEST EAX,EAX
JZ 0x000a1a43
SUB ESP,0xc
PUSH 0x38
CALL 0x001e5200
MOV EDX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x80]
MOV dword ptr [EAX + 0x4],0x0
SHL EDX,0x2
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],EDX
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x20],0x0
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x24],0x4
OR EDX,0xa
MOV dword ptr [EAX + 0x28],0x0
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[EBX + 0xffff4dac]
MOV dword ptr [EAX + 0x10],0x0
ADD EDX,0x8
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x2c],0x0
MOV dword ptr [EAX + 0x30],0x0
MOV dword ptr [EAX + 0x34],0x0
MOV dword ptr [EDI + 0x180],EAX
POP EDI
POP EDX
PUSH EAX
PUSH ESI
CALL 0x000f2600
MOV ECX,dword ptr [ESI + 0x40]
ADD ESP,0x10
TEST ECX,ECX
JNZ 0x000a21c1
MOVZX EAX,byte ptr [ESI + 0x90]
TEST AL,0x4
JNZ 0x000a21c1
TEST AL,0x8
JNZ 0x000a21c1
MOV EAX,dword ptr [ESP + 0x4]
SUB ESP,0x4
MOV dword ptr [ESI + 0x24],0x4
MOV dword ptr [ESI + 0x28],0x0
MOV dword ptr [ESI + 0x3c],EAX
PUSH 0x0
PUSH 0x4
PUSH ESI
CALL 0x000ee490
MOV EAX,dword ptr [ESP + 0x80]
ADD ESP,0x10
OR byte ptr [ESI + 0x90],0x10
MOV byte ptr [EAX + 0x1ca],0x1
JMP 0x000a1a43
MOV dword ptr [ESP + 0x10],0x4
MOV dword ptr [ESP + 0x14],0x10
JMP 0x000a1840
SUB ESP,0x4
LEA EAX,[ESP + 0x44]
PUSH EAX
PUSH EDX
PUSH EDI
CALL 0x000a5aa0
MOV ESI,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x30]
MOV EDX,dword ptr [ESI + 0x34]
JMP 0x000a19b8
SUB ESP,0x4
PUSH 0x0
PUSH 0x4
PUSH ESI
CALL 0x000ee490
ADD ESP,0x10
JMP 0x000a1f4f
SUB ESP,0x4
LEA EAX,[ESP + 0x44]
PUSH EAX
PUSH EDX
PUSH EDI
CALL 0x000a5aa0
ADD ESP,0x10
JMP 0x000a19f9
SUB ESP,0x4
LEA EDX,[ESP + 0x44]
PUSH EDX
PUSH EAX
MOV EAX,dword ptr [ESP + 0x14]
ADD EAX,0x2c
PUSH EAX
CALL 0x000a5aa0
ADD ESP,0x10
JMP 0x000a1d81
SUB ESP,0x4
LEA EAX,[ESP + 0x44]
PUSH EAX
PUSH EDX
PUSH EDI
CALL 0x000a5aa0
MOV ECX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EAX,dword ptr [ECX + 0x30]
MOV EDX,dword ptr [ECX + 0x34]
JMP 0x000a1ba8
SUB ESP,0x4
LEA EDX,[ESP + 0x44]
PUSH EDX
PUSH EAX
PUSH EDI
CALL 0x000a5aa0
ADD ESP,0x10
JMP 0x000a1bed
SUB ESP,0x4
LEA EDX,[ESP + 0x44]
PUSH EDX
PUSH EAX
MOV EAX,dword ptr [ESP + 0x14]
ADD EAX,0x2c
PUSH EAX
CALL 0x000a5aa0
ADD ESP,0x10
JMP 0x000a1e56
SUB ESP,0x4
LEA EAX,[EBX + 0xffefc654]
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0xda3
PUSH EAX
CALL 0x00069d00
SUB ESP,0x4
LEA EAX,[EBX + 0xffefc7c4]
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0xd07
PUSH EAX
CALL 0x00069d00
LEA EAX,[EBX + 0xffefca48]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xffef8210]
PUSH 0x5c
PUSH EAX
CALL 0x00069d00
LEA EAX,[EBX + 0xffefc680]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0xd5e
PUSH EAX
CALL 0x00069d00
LEA EAX,[EBX + 0xffefc668]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xffefb4ab]
PUSH 0x1232
PUSH EAX
CALL 0x00069d00
LEA EAX,[EBX + 0xffefc9f8]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xffef8210]
PUSH 0x69
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000a1710(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0xa171e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n  iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_0038f378 + 8) == 0;\n  if (bVar19) goto LAB_000a21dc;\n  pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002806f5;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_00280703;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_001e5200(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00383c70;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_000a1710(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0xa171e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n  iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_0038f378 + 8) == 0;\n  if (bVar19) goto LAB_000a21dc;\n  pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002806f5;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_00280703;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_001e5200(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00383c70;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000a1710(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0xa171e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n  iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_0038f378 + 8) == 0;\n  if (bVar19) goto LAB_000a21dc;\n  pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002806f5;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_00280703;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_001e5200(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00383c70;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "int extraout_ECX_01;" primitive_type identifier ;) (declaration "int extraout_ECX_02;" primitive_type identifier ;) (declaration "int extraout_ECX_03;" primitive_type identifier ;) (declaration "int extraout_ECX_04;" primitive_type identifier ;) (declaration "int extraout_ECX_05;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xa171e;" (assignment_expression "uStack_14 = 0xa171e" identifier = number_literal) ;) (expression_statement "piVar4 = *(int **)(param_1 + 0x130);" (assignment_expression "piVar4 = *(int **)(param_1 + 0x130)" identifier = (pointer_expression "*(int **)(param_1 + 0x130)" * (cast_expression "(int **)(param_1 + 0x130)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x130)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" if (parenthesized_expression "(piVar4 != *(int **)(param_1 + 0x134))" ( (binary_expression "piVar4 != *(int **)(param_1 + 0x134)" identifier != (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" { (do_statement "do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);" do (compound_statement "{\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    }" { (while_statement "while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }" while (parenthesized_expression "(iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0)" ( (comma_expression "iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) , (binary_expression "(*(byte *)(iVar3 + 0x90) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 2)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 2" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal)) )) (compound_statement "{\n        if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }" { (if_statement "if (iVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" { comment (expression_statement "FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");" (call_expression "FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index")" identifier (argument_list "("../../gold/output.h",0xda3,"set_dynsym_index")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_dynsym_index"" " string_content ") ))) ;) })) (expression_statement "*(int *)(iVar3 + 0x68) = iVar13;" (assignment_expression "*(int *)(iVar3 + 0x68) = iVar13" (pointer_expression "*(int *)(iVar3 + 0x68)" * (cast_expression "(int *)(iVar3 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;" if (parenthesized_expression "(*(int **)(param_1 + 0x134) == piVar4)" ( (binary_expression "*(int **)(param_1 + 0x134) == piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_000a177e;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + 0x68)" * (cast_expression "(undefined4 *)(iVar3 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x134) != piVar4)" ( (binary_expression "*(int **)(param_1 + 0x134) != piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) != identifier) )) ;) })) (labeled_statement "LAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;" statement_identifier : (expression_statement "puVar5 = (undefined4 *)*param_2;" (assignment_expression "puVar5 = (undefined4 *)*param_2" identifier = (cast_expression "(undefined4 *)*param_2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) (if_statement "if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" if (parenthesized_expression "(puVar5 != (undefined4 *)param_2[1])" ( (binary_expression "puVar5 != (undefined4 *)param_2[1]" identifier != (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" { (do_statement "do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);" do (compound_statement "{\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    }" { (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);" (assignment_expression "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" identifier = (call_expression "(**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" (parenthesized_expression "(**(code **)(*piVar4 + 0xd0))" ( (pointer_expression "**(code **)(*piVar4 + 0xd0)" * (pointer_expression "*(code **)(*piVar4 + 0xd0)" * (cast_expression "(code **)(*piVar4 + 0xd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xd0)" ( (binary_expression "*piVar4 + 0xd0" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4,iVar13)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "((undefined4 *)param_2[1] != puVar5)" ( (binary_expression "(undefined4 *)param_2[1] != puVar5" (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);" (assignment_expression "iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" identifier = (call_expression "FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" identifier (argument_list "(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) , identifier , (binary_expression "param_1 + 0xa0" identifier + number_literal) , identifier )))) ;) (expression_statement "*param_5 = iVar13;" (assignment_expression "*param_5 = iVar13" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "*param_6 = local_40;" (assignment_expression "*param_6 = local_40" (pointer_expression "*param_6" * identifier) = identifier) ;) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a2224;" goto statement_identifier ;)) (expression_statement "iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" if (parenthesized_expression "(iVar1 == 0x20)" ( (binary_expression "iVar1 == 0x20" identifier == number_literal) )) (compound_statement "{\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }" { (expression_statement "local_5c = 4;" (assignment_expression "local_5c = 4" identifier = number_literal) ;) (expression_statement "local_58 = (int *)0x10;" (assignment_expression "local_58 = (int *)0x10" identifier = (cast_expression "(int *)0x10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" else (compound_statement "{\n    if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" { (if_statement "if (iVar1 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" if (parenthesized_expression "(iVar1 != 0x40)" ( (binary_expression "iVar1 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" { comment (expression_statement "FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);" (call_expression "FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" identifier (argument_list "("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_dynamic_symtab"" " string_content ") , identifier ))) ;) })) (expression_statement "local_5c = 8;" (assignment_expression "local_5c = 8" identifier = number_literal) ;) (expression_statement "local_58 = (int *)0x18;" (assignment_expression "local_58 = (int *)0x18" identifier = (cast_expression "(int *)0x18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);" (assignment_expression "piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynsym"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" { (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x30)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = (int)local_58 * iVar3;" (assignment_expression "puVar5[3] = (int)local_58 * iVar3" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (binary_expression "(int)local_58 * iVar3" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*puVar5 = &PTR_FUN_00389d98;" (assignment_expression "*puVar5 = &PTR_FUN_00389d98" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00389d98" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = "** dynsym";" (assignment_expression "puVar5[0xb] = "** dynsym"" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = (string_literal ""** dynsym"" " string_content ")) ;) (expression_statement "FUN_000f2600(piVar4,puVar5);" (call_expression "FUN_000f2600(piVar4,puVar5)" identifier (argument_list "(piVar4,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" if (parenthesized_expression "(((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))))" ( (binary_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" (parenthesized_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0))" ( (binary_expression "(piVar4[0x11] != 0) || (piVar4[0x12] != 0)" (parenthesized_expression "(piVar4[0x11] != 0)" ( (binary_expression "piVar4[0x11] != 0" (subscript_expression "piVar4[0x11]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(piVar4[0x12] != 0)" ( (binary_expression "piVar4[0x12] != 0" (subscript_expression "piVar4[0x12]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" ( (parenthesized_expression "(local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))" ( (binary_expression "local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)" (binary_expression "local_40 + iVar13 != piVar4[0x13]" (binary_expression "local_40 + iVar13" identifier + identifier) != (subscript_expression "piVar4[0x13]" identifier [ number_literal ])) && (parenthesized_expression "(piVar4[0x13] != 0)" ( (binary_expression "piVar4[0x13] != 0" (subscript_expression "piVar4[0x13]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" { comment (expression_statement "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);" (call_expression "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c)" identifier (argument_list "("../../gold/output.h",0xd5e,"set_info",local_5c)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info"" " string_content ") , identifier ))) ;) })) (expression_statement "piVar4[0x13] = local_40 + iVar13;" (assignment_expression "piVar4[0x13] = local_40 + iVar13" (subscript_expression "piVar4[0x13]" identifier [ number_literal ]) = (binary_expression "local_40 + iVar13" identifier + identifier)) ;) (expression_statement "FUN_000ee490(piVar4,local_58,0);" (call_expression "FUN_000ee490(piVar4,local_58,0)" identifier (argument_list "(piVar4,local_58,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "piVar4[9] = local_5c;" (assignment_expression "piVar4[9] = local_5c" (subscript_expression "piVar4[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[10] = 0;" (assignment_expression "piVar4[10] = 0" (subscript_expression "piVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(param_1 + 0x17c) = piVar4;" (assignment_expression "*(int **)(param_1 + 0x17c) = piVar4" (pointer_expression "*(int **)(param_1 + 0x17c)" * (cast_expression "(int **)(param_1 + 0x17c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x17c)" ( (binary_expression "param_1 + 0x17c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x18c)" identifier = (pointer_expression "*(int *)(param_1 + 0x18c)" * (cast_expression "(int *)(param_1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" { (expression_statement "piVar8 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar8 = *(int **)(iVar1 + 0x30)" identifier = (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 6;" (assignment_expression "local_24 = 6" identifier = number_literal) ;) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" identifier = (pointer_expression "*(int **)(iVar1 + 0x34)" * (cast_expression "(int **)(iVar1 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" if (parenthesized_expression "(piVar8 == piVar11)" ( (binary_expression "piVar8 == piVar11" identifier == identifier) )) (compound_statement "{\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }" { (expression_statement "local_2c = piVar4;" (assignment_expression "local_2c = piVar4" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "piVar6 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar6 = *(int **)(iVar1 + 0x30)" identifier = (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" identifier = (pointer_expression "*(int **)(iVar1 + 0x34)" * (cast_expression "(int **)(iVar1 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" else (compound_statement "{\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" { (expression_statement "*piVar8 = (int)piVar4;" (assignment_expression "*piVar8 = (int)piVar4" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6 = piVar8 + 4;" (assignment_expression "piVar6 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[2] = 6;" (assignment_expression "piVar8[2] = 6" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6" (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 0xb;" (assignment_expression "local_24 = 0xb" identifier = number_literal) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c = local_58;" (assignment_expression "local_2c = local_58" identifier = identifier) ;) (if_statement "if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" if (parenthesized_expression "(piVar11 == piVar6)" ( (binary_expression "piVar11 == piVar6" identifier == identifier) )) (compound_statement "{\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }" { (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" else (compound_statement "{\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" { (expression_statement "*piVar6 = (int)local_58;" (assignment_expression "*piVar6 = (int)local_58" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6[1] = local_28;" (assignment_expression "piVar6[1] = local_28" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[2] = 0xb;" (assignment_expression "piVar6[2] = 0xb" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[3] = -1;" (assignment_expression "piVar6[3] = -1" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6 + 4;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6 + 4" (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "piVar6 + 4" identifier + number_literal)) ;) }))) })) (expression_statement "puVar5 = *(undefined4 **)(param_1 + 0x124);" (assignment_expression "puVar5 = *(undefined4 **)(param_1 + 0x124)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x124)" * (cast_expression "(undefined4 **)(param_1 + 0x124)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" if (parenthesized_expression "(puVar5 != *(undefined4 **)(param_1 + 0x128))" ( (binary_expression "puVar5 != *(undefined4 **)(param_1 + 0x128)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 0x128)" * (cast_expression "(undefined4 **)(param_1 + 0x128)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);" do (compound_statement "{\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    }" { (expression_statement "uVar2 = *puVar5;" (assignment_expression "uVar2 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = FUN_000f1220(uVar2);" (assignment_expression "iVar7 = FUN_000f1220(uVar2)" identifier = (call_expression "FUN_000f1220(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "uVar14 = uVar14 + iVar7;" (assignment_expression "uVar14 = uVar14 + iVar7" identifier = (binary_expression "uVar14 + iVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_1 + 0x128) != puVar5)" ( (binary_expression "*(undefined4 **)(param_1 + 0x128) != puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x128)" * (cast_expression "(undefined4 **)(param_1 + 0x128)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) (if_statement "if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" if (parenthesized_expression "((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0))" ( (binary_expression "(0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" (parenthesized_expression "(0xfeff < uVar14)" ( (binary_expression "0xfeff < uVar14" number_literal < identifier) )) && (parenthesized_expression "(iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0" (assignment_expression "iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" identifier = (call_expression "FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynsym_shndx"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" { (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x38);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x38)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x38)" identifier (argument_list "(0x38)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = iVar3 << 2;" (assignment_expression "puVar5[3] = iVar3 << 2" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (binary_expression "iVar3 << 2" identifier << number_literal)) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = 4;" (assignment_expression "puVar5[9] = 4" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = &PTR_FUN_00383db4;" (assignment_expression "*puVar5 = &PTR_FUN_00383db4" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00383db4" & identifier)) ;) (expression_statement "puVar5[0xb] = 0;" (assignment_expression "puVar5[0xb] = 0" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = 0;" (assignment_expression "puVar5[0xc] = 0" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xd] = 0;" (assignment_expression "puVar5[0xd] = 0" (subscript_expression "puVar5[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(param_1 + 0x180) = puVar5;" (assignment_expression "*(undefined4 **)(param_1 + 0x180) = puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x180)" * (cast_expression "(undefined4 **)(param_1 + 0x180)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x180)" ( (binary_expression "param_1 + 0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_000f2600(iVar7,puVar5);" (call_expression "FUN_000f2600(iVar7,puVar5)" identifier (argument_list "(iVar7,puVar5)" ( identifier , identifier ))) ;) (if_statement "if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;" if (parenthesized_expression "((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))" ( (binary_expression "(*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x40) != 0" (pointer_expression "*(int *)(iVar7 + 0x40)" * (cast_expression "(int *)(iVar7 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x40)" ( (binary_expression "iVar7 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" ( (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))" ( (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)" (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar7 + 0x90) & 4" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar7 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar7 + 0x90) & 8" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar7 + 0x24) = 4;" (assignment_expression "*(undefined4 *)(iVar7 + 0x24) = 4" (pointer_expression "*(undefined4 *)(iVar7 + 0x24)" * (cast_expression "(undefined4 *)(iVar7 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x24)" ( (binary_expression "iVar7 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x28) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x28)" * (cast_expression "(undefined4 *)(iVar7 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x3c) = piVar4;" (assignment_expression "*(int **)(iVar7 + 0x3c) = piVar4" (pointer_expression "*(int **)(iVar7 + 0x3c)" * (cast_expression "(int **)(iVar7 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3c)" ( (binary_expression "iVar7 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_000ee490(iVar7,4,0);" (call_expression "FUN_000ee490(iVar7,4,0)" identifier (argument_list "(iVar7,4,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;" (assignment_expression "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + 0x1ca) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x1ca) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x1ca)" * (cast_expression "(undefined1 *)(param_1 + 0x1ca)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1ca)" ( (binary_expression "param_1 + 0x1ca" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);" (assignment_expression "piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynstr"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "*param_4 = piVar8;" (assignment_expression "*param_4 = piVar8" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "iVar3 = extraout_ECX_00;" (assignment_expression "iVar3 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" { (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x30)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar5[0xb] = param_1 + 0xa0;" (assignment_expression "puVar5[0xb] = param_1 + 0xa0" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = (binary_expression "param_1 + 0xa0" identifier + number_literal)) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = 1;" (assignment_expression "puVar5[9] = 1" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = &PTR_FUN_00383cdc;" (assignment_expression "*puVar5 = &PTR_FUN_00383cdc" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00383cdc" & identifier)) ;) (expression_statement "FUN_000f2600(piVar8,puVar5);" (call_expression "FUN_000f2600(piVar8,puVar5)" identifier (argument_list "(piVar8,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }" { (if_statement "if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;" if (parenthesized_expression "(((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0))" ( (binary_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)" (parenthesized_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0))" ( (binary_expression "(piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)" (parenthesized_expression "(piVar4[0x10] != 0)" ( (binary_expression "piVar4[0x10] != 0" (subscript_expression "piVar4[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(piVar4 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 4)" ( (binary_expression "*(byte *)(piVar4 + 0x24) & 4" (pointer_expression "*(byte *)(piVar4 + 0x24)" * (cast_expression "(byte *)(piVar4 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x24)" ( (binary_expression "piVar4 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(piVar4 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 8)" ( (binary_expression "*(byte *)(piVar4 + 0x24) & 8" (pointer_expression "*(byte *)(piVar4 + 0x24)" * (cast_expression "(byte *)(piVar4 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x24)" ( (binary_expression "piVar4 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "piVar4[0xf] = (int)piVar8;" (assignment_expression "piVar4[0xf] = (int)piVar8" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 0x184);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x184)" identifier = (pointer_expression "*(int *)(param_1 + 0x184)" * (cast_expression "(int *)(param_1 + 0x184)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x184)" ( (binary_expression "param_1 + 0x184" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" { (if_statement "if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;" if (parenthesized_expression "(((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0))" ( (binary_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0))" ( (binary_expression "(*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" * (cast_expression "(int *)(iVar3 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 4" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 8" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "*(int **)(iVar3 + 0x3c) = piVar8;" (assignment_expression "*(int **)(iVar3 + 0x3c) = piVar8" (pointer_expression "*(int **)(iVar3 + 0x3c)" * (cast_expression "(int **)(iVar3 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x3c)" ( (binary_expression "iVar3 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" { (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 5;" (assignment_expression "local_24 = 5" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" if (parenthesized_expression "(puVar5 == puVar12)" ( (binary_expression "puVar5 == puVar12" identifier == identifier) )) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }" { (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar12,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar9 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" else (compound_statement "{\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" { (expression_statement "*puVar5 = piVar8;" (assignment_expression "*puVar5 = piVar8" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar5 + 4;" (assignment_expression "puVar9 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 5;" (assignment_expression "puVar5[2] = 5" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 10;" (assignment_expression "local_24 = 10" identifier = number_literal) ;) (expression_statement "local_20 = 0xfffffffe;" (assignment_expression "local_20 = 0xfffffffe" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" if (parenthesized_expression "(puVar9 == puVar12)" ( (binary_expression "puVar9 == puVar12" identifier == identifier) )) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }" { (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar9,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "iVar3 = extraout_ECX_04;" (assignment_expression "iVar3 = extraout_ECX_04" identifier = identifier) ;) }) (else_clause "else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" else (compound_statement "{\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" { (expression_statement "*puVar9 = piVar8;" (assignment_expression "*puVar9 = piVar8" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[2] = 10;" (assignment_expression "puVar9[2] = 10" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0xfffffffe;" (assignment_expression "puVar9[3] = 0xfffffffe" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) }))) })) })) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar19 = *(int *)(DAT_0038f378 + 8) == 0;" (assignment_expression "bVar19 = *(int *)(DAT_0038f378 + 8) == 0" identifier = (binary_expression "*(int *)(DAT_0038f378 + 8) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (bVar19) goto LAB_000a21dc;" if (parenthesized_expression "(bVar19)" ( identifier )) (goto_statement "goto LAB_000a21dc;" goto statement_identifier ;)) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" identifier = (pointer_expression "*(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" * (cast_expression "(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) + 0x1b30)" ( (binary_expression "*(int *)(DAT_0038f378 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_002806f5;" (assignment_expression "pbVar16 = &DAT_002806f5" identifier = (pointer_expression "&DAT_002806f5" & identifier)) ;) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);" do (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar15 < *pbVar16;" (assignment_expression "bVar17 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar19 = *pbVar15 == *pbVar16;" (assignment_expression "bVar19 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar17 = (!bVar17 && !bVar19) == bVar17;" (assignment_expression "bVar17 = (!bVar17 && !bVar19) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar19) == bVar17" (parenthesized_expression "(!bVar17 && !bVar19)" ( (binary_expression "!bVar17 && !bVar19" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }" { (labeled_statement "LAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);" statement_identifier : (expression_statement "FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);" (call_expression "FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38)" identifier (argument_list "(param_7,local_40 + iVar13,&local_3c,&local_38)" ( identifier , (binary_expression "local_40 + iVar13" identifier + identifier) , (pointer_expression "&local_3c" & identifier) , (pointer_expression "&local_38" & identifier) ))) ;)) (expression_statement "param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".gnu.hash"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = local_38;" (assignment_expression "puVar5[3] = local_38" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = &PTR_FUN_00383c70;" (assignment_expression "*puVar5 = &PTR_FUN_00383c70" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = local_3c;" (assignment_expression "puVar5[0xb] = local_3c" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = (string_literal ""** hash"" " string_content ")) ;) (expression_statement "iVar3 = extraout_ECX_01;" (assignment_expression "iVar3 = extraout_ECX_01" identifier = identifier) ;) (if_statement "if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" { (expression_statement "FUN_000f2600(param_2,puVar5);" (call_expression "FUN_000f2600(param_2,puVar5)" identifier (argument_list "(param_2,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }" { (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;" if (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0))" ( (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" ( (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" ( (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a2224;" goto statement_identifier ;)) (expression_statement "iVar3 = extraout_ECX_02;" (assignment_expression "iVar3 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" if (parenthesized_expression "(**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20)" ( (binary_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20" (pointer_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) ))))) == number_literal) )) (compound_statement "{\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" { (expression_statement "FUN_000ee490(param_2,4,0);" (call_expression "FUN_000ee490(param_2,4,0)" identifier (argument_list "(param_2,4,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "iVar3 = extraout_ECX_03;" (assignment_expression "iVar3 = extraout_ECX_03" identifier = identifier) ;) })) (if_statement "if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" { (expression_statement "local_24 = 0x6ffffef5;" (assignment_expression "local_24 = 0x6ffffef5" identifier = number_literal) ;) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" identifier = identifier) ;) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" if (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" ( (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" identifier == (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }" { (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "iVar3 = extraout_ECX_05;" (assignment_expression "iVar3 = extraout_ECX_05" identifier = identifier) ;) }) (else_clause "else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" else (compound_statement "{\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" { (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0x6ffffef5;" (assignment_expression "puVar5[2] = 0x6ffffef5" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }))) })) })) (expression_statement "bVar17 = *(int *)(DAT_0038f378 + 8) == 0;" (assignment_expression "bVar17 = *(int *)(DAT_0038f378 + 8) == 0" identifier = (binary_expression "*(int *)(DAT_0038f378 + 8) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (bVar17) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" { (labeled_statement "LAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);" statement_identifier : comment (expression_statement "FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar3)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" identifier = (pointer_expression "*(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" * (cast_expression "(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) + 0x1b30)" ( (binary_expression "*(int *)(DAT_0038f378 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }" else (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_00280708;" (assignment_expression "pbVar16 = &DAT_00280708" identifier = (pointer_expression "&DAT_00280708" & identifier)) ;) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" do (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar15 < *pbVar16;" (assignment_expression "bVar18 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "bVar17 = (!bVar18 && !bVar17) == bVar18;" (assignment_expression "bVar17 = (!bVar18 && !bVar17) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar17) == bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" ( (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar17) goto LAB_000a1d90;" if (parenthesized_expression "(bVar17)" ( identifier )) (goto_statement "goto LAB_000a1d90;" goto statement_identifier ;)) }))) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_00280703;" (assignment_expression "pbVar16 = &DAT_00280703" identifier = (pointer_expression "&DAT_00280703" & identifier)) ;) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);" do (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar15 < *pbVar16;" (assignment_expression "bVar19 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar17 = (!bVar19 && !bVar17) == bVar19;" (assignment_expression "bVar17 = (!bVar19 && !bVar17) == bVar19" identifier = (binary_expression "(!bVar19 && !bVar17) == bVar19" (parenthesized_expression "(!bVar19 && !bVar17)" ( (binary_expression "!bVar19 && !bVar17" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = &DAT_00280708;" (assignment_expression "pbVar15 = &DAT_00280708" identifier = (pointer_expression "&DAT_00280708" & identifier)) ;) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" do (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar15;" (assignment_expression "bVar18 = *pbVar10 < *pbVar15" identifier = (binary_expression "*pbVar10 < *pbVar15" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar17 = *pbVar10 == *pbVar15;" (assignment_expression "bVar17 = *pbVar10 == *pbVar15" identifier = (binary_expression "*pbVar10 == *pbVar15" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }" if (parenthesized_expression "((!bVar18 && !bVar17) != bVar18)" ( (binary_expression "(!bVar18 && !bVar17) != bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" ( (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) != identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (expression_statement "FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);" (call_expression "FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30)" identifier (argument_list "(param_7,iVar13 + local_40,&local_34,&local_30)" ( identifier , (binary_expression "iVar13 + local_40" identifier + identifier) , (pointer_expression "&local_34" & identifier) , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".hash",5,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".hash"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = local_30;" (assignment_expression "puVar5[3] = local_30" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = &PTR_FUN_00383c70;" (assignment_expression "*puVar5 = &PTR_FUN_00383c70" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = local_34;" (assignment_expression "puVar5[0xb] = local_34" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = (string_literal ""** hash"" " string_content ")) ;) (if_statement "if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" { (expression_statement "FUN_000f2600(param_2,puVar5);" (call_expression "FUN_000f2600(param_2,puVar5)" identifier (argument_list "(param_2,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" { (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }" if (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0))" ( (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" ( (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" ( (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }" { (labeled_statement "LAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" statement_identifier : comment (expression_statement "FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_00069d00("../../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 "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }" { (labeled_statement "LAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);" statement_identifier : comment (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",param_2)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;)) })) (expression_statement "iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);" (assignment_expression "iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" * (cast_expression "(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" ( (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar3 = iVar13 + 7;" (assignment_expression "iVar3 = iVar13 + 7" identifier = (binary_expression "iVar13 + 7" identifier + number_literal)) ;) (if_statement "if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }" if (parenthesized_expression "(-1 < iVar13)" ( (binary_expression "-1 < iVar13" number_literal < identifier) )) (compound_statement "{\n      iVar3 = iVar13;\n    }" { (expression_statement "iVar3 = iVar13;" (assignment_expression "iVar3 = iVar13" identifier = identifier) ;) })) (expression_statement "FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);" (call_expression "FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f)" identifier (argument_list "(param_2,iVar3 >> 3,iVar3 >> 0x1f)" ( identifier , (binary_expression "iVar3 >> 3" identifier >> number_literal) , (binary_expression "iVar3 >> 0x1f" identifier >> number_literal) ))) ;) })) (if_statement "if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" { (expression_statement "local_24 = 4;" (assignment_expression "local_24 = 4" identifier = number_literal) ;) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" if (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" ( (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" identifier == (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }" { (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" else (compound_statement "{\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" { (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 4;" (assignment_expression "puVar5[2] = 4" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void create_dynamic_symtab(Layout * this, Input_objects *\n   input_objects, Symbol_table * symtab, Output_section * * pdynstr, uint * plocal_dynamic_count,\n   uint * pforced_local_dynamic_count, vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *\n   pdynamic_symbols, Versions * pversions) */\n\nvoid __thiscall\ngold::Layout::create_dynamic_symtab\n          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,Output_section **pdynstr,\n          uint *plocal_dynamic_count,uint *pforced_local_dynamic_count,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *pdynamic_symbols,\n          Versions *pversions)\n\n{\n  undefined1 *puVar1;\n  byte bVar2;\n  Relobj *pRVar3;\n  Output_data_dynamic *pOVar4;\n  anon_union_4_4_94c5dad9_for_u_ *paVar5;\n  Output_segment *this_00;\n  pointer ppOVar6;\n  uint uVar7;\n  anon_union_4_4_94c5dad9_for_u_ this_01;\n  Output_section_data *pOVar8;\n  anon_union_4_4_94c5dad9_for_u_ *paVar9;\n  uint uVar10;\n  anon_union_4_4_94c5dad9_for_u_ aVar11;\n  iterator __position;\n  byte *pbVar12;\n  int iVar13;\n  Output_section *pOVar14;\n  Output_symtab_xindex *posd;\n  int iVar15;\n  iterator iVar16;\n  uint index;\n  pointer ppOVar17;\n  uint uVar18;\n  byte *pbVar19;\n  pointer ppRVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  Got_offset_list *local_5c;\n  Output_section *local_58;\n  uint forced_local_count;\n  uchar *phash;\n  uint hashlen;\n  uchar *phash_1;\n  uint hashlen_1;\n  anon_union_4_4_94c5dad9_for_u_ local_2c;\n  Output_data *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  index = 1;\n  uStack_14 = 0xa171e;\n  ppOVar6 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if (ppOVar6 !=\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 (pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0) {\n        if (index == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        pOVar14->dynsym_index_ = index;\n        ppOVar6 = ppOVar6 + 1;\n        index = index + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6) goto LAB_000a177e;\n      }\n      pOVar14->dynsym_index_ = 0xffffffff;\n      ppOVar6 = ppOVar6 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar6);\n  }\nLAB_000a177e:\n  ppRVar20 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n  if (ppRVar20 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n    do {\n      pRVar3 = *ppRVar20;\n      ppRVar20 = ppRVar20 + 1;\n      index = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index);\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar20);\n  }\n  forced_local_count = 0;\n  uVar7 = Symbol_table::set_dynsym_indexes\n                    (symtab,index,&forced_local_count,pdynamic_symbols,&this->dynpool_,pversions);\n  *plocal_dynamic_count = index;\n  *pforced_local_dynamic_count = forced_local_count;\n  if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;\n  iVar15 = **(int **)(parameters->target_ + 4);\n  if (iVar15 == 0x20) {\n    local_5c = (Got_offset_list *)0x4;\n    local_58 = (Output_section *)0x10;\n  }\n  else {\n    if (iVar15 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab");\n    }\n    local_5c = (Got_offset_list *)&DAT_00000008;\n    local_58 = (Output_section *)0x18;\n  }\n  this_01.od = &choose_output_section\n                          (this,(Relobj *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false\n                           ,false)->super_Output_data;\n  if ((Output_section *)this_01.val != (Output_section *)0x0) {\n    pOVar8 = (Output_section_data *)operator_new(0x30);\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    *(uint *)&(pOVar8->super_Output_data).data_size_ = (int)local_58 * uVar7;\n    bVar2 = (pOVar8->super_Output_data).field_0x1c;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00389d98;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** dynsym";\n    Output_section::add_output_section_data((Output_section *)this_01.od,pOVar8);\n    if (((*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||\n        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)) ||\n       ((forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(this_01.val + 0x4c) = forced_local_count + index;\n    Output_section::set_entsize((Output_section *)this_01.od,(longlong)(int)local_58);\n    ((this_01.sym)->got_offsets_).got_next_ = local_5c;\n    *(undefined4 *)(this_01.val + 0x28) = 0;\n    this->dynsym_section_ = (Output_section *)this_01;\n  }\n  pOVar4 = this->dynamic_data_;\n  if (pOVar4 != (Output_data_dynamic *)0x0) {\n    paVar5 = &((pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish)->u_;\n    local_24 = 6;\n    iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_end_of_storage;\n    local_20 = 0;\n    local_28 = (Output_data *)0x0;\n    if (paVar5 == &(iVar16._M_current)->u_) {\n      local_2c.od = this_01.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n      paVar9 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n    }\n    else {\n      paVar5->sym = (Symbol *)this_01;\n      paVar9 = paVar5 + 4;\n      paVar5[1].val = 0;\n      paVar5[2].val = DT_SYMTAB;\n      paVar5[3].val = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c.val = (uint)local_58;\n    if (&(iVar16._M_current)->u_ == paVar9) {\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      paVar9->val = (uint)local_58;\n      paVar9[1].val = (uint)local_28;\n      paVar9[2].val = DT_SYMENT;\n      paVar9[3].val = 0xffffffff;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);\n    }\n  }\n  ppOVar17 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;\n  if (ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\n    uVar18 = 0;\n    do {\n      this_00 = *ppOVar17;\n      ppOVar17 = ppOVar17 + 1;\n      uVar10 = Output_segment::output_section_count(this_00);\n      uVar18 = uVar18 + uVar10;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar17);\n    if ((0xfeff < uVar18) &&\n       (pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false), pOVar14 != (Output_section *)0x0)) {\n      posd = (Output_symtab_xindex *)operator_new(0x38);\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0;\n      *(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_ = uVar7 << 2;\n      bVar2 = (posd->super_Output_section_data).super_Output_data.field_0x1c;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&(posd->super_Output_section_data).addralign_ = 4;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0;\n      (posd->super_Output_section_data).super_Output_data.field_0x1c = bVar2 & 0xe0 | 10;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =\n           0xffffffff;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00383db4;\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->dynsym_xindex_ = posd;\n      Output_section::add_output_section_data(pOVar14,(Output_section_data *)posd);\n      if ((pOVar14->link_ != 0) ||\n         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))) goto LAB_000a21c1;\n      *(undefined4 *)&pOVar14->addralign_ = 4;\n      *(undefined4 *)((int)&pOVar14->addralign_ + 4) = 0;\n      pOVar14->link_section_ = (Output_data *)this_01;\n      Output_section::set_entsize(pOVar14,4);\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }\n  }\n  aVar11.od = &choose_output_section\n                         (this,(Relobj *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data;\n  *pdynstr = (Output_section *)aVar11;\n  if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n    pOVar8 = (Output_section_data *)operator_new(0x30);\n    puVar1 = &(pOVar8->super_Output_data).field_0x1c;\n    *puVar1 = *puVar1 & 0xe0;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)&this->dynpool_;\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar8->addralign_ = 1;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00383cdc;\n    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n    if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(this_01.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      ((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od = (Output_data *)aVar11;\n    }\n    pOVar14 = this->dynamic_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      if (((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||\n         ((pOVar14->field_0x90 & 8) != 0)) goto LAB_000a21c1;\n      pOVar14->link_section_ = (Output_data *)aVar11;\n    }\n    if (pOVar4 != (Output_data_dynamic *)0x0) {\n      paVar5 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (paVar5 == &(iVar16._M_current)->u_) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        __position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        paVar5->od = (Output_data *)aVar11;\n        __position._M_current = (Dynamic_entry *)(paVar5 + 4);\n        paVar5[1].val = 0;\n        paVar5[2].val = DT_STRTAB;\n        paVar5[3].val = 0;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = (Output_data *)0x0;\n      if (__position._M_current == iVar16._M_current) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);\n      }\n      else {\n        ((__position._M_current)->u_).od = (Output_data *)aVar11;\n        (__position._M_current)->od2 = (Output_data *)0x0;\n        (__position._M_current)->tag_ = DT_STRSZ;\n        (__position._M_current)->offset_ = 0xfffffffe;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        local_2c.od = aVar11.od;\n      }\n    }\n  }\n  bVar22 = false;\n  bVar24 = parameters->options_ == (General_options *)0x0;\n  if (bVar24) goto LAB_000a21dc;\n  pbVar12 = (byte *)(parameters->options_->hash_style_).value;\n  iVar15 = 4;\n  pbVar19 = pbVar12;\n  pbVar21 = &DAT_002806f5;\n  do {\n    if (iVar15 == 0) break;\n    iVar15 = iVar15 + -1;\n    bVar22 = *pbVar19 < *pbVar21;\n    bVar24 = *pbVar19 == *pbVar21;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar24) == bVar22;\n  if (bVar22) {\nLAB_000a1d90:\n    Dynobj::create_gnu_hash_table(pdynamic_symbols,forced_local_count + index,&phash,&hashlen);\n    aVar11.od = &choose_output_section\n                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)->super_Output_data;\n    pOVar8 = (Output_section_data *)operator_new(0x34);\n    bVar2 = (pOVar8->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    *(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";\n    if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n      Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n      if ((Output_section *)this_01.val != (Output_section *)0x0) {\n        if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n        ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;\n      if (**(int **)(parameters->target_ + 4) == 0x20) {\n        Output_section::set_entsize((Output_section *)aVar11.od,4);\n      }\n      if (pOVar4 != (Output_data_dynamic *)0x0) {\n        local_24 = 0x6ffffef5;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        local_20 = 0;\n        local_28 = (Output_data *)0x0;\n        local_2c.od = aVar11.od;\n        if (iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage) {\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }\n        else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }\n      }\n    }\n    bVar22 = parameters->options_ == (General_options *)0x0;\n    if (bVar22) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    pbVar12 = (byte *)(parameters->options_->hash_style_).value;\n  }\n  else {\n    iVar15 = 5;\n    pbVar19 = pbVar12;\n    pbVar21 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar19 < *pbVar21;\n      bVar22 = *pbVar19 == *pbVar21;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000a1d90;\n  }\n  bVar24 = false;\n  iVar15 = 5;\n  pbVar19 = pbVar12;\n  pbVar21 = &DAT_00280703;\n  do {\n    if (iVar15 == 0) break;\n    iVar15 = iVar15 + -1;\n    bVar24 = *pbVar19 < *pbVar21;\n    bVar22 = *pbVar19 == *pbVar21;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n  } while (bVar22);\n  bVar23 = false;\n  bVar22 = (!bVar24 && !bVar22) == bVar24;\n  if (!bVar22) {\n    iVar15 = 5;\n    pbVar19 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar12 < *pbVar19;\n      bVar22 = *pbVar12 == *pbVar19;\n      pbVar12 = pbVar12 + (uint)bVar25 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) != bVar23) {\n      return;\n    }\n  }\n  Dynobj::create_elf_hash_table(pdynamic_symbols,index + forced_local_count,&phash_1,&hashlen_1);\n  aVar11.od = &choose_output_section\n                         (this,(Relobj *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data;\n  pOVar8 = (Output_section_data *)operator_new(0x34);\n  bVar25 = (pOVar8->super_Output_data).field_0x1c;\n  *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n  *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n  *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n  pOVar8->output_section_ = (Output_section *)0x0;\n  (pOVar8->super_Output_data).field_0x1c = bVar25 & 0xe0 | 10;\n  *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n  *(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen_1;\n  (pOVar8->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n  *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n  pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash_1;\n  *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n  *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";\n  if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n    if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n      }\n      ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n    }\n    if (parameters->target_ == (Target *)0x0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    iVar15 = *(int *)(*(int *)(parameters->target_ + 4) + 0x5c);\n    iVar13 = iVar15 + 7;\n    if (-1 < iVar15) {\n      iVar13 = iVar15;\n    }\n    Output_section::set_entsize((Output_section *)aVar11.od,CONCAT44(iVar13 >> 0x1f,iVar13 >> 3));\n  }\n  if (pOVar4 != (Output_data_dynamic *)0x0) {\n    local_24 = 4;\n    iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_finish;\n    local_20 = 0;\n    local_28 = (Output_data *)0x0;\n    if (iVar16._M_current ==\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage) {\n      local_2c.od = aVar11.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n      (iVar16._M_current)->od2 = (Output_data *)0x0;\n      (iVar16._M_current)->tag_ = DT_HASH;\n      (iVar16._M_current)->offset_ = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;\n    }\n  }\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Layout::create_dynamic_symtab\n          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,Output_section **pdynstr,\n          uint *plocal_dynamic_count,uint *pforced_local_dynamic_count,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *pdynamic_symbols,\n          Versions *pversions)\n\n{\n  undefined1 *puVar1;\n  byte bVar2;\n  Relobj *pRVar3;\n  Output_data_dynamic *pOVar4;\n  anon_union_4_4_94c5dad9_for_u_ *paVar5;\n  Output_segment *this_00;\n  pointer ppOVar6;\n  uint uVar7;\n  anon_union_4_4_94c5dad9_for_u_ this_01;\n  Output_section_data *pOVar8;\n  anon_union_4_4_94c5dad9_for_u_ *paVar9;\n  uint uVar10;\n  anon_union_4_4_94c5dad9_for_u_ aVar11;\n  iterator __position;\n  byte *pbVar12;\n  int iVar13;\n  Output_section *pOVar14;\n  Output_symtab_xindex *posd;\n  int iVar15;\n  iterator iVar16;\n  uint index;\n  pointer ppOVar17;\n  uint uVar18;\n  byte *pbVar19;\n  pointer ppRVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  Got_offset_list *local_5c;\n  Output_section *local_58;\n  uint forced_local_count;\n  uchar *phash;\n  uint hashlen;\n  uchar *phash_1;\n  uint hashlen_1;\n  anon_union_4_4_94c5dad9_for_u_ local_2c;\n  Output_data *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  index = 1;\n  uStack_14 = 0xa171e;\n  ppOVar6 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if (ppOVar6 !=\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 (pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0) {\n        if (index == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        pOVar14->dynsym_index_ = index;\n        ppOVar6 = ppOVar6 + 1;\n        index = index + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6) goto LAB_000a177e;\n      }\n      pOVar14->dynsym_index_ = 0xffffffff;\n      ppOVar6 = ppOVar6 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar6);\n  }\nLAB_000a177e:\n  ppRVar20 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n  if (ppRVar20 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n    do {\n      pRVar3 = *ppRVar20;\n      ppRVar20 = ppRVar20 + 1;\n      index = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index);\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar20);\n  }\n  forced_local_count = 0;\n  uVar7 = Symbol_table::set_dynsym_indexes\n                    (symtab,index,&forced_local_count,pdynamic_symbols,&this->dynpool_,pversions);\n  *plocal_dynamic_count = index;\n  *pforced_local_dynamic_count = forced_local_count;\n  if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;\n  iVar15 = **(int **)(parameters->target_ + 4);\n  if (iVar15 == 0x20) {\n    local_5c = (Got_offset_list *)0x4;\n    local_58 = (Output_section *)0x10;\n  }\n  else {\n    if (iVar15 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab");\n    }\n    local_5c = (Got_offset_list *)&DAT_00000008;\n    local_58 = (Output_section *)0x18;\n  }\n  this_01.od = &choose_output_section\n                          (this,(Relobj *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false\n                           ,false)->super_Output_data;\n  if ((Output_section *)this_01.val != (Output_section *)0x0) {\n    pOVar8 = (Output_section_data *)operator_new(0x30);\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    *(uint *)&(pOVar8->super_Output_data).data_size_ = (int)local_58 * uVar7;\n    bVar2 = (pOVar8->super_Output_data).field_0x1c;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00389d98;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** dynsym";\n    Output_section::add_output_section_data((Output_section *)this_01.od,pOVar8);\n    if (((*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||\n        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)) ||\n       ((forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(this_01.val + 0x4c) = forced_local_count + index;\n    Output_section::set_entsize((Output_section *)this_01.od,(longlong)(int)local_58);\n    ((this_01.sym)->got_offsets_).got_next_ = local_5c;\n    *(undefined4 *)(this_01.val + 0x28) = 0;\n    this->dynsym_section_ = (Output_section *)this_01;\n  }\n  pOVar4 = this->dynamic_data_;\n  if (pOVar4 != (Output_data_dynamic *)0x0) {\n    paVar5 = &((pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish)->u_;\n    local_24 = 6;\n    iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_end_of_storage;\n    local_20 = 0;\n    local_28 = (Output_data *)0x0;\n    if (paVar5 == &(iVar16._M_current)->u_) {\n      local_2c.od = this_01.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n      paVar9 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n    }\n    else {\n      paVar5->sym = (Symbol *)this_01;\n      paVar9 = paVar5 + 4;\n      paVar5[1].val = 0;\n      paVar5[2].val = DT_SYMTAB;\n      paVar5[3].val = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c.val = (uint)local_58;\n    if (&(iVar16._M_current)->u_ == paVar9) {\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      paVar9->val = (uint)local_58;\n      paVar9[1].val = (uint)local_28;\n      paVar9[2].val = DT_SYMENT;\n      paVar9[3].val = 0xffffffff;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);\n    }\n  }\n  ppOVar17 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;\n  if (ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\n    uVar18 = 0;\n    do {\n      this_00 = *ppOVar17;\n      ppOVar17 = ppOVar17 + 1;\n      uVar10 = Output_segment::output_section_count(this_00);\n      uVar18 = uVar18 + uVar10;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar17);\n    if ((0xfeff < uVar18) &&\n       (pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false), pOVar14 != (Output_section *)0x0)) {\n      posd = (Output_symtab_xindex *)operator_new(0x38);\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0;\n      *(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_ = uVar7 << 2;\n      bVar2 = (posd->super_Output_section_data).super_Output_data.field_0x1c;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&(posd->super_Output_section_data).addralign_ = 4;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0;\n      (posd->super_Output_section_data).super_Output_data.field_0x1c = bVar2 & 0xe0 | 10;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =\n           0xffffffff;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00383db4;\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->dynsym_xindex_ = posd;\n      Output_section::add_output_section_data(pOVar14,(Output_section_data *)posd);\n      if ((pOVar14->link_ != 0) ||\n         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))) goto LAB_000a21c1;\n      *(undefined4 *)&pOVar14->addralign_ = 4;\n      *(undefined4 *)((int)&pOVar14->addralign_ + 4) = 0;\n      pOVar14->link_section_ = (Output_data *)this_01;\n      Output_section::set_entsize(pOVar14,4);\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }\n  }\n  aVar11.od = &choose_output_section\n                         (this,(Relobj *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data;\n  *pdynstr = (Output_section *)aVar11;\n  if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n    pOVar8 = (Output_section_data *)operator_new(0x30);\n    puVar1 = &(pOVar8->super_Output_data).field_0x1c;\n    *puVar1 = *puVar1 & 0xe0;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)&this->dynpool_;\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar8->addralign_ = 1;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00383cdc;\n    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n    if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(this_01.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      ((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od = (Output_data *)aVar11;\n    }\n    pOVar14 = this->dynamic_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      if (((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||\n         ((pOVar14->field_0x90 & 8) != 0)) goto LAB_000a21c1;\n      pOVar14->link_section_ = (Output_data *)aVar11;\n    }\n    if (pOVar4 != (Output_data_dynamic *)0x0) {\n      paVar5 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (paVar5 == &(iVar16._M_current)->u_) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        __position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        paVar5->od = (Output_data *)aVar11;\n        __position._M_current = (Dynamic_entry *)(paVar5 + 4);\n        paVar5[1].val = 0;\n        paVar5[2].val = DT_STRTAB;\n        paVar5[3].val = 0;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = (Output_data *)0x0;\n      if (__position._M_current == iVar16._M_current) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);\n      }\n      else {\n        ((__position._M_current)->u_).od = (Output_data *)aVar11;\n        (__position._M_current)->od2 = (Output_data *)0x0;\n        (__position._M_current)->tag_ = DT_STRSZ;\n        (__position._M_current)->offset_ = 0xfffffffe;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        local_2c.od = aVar11.od;\n      }\n    }\n  }\n  bVar22 = false;\n  bVar24 = parameters->options_ == (General_options *)0x0;\n  if (bVar24) goto LAB_000a21dc;\n  pbVar12 = (byte *)(parameters->options_->hash_style_).value;\n  iVar15 = 4;\n  pbVar19 = pbVar12;\n  pbVar21 = &DAT_002806f5;\n  do {\n    if (iVar15 == 0) break;\n    iVar15 = iVar15 + -1;\n    bVar22 = *pbVar19 < *pbVar21;\n    bVar24 = *pbVar19 == *pbVar21;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar24) == bVar22;\n  if (bVar22) {\nLAB_000a1d90:\n    Dynobj::create_gnu_hash_table(pdynamic_symbols,forced_local_count + index,&phash,&hashlen);\n    aVar11.od = &choose_output_section\n                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)->super_Output_data;\n    pOVar8 = (Output_section_data *)operator_new(0x34);\n    bVar2 = (pOVar8->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    *(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";\n    if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n      Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n      if ((Output_section *)this_01.val != (Output_section *)0x0) {\n        if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n        ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;\n      if (**(int **)(parameters->target_ + 4) == 0x20) {\n        Output_section::set_entsize((Output_section *)aVar11.od,4);\n      }\n      if (pOVar4 != (Output_data_dynamic *)0x0) {\n        local_24 = 0x6ffffef5;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        local_20 = 0;\n        local_28 = (Output_data *)0x0;\n        local_2c.od = aVar11.od;\n        if (iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage) {\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }\n        else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }\n      }\n    }\n    bVar22 = parameters->options_ == (General_options *)0x0;\n    if (bVar22) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    pbVar12 = (byte *)(parameters->options_->hash_style_).value;\n  }\n  else {\n    iVar15 = 5;\n    pbVar19 = pbVar12;\n    pbVar21 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar19 < *pbVar21;\n      bVar22 = *pbVar19 == *pbVar21;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000a1d90;\n  }\n  bVar24 = false;\n  iVar15 = 5;\n  pbVar19 = pbVar12;\n  pbVar21 = &DAT_00280703;\n  do {\n    if (iVar15 == 0) break;\n    iVar15 = iVar15 + -1;\n    bVar24 = *pbVar19 < *pbVar21;\n    bVar22 = *pbVar19 == *pbVar21;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n  } while (bVar22);\n  bVar23 = false;\n  bVar22 = (!bVar24 && !bVar22) == bVar24;\n  if (!bVar22) {\n    iVar15 = 5;\n    pbVar19 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar12 < *pbVar19;\n      bVar22 = *pbVar12 == *pbVar19;\n      pbVar12 = pbVar12 + (uint)bVar25 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) != bVar23) {\n      return;\n    }\n  }\n  Dynobj::create_elf_hash_table(pdynamic_symbols,index + forced_local_count,&phash_1,&hashlen_1);\n  aVar11.od = &choose_output_section\n                         (this,(Relobj *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data;\n  pOVar8 = (Output_section_data *)operator_new(0x34);\n  bVar25 = (pOVar8->super_Output_data).field_0x1c;\n  *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n  *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n  *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n  pOVar8->output_section_ = (Output_section *)0x0;\n  (pOVar8->super_Output_data).field_0x1c = bVar25 & 0xe0 | 10;\n  *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n  *(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen_1;\n  (pOVar8->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n  *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n  pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash_1;\n  *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n  *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";\n  if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n    if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n      }\n      ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n    }\n    if (parameters->target_ == (Target *)0x0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    iVar15 = *(int *)(*(int *)(parameters->target_ + 4) + 0x5c);\n    iVar13 = iVar15 + 7;\n    if (-1 < iVar15) {\n      iVar13 = iVar15;\n    }\n    Output_section::set_entsize((Output_section *)aVar11.od,CONCAT44(iVar13 >> 0x1f,iVar13 >> 3));\n  }\n  if (pOVar4 != (Output_data_dynamic *)0x0) {\n    local_24 = 4;\n    iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_finish;\n    local_20 = 0;\n    local_28 = (Output_data *)0x0;\n    if (iVar16._M_current ==\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage) {\n      local_2c.od = aVar11.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n      (iVar16._M_current)->od2 = (Output_data *)0x0;\n      (iVar16._M_current)->tag_ = DT_HASH;\n      (iVar16._M_current)->offset_ = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "create_dynamic_symtab\n          (Layout *this,Input_objects *input_objects,Symbol_table *symtab,Output_section **pdynstr,\n          uint *plocal_dynamic_count,uint *pforced_local_dynamic_count,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *pdynamic_symbols,\n          Versions *pversions)" identifier (parameter_list "(Layout *this,Input_objects *input_objects,Symbol_table *symtab,Output_section **pdynstr,\n          uint *plocal_dynamic_count,uint *pforced_local_dynamic_count,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *pdynamic_symbols,\n          Versions *pversions)" ( (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 "Output_section **pdynstr" type_identifier (pointer_declarator "**pdynstr" * (pointer_declarator "*pdynstr" * identifier))) , (parameter_declaration "uint *plocal_dynamic_count" type_identifier (pointer_declarator "*plocal_dynamic_count" * identifier)) , (parameter_declaration "uint *pforced_local_dynamic_count" type_identifier (pointer_declarator "*pforced_local_dynamic_count" * identifier)) , (parameter_declaration "vector<gold::Symbol*" type_identifier (ERROR "<gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Symbol*>_> *pdynamic_symbols" type_identifier (ERROR "::allocator<gold::Symbol*>_>" : : identifier < identifier : : identifier * > identifier >) (pointer_declarator "*pdynamic_symbols" * identifier)) , (parameter_declaration "Versions *pversions" type_identifier (pointer_declarator "*pversions" * identifier)) ))) (compound_statement "{\n  undefined1 *puVar1;\n  byte bVar2;\n  Relobj *pRVar3;\n  Output_data_dynamic *pOVar4;\n  anon_union_4_4_94c5dad9_for_u_ *paVar5;\n  Output_segment *this_00;\n  pointer ppOVar6;\n  uint uVar7;\n  anon_union_4_4_94c5dad9_for_u_ this_01;\n  Output_section_data *pOVar8;\n  anon_union_4_4_94c5dad9_for_u_ *paVar9;\n  uint uVar10;\n  anon_union_4_4_94c5dad9_for_u_ aVar11;\n  iterator __position;\n  byte *pbVar12;\n  int iVar13;\n  Output_section *pOVar14;\n  Output_symtab_xindex *posd;\n  int iVar15;\n  iterator iVar16;\n  uint index;\n  pointer ppOVar17;\n  uint uVar18;\n  byte *pbVar19;\n  pointer ppRVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  Got_offset_list *local_5c;\n  Output_section *local_58;\n  uint forced_local_count;\n  uchar *phash;\n  uint hashlen;\n  uchar *phash_1;\n  uint hashlen_1;\n  anon_union_4_4_94c5dad9_for_u_ local_2c;\n  Output_data *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  index = 1;\n  uStack_14 = 0xa171e;\n  ppOVar6 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if (ppOVar6 !=\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 (pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0) {\n        if (index == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        pOVar14->dynsym_index_ = index;\n        ppOVar6 = ppOVar6 + 1;\n        index = index + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6) goto LAB_000a177e;\n      }\n      pOVar14->dynsym_index_ = 0xffffffff;\n      ppOVar6 = ppOVar6 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar6);\n  }\nLAB_000a177e:\n  ppRVar20 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n  if (ppRVar20 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n    do {\n      pRVar3 = *ppRVar20;\n      ppRVar20 = ppRVar20 + 1;\n      index = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index);\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar20);\n  }\n  forced_local_count = 0;\n  uVar7 = Symbol_table::set_dynsym_indexes\n                    (symtab,index,&forced_local_count,pdynamic_symbols,&this->dynpool_,pversions);\n  *plocal_dynamic_count = index;\n  *pforced_local_dynamic_count = forced_local_count;\n  if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;\n  iVar15 = **(int **)(parameters->target_ + 4);\n  if (iVar15 == 0x20) {\n    local_5c = (Got_offset_list *)0x4;\n    local_58 = (Output_section *)0x10;\n  }\n  else {\n    if (iVar15 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab");\n    }\n    local_5c = (Got_offset_list *)&DAT_00000008;\n    local_58 = (Output_section *)0x18;\n  }\n  this_01.od = &choose_output_section\n                          (this,(Relobj *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false\n                           ,false)->super_Output_data;\n  if ((Output_section *)this_01.val != (Output_section *)0x0) {\n    pOVar8 = (Output_section_data *)operator_new(0x30);\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    *(uint *)&(pOVar8->super_Output_data).data_size_ = (int)local_58 * uVar7;\n    bVar2 = (pOVar8->super_Output_data).field_0x1c;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00389d98;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** dynsym";\n    Output_section::add_output_section_data((Output_section *)this_01.od,pOVar8);\n    if (((*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||\n        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)) ||\n       ((forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(this_01.val + 0x4c) = forced_local_count + index;\n    Output_section::set_entsize((Output_section *)this_01.od,(longlong)(int)local_58);\n    ((this_01.sym)->got_offsets_).got_next_ = local_5c;\n    *(undefined4 *)(this_01.val + 0x28) = 0;\n    this->dynsym_section_ = (Output_section *)this_01;\n  }\n  pOVar4 = this->dynamic_data_;\n  if (pOVar4 != (Output_data_dynamic *)0x0) {\n    paVar5 = &((pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish)->u_;\n    local_24 = 6;\n    iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_end_of_storage;\n    local_20 = 0;\n    local_28 = (Output_data *)0x0;\n    if (paVar5 == &(iVar16._M_current)->u_) {\n      local_2c.od = this_01.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n      paVar9 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n    }\n    else {\n      paVar5->sym = (Symbol *)this_01;\n      paVar9 = paVar5 + 4;\n      paVar5[1].val = 0;\n      paVar5[2].val = DT_SYMTAB;\n      paVar5[3].val = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c.val = (uint)local_58;\n    if (&(iVar16._M_current)->u_ == paVar9) {\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      paVar9->val = (uint)local_58;\n      paVar9[1].val = (uint)local_28;\n      paVar9[2].val = DT_SYMENT;\n      paVar9[3].val = 0xffffffff;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);\n    }\n  }\n  ppOVar17 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;\n  if (ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\n    uVar18 = 0;\n    do {\n      this_00 = *ppOVar17;\n      ppOVar17 = ppOVar17 + 1;\n      uVar10 = Output_segment::output_section_count(this_00);\n      uVar18 = uVar18 + uVar10;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar17);\n    if ((0xfeff < uVar18) &&\n       (pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false), pOVar14 != (Output_section *)0x0)) {\n      posd = (Output_symtab_xindex *)operator_new(0x38);\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0;\n      *(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_ = uVar7 << 2;\n      bVar2 = (posd->super_Output_section_data).super_Output_data.field_0x1c;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&(posd->super_Output_section_data).addralign_ = 4;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0;\n      (posd->super_Output_section_data).super_Output_data.field_0x1c = bVar2 & 0xe0 | 10;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =\n           0xffffffff;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00383db4;\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->dynsym_xindex_ = posd;\n      Output_section::add_output_section_data(pOVar14,(Output_section_data *)posd);\n      if ((pOVar14->link_ != 0) ||\n         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))) goto LAB_000a21c1;\n      *(undefined4 *)&pOVar14->addralign_ = 4;\n      *(undefined4 *)((int)&pOVar14->addralign_ + 4) = 0;\n      pOVar14->link_section_ = (Output_data *)this_01;\n      Output_section::set_entsize(pOVar14,4);\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }\n  }\n  aVar11.od = &choose_output_section\n                         (this,(Relobj *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data;\n  *pdynstr = (Output_section *)aVar11;\n  if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n    pOVar8 = (Output_section_data *)operator_new(0x30);\n    puVar1 = &(pOVar8->super_Output_data).field_0x1c;\n    *puVar1 = *puVar1 & 0xe0;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)&this->dynpool_;\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar8->addralign_ = 1;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00383cdc;\n    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n    if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(this_01.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      ((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od = (Output_data *)aVar11;\n    }\n    pOVar14 = this->dynamic_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      if (((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||\n         ((pOVar14->field_0x90 & 8) != 0)) goto LAB_000a21c1;\n      pOVar14->link_section_ = (Output_data *)aVar11;\n    }\n    if (pOVar4 != (Output_data_dynamic *)0x0) {\n      paVar5 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (paVar5 == &(iVar16._M_current)->u_) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        __position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        paVar5->od = (Output_data *)aVar11;\n        __position._M_current = (Dynamic_entry *)(paVar5 + 4);\n        paVar5[1].val = 0;\n        paVar5[2].val = DT_STRTAB;\n        paVar5[3].val = 0;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = (Output_data *)0x0;\n      if (__position._M_current == iVar16._M_current) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);\n      }\n      else {\n        ((__position._M_current)->u_).od = (Output_data *)aVar11;\n        (__position._M_current)->od2 = (Output_data *)0x0;\n        (__position._M_current)->tag_ = DT_STRSZ;\n        (__position._M_current)->offset_ = 0xfffffffe;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        local_2c.od = aVar11.od;\n      }\n    }\n  }\n  bVar22 = false;\n  bVar24 = parameters->options_ == (General_options *)0x0;\n  if (bVar24) goto LAB_000a21dc;\n  pbVar12 = (byte *)(parameters->options_->hash_style_).value;\n  iVar15 = 4;\n  pbVar19 = pbVar12;\n  pbVar21 = &DAT_002806f5;\n  do {\n    if (iVar15 == 0) break;\n    iVar15 = iVar15 + -1;\n    bVar22 = *pbVar19 < *pbVar21;\n    bVar24 = *pbVar19 == *pbVar21;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar24) == bVar22;\n  if (bVar22) {\nLAB_000a1d90:\n    Dynobj::create_gnu_hash_table(pdynamic_symbols,forced_local_count + index,&phash,&hashlen);\n    aVar11.od = &choose_output_section\n                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)->super_Output_data;\n    pOVar8 = (Output_section_data *)operator_new(0x34);\n    bVar2 = (pOVar8->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    *(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";\n    if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n      Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n      if ((Output_section *)this_01.val != (Output_section *)0x0) {\n        if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n        ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;\n      if (**(int **)(parameters->target_ + 4) == 0x20) {\n        Output_section::set_entsize((Output_section *)aVar11.od,4);\n      }\n      if (pOVar4 != (Output_data_dynamic *)0x0) {\n        local_24 = 0x6ffffef5;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        local_20 = 0;\n        local_28 = (Output_data *)0x0;\n        local_2c.od = aVar11.od;\n        if (iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage) {\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }\n        else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }\n      }\n    }\n    bVar22 = parameters->options_ == (General_options *)0x0;\n    if (bVar22) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    pbVar12 = (byte *)(parameters->options_->hash_style_).value;\n  }\n  else {\n    iVar15 = 5;\n    pbVar19 = pbVar12;\n    pbVar21 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar19 < *pbVar21;\n      bVar22 = *pbVar19 == *pbVar21;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000a1d90;\n  }\n  bVar24 = false;\n  iVar15 = 5;\n  pbVar19 = pbVar12;\n  pbVar21 = &DAT_00280703;\n  do {\n    if (iVar15 == 0) break;\n    iVar15 = iVar15 + -1;\n    bVar24 = *pbVar19 < *pbVar21;\n    bVar22 = *pbVar19 == *pbVar21;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n  } while (bVar22);\n  bVar23 = false;\n  bVar22 = (!bVar24 && !bVar22) == bVar24;\n  if (!bVar22) {\n    iVar15 = 5;\n    pbVar19 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar12 < *pbVar19;\n      bVar22 = *pbVar12 == *pbVar19;\n      pbVar12 = pbVar12 + (uint)bVar25 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) != bVar23) {\n      return;\n    }\n  }\n  Dynobj::create_elf_hash_table(pdynamic_symbols,index + forced_local_count,&phash_1,&hashlen_1);\n  aVar11.od = &choose_output_section\n                         (this,(Relobj *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data;\n  pOVar8 = (Output_section_data *)operator_new(0x34);\n  bVar25 = (pOVar8->super_Output_data).field_0x1c;\n  *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n  *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n  *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n  pOVar8->output_section_ = (Output_section *)0x0;\n  (pOVar8->super_Output_data).field_0x1c = bVar25 & 0xe0 | 10;\n  *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n  *(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen_1;\n  (pOVar8->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n  *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n  pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash_1;\n  *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n  *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";\n  if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n    if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n      }\n      ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n    }\n    if (parameters->target_ == (Target *)0x0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    iVar15 = *(int *)(*(int *)(parameters->target_ + 4) + 0x5c);\n    iVar13 = iVar15 + 7;\n    if (-1 < iVar15) {\n      iVar13 = iVar15;\n    }\n    Output_section::set_entsize((Output_section *)aVar11.od,CONCAT44(iVar13 >> 0x1f,iVar13 >> 3));\n  }\n  if (pOVar4 != (Output_data_dynamic *)0x0) {\n    local_24 = 4;\n    iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_finish;\n    local_20 = 0;\n    local_28 = (Output_data *)0x0;\n    if (iVar16._M_current ==\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage) {\n      local_2c.od = aVar11.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n      (iVar16._M_current)->od2 = (Output_data *)0x0;\n      (iVar16._M_current)->tag_ = DT_HASH;\n      (iVar16._M_current)->offset_ = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;\n    }\n  }\n  return;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "Relobj *pRVar3;" type_identifier (pointer_declarator "*pRVar3" * identifier) ;) (declaration "Output_data_dynamic *pOVar4;" type_identifier (pointer_declarator "*pOVar4" * identifier) ;) (declaration "anon_union_4_4_94c5dad9_for_u_ *paVar5;" type_identifier (pointer_declarator "*paVar5" * identifier) ;) (declaration "Output_segment *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "pointer ppOVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "anon_union_4_4_94c5dad9_for_u_ this_01;" type_identifier identifier ;) (declaration "Output_section_data *pOVar8;" type_identifier (pointer_declarator "*pOVar8" * identifier) ;) (declaration "anon_union_4_4_94c5dad9_for_u_ *paVar9;" type_identifier (pointer_declarator "*paVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "anon_union_4_4_94c5dad9_for_u_ aVar11;" type_identifier identifier ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "Output_section *pOVar14;" type_identifier (pointer_declarator "*pOVar14" * identifier) ;) (declaration "Output_symtab_xindex *posd;" type_identifier (pointer_declarator "*posd" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "iterator iVar16;" type_identifier identifier ;) (declaration "uint index;" type_identifier identifier ;) (declaration "pointer ppOVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "pointer ppRVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "Got_offset_list *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "Output_section *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint forced_local_count;" type_identifier identifier ;) (declaration "uchar *phash;" type_identifier (pointer_declarator "*phash" * identifier) ;) (declaration "uint hashlen;" type_identifier identifier ;) (declaration "uchar *phash_1;" type_identifier (pointer_declarator "*phash_1" * identifier) ;) (declaration "uint hashlen_1;" type_identifier identifier ;) (declaration "anon_union_4_4_94c5dad9_for_u_ local_2c;" type_identifier identifier ;) (declaration "Output_data *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "index = 1;" (assignment_expression "index = 1" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xa171e;" (assignment_expression "uStack_14 = 0xa171e" identifier = number_literal) ;) (expression_statement "ppOVar6 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;" (field_expression "ppOVar6 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start" (field_expression "ppOVar6 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl" (binary_expression "ppOVar6 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar6 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar6 = (this->section_list_).\n            super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar6 = (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) ;) (if_statement "if (ppOVar6 !=\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 (pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0) {\n        if (index == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        pOVar14->dynsym_index_ = index;\n        ppOVar6 = ppOVar6 + 1;\n        index = index + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6) goto LAB_000a177e;\n      }\n      pOVar14->dynsym_index_ = 0xffffffff;\n      ppOVar6 = ppOVar6 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar6);\n  }" if (parenthesized_expression "(ppOVar6 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish)" ( (field_expression "ppOVar6 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish" (field_expression "ppOVar6 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "ppOVar6 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar6 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar6 !=\n      (this->section_list_).\n      super__Vector_base<gold::Output_section*,_std" (binary_expression "ppOVar6 !=\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 (pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0) {\n        if (index == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        pOVar14->dynsym_index_ = index;\n        ppOVar6 = ppOVar6 + 1;\n        index = index + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6) goto LAB_000a177e;\n      }\n      pOVar14->dynsym_index_ = 0xffffffff;\n      ppOVar6 = ppOVar6 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar6);\n  }" { (do_statement "do {\n      while (pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0) {\n        if (index == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        pOVar14->dynsym_index_ = index;\n        ppOVar6 = ppOVar6 + 1;\n        index = index + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6) goto LAB_000a177e;\n      }\n      pOVar14->dynsym_index_ = 0xffffffff;\n      ppOVar6 = ppOVar6 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar6);" do (compound_statement "{\n      while (pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0) {\n        if (index == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        pOVar14->dynsym_index_ = index;\n        ppOVar6 = ppOVar6 + 1;\n        index = index + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6) goto LAB_000a177e;\n      }\n      pOVar14->dynsym_index_ = 0xffffffff;\n      ppOVar6 = ppOVar6 + 1;\n    }" { (while_statement "while (pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0) {\n        if (index == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        pOVar14->dynsym_index_ = index;\n        ppOVar6 = ppOVar6 + 1;\n        index = index + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6) goto LAB_000a177e;\n      }" while (parenthesized_expression "(pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0)" ( (comma_expression "pOVar14 = *ppOVar6, (pOVar14->field_0x90 & 2) != 0" (assignment_expression "pOVar14 = *ppOVar6" identifier = (pointer_expression "*ppOVar6" * identifier)) , (binary_expression "(pOVar14->field_0x90 & 2) != 0" (parenthesized_expression "(pOVar14->field_0x90 & 2)" ( (binary_expression "pOVar14->field_0x90 & 2" (field_expression "pOVar14->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal)) )) (compound_statement "{\n        if (index == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        pOVar14->dynsym_index_ = index;\n        ppOVar6 = ppOVar6 + 1;\n        index = index + 1;\n        if ((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6) goto LAB_000a177e;\n      }" { (if_statement "if (index == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" if (parenthesized_expression "(index == 0)" ( (binary_expression "index == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index");" (call_expression "do_gold_unreachable("../../gold/output.h",0xda3,"set_dynsym_index")" identifier (argument_list "("../../gold/output.h",0xda3,"set_dynsym_index")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_dynsym_index"" " string_content ") ))) ;) })) (expression_statement "pOVar14->dynsym_index_ = index;" (assignment_expression "pOVar14->dynsym_index_ = index" (field_expression "pOVar14->dynsym_index_" identifier -> field_identifier) = identifier) ;) (expression_statement "ppOVar6 = ppOVar6 + 1;" (assignment_expression "ppOVar6 = ppOVar6 + 1" identifier = (binary_expression "ppOVar6 + 1" identifier + number_literal)) ;) (expression_statement "index = index + 1;" (assignment_expression "index = index + 1" identifier = (binary_expression "index + 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 == ppOVar6) goto LAB_000a177e;" if (parenthesized_expression "((this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6)" ( (binary_expression "(this->section_list_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish == ppOVar6" (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_000a177e;" goto statement_identifier ;)) })) (expression_statement "pOVar14->dynsym_index_ = 0xffffffff;" (assignment_expression "pOVar14->dynsym_index_ = 0xffffffff" (field_expression "pOVar14->dynsym_index_" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppOVar6 = ppOVar6 + 1;" (assignment_expression "ppOVar6 = ppOVar6 + 1" identifier = (binary_expression "ppOVar6 + 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 != ppOVar6)" ( (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar6" (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_000a177e:\n  ppRVar20 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;" statement_identifier : (ERROR "ppRVar20 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::" (comma_expression "ppRVar20 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std" (binary_expression "ppRVar20 = (input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*" (assignment_expression "ppRVar20 = (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) ;)) (if_statement "if (ppRVar20 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n    do {\n      pRVar3 = *ppRVar20;\n      ppRVar20 = ppRVar20 + 1;\n      index = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index);\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar20);\n  }" if (parenthesized_expression "(ppRVar20 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish)" ( (field_expression "ppRVar20 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish" (field_expression "ppRVar20 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "ppRVar20 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "ppRVar20 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "ppRVar20 !=\n      (input_objects->relobj_list_).\n      super__Vector_base<gold::Relobj*,_std" (binary_expression "ppRVar20 !=\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      pRVar3 = *ppRVar20;\n      ppRVar20 = ppRVar20 + 1;\n      index = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index);\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar20);\n  }" { (do_statement "do {\n      pRVar3 = *ppRVar20;\n      ppRVar20 = ppRVar20 + 1;\n      index = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index);\n    } while ((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar20);" do (compound_statement "{\n      pRVar3 = *ppRVar20;\n      ppRVar20 = ppRVar20 + 1;\n      index = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index);\n    }" { (expression_statement "pRVar3 = *ppRVar20;" (assignment_expression "pRVar3 = *ppRVar20" identifier = (pointer_expression "*ppRVar20" * identifier)) ;) (expression_statement "ppRVar20 = ppRVar20 + 1;" (assignment_expression "ppRVar20 = ppRVar20 + 1" identifier = (binary_expression "ppRVar20 + 1" identifier + number_literal)) ;) (expression_statement "index = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index);" (assignment_expression "index = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index)" identifier = (call_expression "(*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,index)" (parenthesized_expression "(*(pRVar3->super_Object)._vptr_Object[0x34])" ( (pointer_expression "*(pRVar3->super_Object)._vptr_Object[0x34]" * (subscript_expression "(pRVar3->super_Object)._vptr_Object[0x34]" (field_expression "(pRVar3->super_Object)._vptr_Object" (parenthesized_expression "(pRVar3->super_Object)" ( (field_expression "pRVar3->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pRVar3,index)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "((input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar20)" ( (binary_expression "(input_objects->relobj_list_).\n             super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish !=\n             ppRVar20" (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) )) ;) })) (expression_statement "forced_local_count = 0;" (assignment_expression "forced_local_count = 0" identifier = number_literal) ;) (ERROR "uVar7 = Symbol_table::" (assignment_expression "uVar7 = Symbol_table" identifier = identifier) : :) (expression_statement "set_dynsym_indexes\n                    (symtab,index,&forced_local_count,pdynamic_symbols,&this->dynpool_,pversions);" (call_expression "set_dynsym_indexes\n                    (symtab,index,&forced_local_count,pdynamic_symbols,&this->dynpool_,pversions)" identifier (argument_list "(symtab,index,&forced_local_count,pdynamic_symbols,&this->dynpool_,pversions)" ( identifier , identifier , (pointer_expression "&forced_local_count" & identifier) , identifier , (pointer_expression "&this->dynpool_" & (field_expression "this->dynpool_" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "*plocal_dynamic_count = index;" (assignment_expression "*plocal_dynamic_count = index" (pointer_expression "*plocal_dynamic_count" * identifier) = identifier) ;) (expression_statement "*pforced_local_dynamic_count = forced_local_count;" (assignment_expression "*pforced_local_dynamic_count = forced_local_count" (pointer_expression "*pforced_local_dynamic_count" * identifier) = identifier) ;) (if_statement "if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;" 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)) )) (goto_statement "goto LAB_000a2224;" goto statement_identifier ;)) (expression_statement "iVar15 = **(int **)(parameters->target_ + 4);" (assignment_expression "iVar15 = **(int **)(parameters->target_ + 4)" identifier = (pointer_expression "**(int **)(parameters->target_ + 4)" * (pointer_expression "*(int **)(parameters->target_ + 4)" * (cast_expression "(int **)(parameters->target_ + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(parameters->target_ + 4)" ( (binary_expression "parameters->target_ + 4" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) )))))) ;) (if_statement "if (iVar15 == 0x20) {\n    local_5c = (Got_offset_list *)0x4;\n    local_58 = (Output_section *)0x10;\n  }\n  else {\n    if (iVar15 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab");\n    }\n    local_5c = (Got_offset_list *)&DAT_00000008;\n    local_58 = (Output_section *)0x18;\n  }" if (parenthesized_expression "(iVar15 == 0x20)" ( (binary_expression "iVar15 == 0x20" identifier == number_literal) )) (compound_statement "{\n    local_5c = (Got_offset_list *)0x4;\n    local_58 = (Output_section *)0x10;\n  }" { (expression_statement "local_5c = (Got_offset_list *)0x4;" (assignment_expression "local_5c = (Got_offset_list *)0x4" identifier = (cast_expression "(Got_offset_list *)0x4" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = (Output_section *)0x10;" (assignment_expression "local_58 = (Output_section *)0x10" identifier = (cast_expression "(Output_section *)0x10" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (iVar15 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab");\n    }\n    local_5c = (Got_offset_list *)&DAT_00000008;\n    local_58 = (Output_section *)0x18;\n  }" else (compound_statement "{\n    if (iVar15 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab");\n    }\n    local_5c = (Got_offset_list *)&DAT_00000008;\n    local_58 = (Output_section *)0x18;\n  }" { (if_statement "if (iVar15 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab");\n    }" if (parenthesized_expression "(iVar15 != 0x40)" ( (binary_expression "iVar15 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x1232,"create_dynamic_symtab")" identifier (argument_list "("../../gold/layout.cc",0x1232,"create_dynamic_symtab")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_dynamic_symtab"" " string_content ") ))) ;) })) (expression_statement "local_5c = (Got_offset_list *)&DAT_00000008;" (assignment_expression "local_5c = (Got_offset_list *)&DAT_00000008" identifier = (cast_expression "(Got_offset_list *)&DAT_00000008" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) ;) (expression_statement "local_58 = (Output_section *)0x18;" (assignment_expression "local_58 = (Output_section *)0x18" identifier = (cast_expression "(Output_section *)0x18" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "this_01.od = &choose_output_section\n                          (this,(Relobj *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false\n                           ,false)->super_Output_data;" (assignment_expression "this_01.od = &choose_output_section\n                          (this,(Relobj *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false\n                           ,false)->super_Output_data" (field_expression "this_01.od" identifier . field_identifier) = (pointer_expression "&choose_output_section\n                          (this,(Relobj *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false\n                           ,false)->super_Output_data" & (field_expression "choose_output_section\n                          (this,(Relobj *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false\n                           ,false)->super_Output_data" (call_expression "choose_output_section\n                          (this,(Relobj *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false\n                           ,false)" identifier (argument_list "(this,(Relobj *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false\n                           ,false)" ( identifier , (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "".dynsym"" " string_content ") , number_literal , number_literal , false , identifier , false , false , false ))) -> field_identifier))) ;) (if_statement "if ((Output_section *)this_01.val != (Output_section *)0x0) {\n    pOVar8 = (Output_section_data *)operator_new(0x30);\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    *(uint *)&(pOVar8->super_Output_data).data_size_ = (int)local_58 * uVar7;\n    bVar2 = (pOVar8->super_Output_data).field_0x1c;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00389d98;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** dynsym";\n    Output_section::add_output_section_data((Output_section *)this_01.od,pOVar8);\n    if (((*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||\n        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)) ||\n       ((forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(this_01.val + 0x4c) = forced_local_count + index;\n    Output_section::set_entsize((Output_section *)this_01.od,(longlong)(int)local_58);\n    ((this_01.sym)->got_offsets_).got_next_ = local_5c;\n    *(undefined4 *)(this_01.val + 0x28) = 0;\n    this->dynsym_section_ = (Output_section *)this_01;\n  }" if (parenthesized_expression "((Output_section *)this_01.val != (Output_section *)0x0)" ( (binary_expression "(Output_section *)this_01.val != (Output_section *)0x0" (cast_expression "(Output_section *)this_01.val" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_01.val" identifier . field_identifier)) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pOVar8 = (Output_section_data *)operator_new(0x30);\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    *(uint *)&(pOVar8->super_Output_data).data_size_ = (int)local_58 * uVar7;\n    bVar2 = (pOVar8->super_Output_data).field_0x1c;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00389d98;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** dynsym";\n    Output_section::add_output_section_data((Output_section *)this_01.od,pOVar8);\n    if (((*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||\n        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)) ||\n       ((forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }\n    *(uint *)(this_01.val + 0x4c) = forced_local_count + index;\n    Output_section::set_entsize((Output_section *)this_01.od,(longlong)(int)local_58);\n    ((this_01.sym)->got_offsets_).got_next_ = local_5c;\n    *(undefined4 *)(this_01.val + 0x28) = 0;\n    this->dynsym_section_ = (Output_section *)this_01;\n  }" { (expression_statement "pOVar8 = (Output_section_data *)operator_new(0x30);" (assignment_expression "pOVar8 = (Output_section_data *)operator_new(0x30)" identifier = (cast_expression "(Output_section_data *)operator_new(0x30)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar8->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar8->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar8->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).address_" & (field_expression "(pOVar8->super_Output_data).address_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).address_" & (field_expression "(pOVar8->super_Output_data).address_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&(pOVar8->super_Output_data).data_size_ = (int)local_58 * uVar7;" (assignment_expression "*(uint *)&(pOVar8->super_Output_data).data_size_ = (int)local_58 * uVar7" (pointer_expression "*(uint *)&(pOVar8->super_Output_data).data_size_" * (cast_expression "(uint *)&(pOVar8->super_Output_data).data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).data_size_" & (field_expression "(pOVar8->super_Output_data).data_size_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "(int)local_58 * uVar7" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) ;) (expression_statement "bVar2 = (pOVar8->super_Output_data).field_0x1c;" (assignment_expression "bVar2 = (pOVar8->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar8->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pOVar8->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar8->output_section_ = (Output_section *)0x0" (field_expression "pOVar8->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(Got_offset_list **)&pOVar8->addralign_ = local_5c;" (assignment_expression "*(Got_offset_list **)&pOVar8->addralign_ = local_5c" (pointer_expression "*(Got_offset_list **)&pOVar8->addralign_" * (cast_expression "(Got_offset_list **)&pOVar8->addralign_" ( (type_descriptor "Got_offset_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar8->addralign_" & (field_expression "pOVar8->addralign_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar8->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar8->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar8->addralign_ + 4)" ( (binary_expression "(int)&pOVar8->addralign_ + 4" (cast_expression "(int)&pOVar8->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar8->addralign_" & (field_expression "pOVar8->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;" (assignment_expression "(pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10" (field_expression "(pOVar8->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar2 & 0xe0 | 10" (binary_expression "bVar2 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "(pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00389d98;" (assignment_expression "(pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_fixed_space_00389d98" (field_expression "(pOVar8->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_fixed_space_00389d98" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_fixed_space_00389d98" & identifier))) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).data_size_" & (field_expression "(pOVar8->super_Output_data).data_size_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar8->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar8->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).offset_" & (field_expression "(pOVar8->super_Output_data).offset_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).offset_" & (field_expression "(pOVar8->super_Output_data).offset_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** dynsym";" (assignment_expression "pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)"** dynsym"" (field_expression "pOVar8[1].super_Output_data._vptr_Output_data" (field_expression "pOVar8[1].super_Output_data" (subscript_expression "pOVar8[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)"** dynsym"" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (string_literal ""** dynsym"" " string_content "))) ;) (labeled_statement "Output_section::add_output_section_data((Output_section *)this_01.od,pOVar8);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data((Output_section *)this_01.od,pOVar8);" (call_expression "add_output_section_data((Output_section *)this_01.od,pOVar8)" identifier (argument_list "((Output_section *)this_01.od,pOVar8)" ( (cast_expression "(Output_section *)this_01.od" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_01.od" identifier . field_identifier)) , identifier ))) ;)) (if_statement "if (((*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||\n        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)) ||\n       ((forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n    }" if (parenthesized_expression "(((*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||\n        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)) ||\n       ((forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0))))" ( (binary_expression "((*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||\n        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)) ||\n       ((forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0)))" (parenthesized_expression "((*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||\n        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0))" ( (binary_expression "(*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0) ||\n        (*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)" (parenthesized_expression "(*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0)" ( (binary_expression "*(Output_section **)(this_01.val + 0x44) != (Output_section *)0x0" (pointer_expression "*(Output_section **)(this_01.val + 0x44)" * (cast_expression "(Output_section **)(this_01.val + 0x44)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this_01.val + 0x44)" ( (binary_expression "this_01.val + 0x44" (field_expression "this_01.val" identifier . field_identifier) + number_literal) )))) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0)" ( (binary_expression "*(Symbol **)(this_01.val + 0x48) != (Symbol *)0x0" (pointer_expression "*(Symbol **)(this_01.val + 0x48)" * (cast_expression "(Symbol **)(this_01.val + 0x48)" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this_01.val + 0x48)" ( (binary_expression "this_01.val + 0x48" (field_expression "this_01.val" identifier . field_identifier) + number_literal) )))) != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0)))" ( (parenthesized_expression "(forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0))" ( (binary_expression "forced_local_count + index != *(uint *)(this_01.val + 0x4c) &&\n        (*(uint *)(this_01.val + 0x4c) != 0)" (binary_expression "forced_local_count + index != *(uint *)(this_01.val + 0x4c)" (binary_expression "forced_local_count + index" identifier + identifier) != (pointer_expression "*(uint *)(this_01.val + 0x4c)" * (cast_expression "(uint *)(this_01.val + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_01.val + 0x4c)" ( (binary_expression "this_01.val + 0x4c" (field_expression "this_01.val" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(*(uint *)(this_01.val + 0x4c) != 0)" ( (binary_expression "*(uint *)(this_01.val + 0x4c) != 0" (pointer_expression "*(uint *)(this_01.val + 0x4c)" * (cast_expression "(uint *)(this_01.val + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_01.val + 0x4c)" ( (binary_expression "this_01.val + 0x4c" (field_expression "this_01.val" identifier . field_identifier) + number_literal) )))) != 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 "*(uint *)(this_01.val + 0x4c) = forced_local_count + index;" (assignment_expression "*(uint *)(this_01.val + 0x4c) = forced_local_count + index" (pointer_expression "*(uint *)(this_01.val + 0x4c)" * (cast_expression "(uint *)(this_01.val + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_01.val + 0x4c)" ( (binary_expression "this_01.val + 0x4c" (field_expression "this_01.val" identifier . field_identifier) + number_literal) )))) = (binary_expression "forced_local_count + index" identifier + identifier)) ;) (labeled_statement "Output_section::set_entsize((Output_section *)this_01.od,(longlong)(int)local_58);" statement_identifier : (ERROR ":" :) (expression_statement "set_entsize((Output_section *)this_01.od,(longlong)(int)local_58);" (call_expression "set_entsize((Output_section *)this_01.od,(longlong)(int)local_58)" identifier (argument_list "((Output_section *)this_01.od,(longlong)(int)local_58)" ( (cast_expression "(Output_section *)this_01.od" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_01.od" identifier . field_identifier)) , (cast_expression "(longlong)(int)local_58" ( (type_descriptor "longlong" type_identifier) ) (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;)) (expression_statement "((this_01.sym)->got_offsets_).got_next_ = local_5c;" (assignment_expression "((this_01.sym)->got_offsets_).got_next_ = local_5c" (field_expression "((this_01.sym)->got_offsets_).got_next_" (parenthesized_expression "((this_01.sym)->got_offsets_)" ( (field_expression "(this_01.sym)->got_offsets_" (parenthesized_expression "(this_01.sym)" ( (field_expression "this_01.sym" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)(this_01.val + 0x28) = 0;" (assignment_expression "*(undefined4 *)(this_01.val + 0x28) = 0" (pointer_expression "*(undefined4 *)(this_01.val + 0x28)" * (cast_expression "(undefined4 *)(this_01.val + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_01.val + 0x28)" ( (binary_expression "this_01.val + 0x28" (field_expression "this_01.val" identifier . field_identifier) + number_literal) )))) = number_literal) ;) (expression_statement "this->dynsym_section_ = (Output_section *)this_01;" (assignment_expression "this->dynsym_section_ = (Output_section *)this_01" (field_expression "this->dynsym_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)this_01" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pOVar4 = this->dynamic_data_;" (assignment_expression "pOVar4 = this->dynamic_data_" identifier = (field_expression "this->dynamic_data_" identifier -> field_identifier)) ;) (if_statement "if (pOVar4 != (Output_data_dynamic *)0x0) {\n    paVar5 = &((pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish)->u_;\n    local_24 = 6;\n    iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_end_of_storage;\n    local_20 = 0;\n    local_28 = (Output_data *)0x0;\n    if (paVar5 == &(iVar16._M_current)->u_) {\n      local_2c.od = this_01.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n      paVar9 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n    }\n    else {\n      paVar5->sym = (Symbol *)this_01;\n      paVar9 = paVar5 + 4;\n      paVar5[1].val = 0;\n      paVar5[2].val = DT_SYMTAB;\n      paVar5[3].val = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c.val = (uint)local_58;\n    if (&(iVar16._M_current)->u_ == paVar9) {\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      paVar9->val = (uint)local_58;\n      paVar9[1].val = (uint)local_28;\n      paVar9[2].val = DT_SYMENT;\n      paVar9[3].val = 0xffffffff;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);\n    }\n  }" if (parenthesized_expression "(pOVar4 != (Output_data_dynamic *)0x0)" ( (binary_expression "pOVar4 != (Output_data_dynamic *)0x0" identifier != (cast_expression "(Output_data_dynamic *)0x0" ( (type_descriptor "Output_data_dynamic *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    paVar5 = &((pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish)->u_;\n    local_24 = 6;\n    iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_end_of_storage;\n    local_20 = 0;\n    local_28 = (Output_data *)0x0;\n    if (paVar5 == &(iVar16._M_current)->u_) {\n      local_2c.od = this_01.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n      paVar9 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n    }\n    else {\n      paVar5->sym = (Symbol *)this_01;\n      paVar9 = paVar5 + 4;\n      paVar5[1].val = 0;\n      paVar5[2].val = DT_SYMTAB;\n      paVar5[3].val = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c.val = (uint)local_58;\n    if (&(iVar16._M_current)->u_ == paVar9) {\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      paVar9->val = (uint)local_58;\n      paVar9[1].val = (uint)local_28;\n      paVar9[2].val = DT_SYMENT;\n      paVar9[3].val = 0xffffffff;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);\n    }\n  }" { (expression_statement "paVar5 = &((pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish)->u_;" (assignment_expression "paVar5 = &((pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish)->u_" identifier = (pointer_expression "&((pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish)->u_" & (field_expression "((pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish)->u_" (parenthesized_expression "((pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish)" ( (ERROR "(pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::" (comma_expression "(pOVar4->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (binary_expression "(pOVar4->entries_).\n               super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n               super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Dynamic_entry>_>\n               ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n               ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) -> field_identifier))) ;) (expression_statement "local_24 = 6;" (assignment_expression "local_24 = 6" identifier = number_literal) ;) (ERROR "iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold" (field_expression "iVar16._M_current" identifier . field_identifier) = (binary_expression "(pOVar4->entries_).\n         super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n         super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n         ._M_impl._M_end_of_storage;" (field_expression "Dynamic_entry>_>\n         ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n         ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = (Output_data *)0x0;" (assignment_expression "local_28 = (Output_data *)0x0" identifier = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (paVar5 == &(iVar16._M_current)->u_) {\n      local_2c.od = this_01.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n      paVar9 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n    }\n    else {\n      paVar5->sym = (Symbol *)this_01;\n      paVar9 = paVar5 + 4;\n      paVar5[1].val = 0;\n      paVar5[2].val = DT_SYMTAB;\n      paVar5[3].val = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;\n    }" if (parenthesized_expression "(paVar5 == &(iVar16._M_current)->u_)" ( (binary_expression "paVar5 == &(iVar16._M_current)->u_" identifier == (pointer_expression "&(iVar16._M_current)->u_" & (field_expression "(iVar16._M_current)->u_" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier))) )) (compound_statement "{\n      local_2c.od = this_01.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n      paVar9 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n    }" { (expression_statement "local_2c.od = this_01.od;" (assignment_expression "local_2c.od = this_01.od" (field_expression "local_2c.od" identifier . field_identifier) = (field_expression "this_01.od" identifier . field_identifier)) ;) (labeled_statement "std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::\n      vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" (binary_expression "Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c)" ( (comma_expression "&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c" (pointer_expression "&pOVar4->entries_" & (field_expression "pOVar4->entries_" identifier -> field_identifier)) , (comma_expression "iVar16,(Dynamic_entry *)&local_2c" identifier , (cast_expression "(Dynamic_entry *)&local_2c" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier)))) ))) ;))))) (expression_statement "paVar9 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;" (assignment_expression "paVar9 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_" identifier = (pointer_expression "&((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_" & (field_expression "((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_" (parenthesized_expression "((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)" ( (ERROR "(pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::" (comma_expression "(pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (binary_expression "(pOVar4->entries_).\n                 super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n                 super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Dynamic_entry>_>\n                 ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n                 ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) -> field_identifier))) ;) (ERROR "iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold" (field_expression "iVar16._M_current" identifier . field_identifier) = (binary_expression "(pOVar4->entries_).\n           super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n           super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;" (field_expression "Dynamic_entry>_>\n           ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n           ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) }) (else_clause "else {\n      paVar5->sym = (Symbol *)this_01;\n      paVar9 = paVar5 + 4;\n      paVar5[1].val = 0;\n      paVar5[2].val = DT_SYMTAB;\n      paVar5[3].val = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;\n    }" else (compound_statement "{\n      paVar5->sym = (Symbol *)this_01;\n      paVar9 = paVar5 + 4;\n      paVar5[1].val = 0;\n      paVar5[2].val = DT_SYMTAB;\n      paVar5[3].val = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;\n    }" { (expression_statement "paVar5->sym = (Symbol *)this_01;" (assignment_expression "paVar5->sym = (Symbol *)this_01" (field_expression "paVar5->sym" identifier -> field_identifier) = (cast_expression "(Symbol *)this_01" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "paVar9 = paVar5 + 4;" (assignment_expression "paVar9 = paVar5 + 4" identifier = (binary_expression "paVar5 + 4" identifier + number_literal)) ;) (expression_statement "paVar5[1].val = 0;" (assignment_expression "paVar5[1].val = 0" (field_expression "paVar5[1].val" (subscript_expression "paVar5[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "paVar5[2].val = DT_SYMTAB;" (assignment_expression "paVar5[2].val = DT_SYMTAB" (field_expression "paVar5[2].val" (subscript_expression "paVar5[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "paVar5[3].val = 0;" (assignment_expression "paVar5[3].val = 0" (field_expression "paVar5[3].val" (subscript_expression "paVar5[3]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (ERROR "(pOVar4->entries_).\n      super__Vector_base<gold::" (binary_expression "(pOVar4->entries_).\n      super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n      super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9;" (assignment_expression "Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)paVar9" (field_expression "Dynamic_entry>_>\n      ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n      ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar9" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;))) }))) (expression_statement "local_24 = 0xb;" (assignment_expression "local_24 = 0xb" identifier = number_literal) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c.val = (uint)local_58;" (assignment_expression "local_2c.val = (uint)local_58" (field_expression "local_2c.val" identifier . field_identifier) = (cast_expression "(uint)local_58" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (&(iVar16._M_current)->u_ == paVar9) {\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      paVar9->val = (uint)local_58;\n      paVar9[1].val = (uint)local_28;\n      paVar9[2].val = DT_SYMENT;\n      paVar9[3].val = 0xffffffff;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);\n    }" if (parenthesized_expression "(&(iVar16._M_current)->u_ == paVar9)" ( (binary_expression "&(iVar16._M_current)->u_ == paVar9" (pointer_expression "&(iVar16._M_current)->u_" & (field_expression "(iVar16._M_current)->u_" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier)) == identifier) )) (compound_statement "{\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }" { (labeled_statement "std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::\n      vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" (binary_expression "Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c)" ( (comma_expression "&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c" (pointer_expression "&pOVar4->entries_" & (field_expression "pOVar4->entries_" identifier -> field_identifier)) , (comma_expression "iVar16,(Dynamic_entry *)&local_2c" identifier , (cast_expression "(Dynamic_entry *)&local_2c" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier)))) ))) ;))))) }) (else_clause "else {\n      paVar9->val = (uint)local_58;\n      paVar9[1].val = (uint)local_28;\n      paVar9[2].val = DT_SYMENT;\n      paVar9[3].val = 0xffffffff;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);\n    }" else (compound_statement "{\n      paVar9->val = (uint)local_58;\n      paVar9[1].val = (uint)local_28;\n      paVar9[2].val = DT_SYMENT;\n      paVar9[3].val = 0xffffffff;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);\n    }" { (expression_statement "paVar9->val = (uint)local_58;" (assignment_expression "paVar9->val = (uint)local_58" (field_expression "paVar9->val" identifier -> field_identifier) = (cast_expression "(uint)local_58" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "paVar9[1].val = (uint)local_28;" (assignment_expression "paVar9[1].val = (uint)local_28" (field_expression "paVar9[1].val" (subscript_expression "paVar9[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(uint)local_28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "paVar9[2].val = DT_SYMENT;" (assignment_expression "paVar9[2].val = DT_SYMENT" (field_expression "paVar9[2].val" (subscript_expression "paVar9[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "paVar9[3].val = 0xffffffff;" (assignment_expression "paVar9[3].val = 0xffffffff" (field_expression "paVar9[3].val" (subscript_expression "paVar9[3]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (ERROR "(pOVar4->entries_).\n      super__Vector_base<gold::" (binary_expression "(pOVar4->entries_).\n      super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n      super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4);" (assignment_expression "Dynamic_entry>_>\n      ._M_impl._M_finish = (pointer)(paVar9 + 4)" (field_expression "Dynamic_entry>_>\n      ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n      ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (call_expression "(pointer)(paVar9 + 4)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(paVar9 + 4)" ( (binary_expression "paVar9 + 4" identifier + number_literal) )))) ;))) }))) })) (expression_statement "ppOVar17 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;" (field_expression "ppOVar17 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start" (field_expression "ppOVar17 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl" (binary_expression "ppOVar17 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "ppOVar17 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "ppOVar17 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std" (assignment_expression "ppOVar17 = (this->segment_list_).\n             super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n             super__Vector_base<gold" (field_expression "(this->segment_list_).\n             super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\n    uVar18 = 0;\n    do {\n      this_00 = *ppOVar17;\n      ppOVar17 = ppOVar17 + 1;\n      uVar10 = Output_segment::output_section_count(this_00);\n      uVar18 = uVar18 + uVar10;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar17);\n    if ((0xfeff < uVar18) &&\n       (pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false), pOVar14 != (Output_section *)0x0)) {\n      posd = (Output_symtab_xindex *)operator_new(0x38);\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0;\n      *(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_ = uVar7 << 2;\n      bVar2 = (posd->super_Output_section_data).super_Output_data.field_0x1c;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&(posd->super_Output_section_data).addralign_ = 4;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0;\n      (posd->super_Output_section_data).super_Output_data.field_0x1c = bVar2 & 0xe0 | 10;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =\n           0xffffffff;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00383db4;\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->dynsym_xindex_ = posd;\n      Output_section::add_output_section_data(pOVar14,(Output_section_data *)posd);\n      if ((pOVar14->link_ != 0) ||\n         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))) goto LAB_000a21c1;\n      *(undefined4 *)&pOVar14->addralign_ = 4;\n      *(undefined4 *)((int)&pOVar14->addralign_ + 4) = 0;\n      pOVar14->link_section_ = (Output_data *)this_01;\n      Output_section::set_entsize(pOVar14,4);\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }\n  }" if (parenthesized_expression "(ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish)" ( (field_expression "ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish" (field_expression "ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl" (binary_expression "ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std" (binary_expression "ppOVar17 !=\n      (this->segment_list_).\n      super__Vector_base<gold" identifier != (binary_expression "(this->segment_list_).\n      super__Vector_base<gold" (field_expression "(this->segment_list_).\n      super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    uVar18 = 0;\n    do {\n      this_00 = *ppOVar17;\n      ppOVar17 = ppOVar17 + 1;\n      uVar10 = Output_segment::output_section_count(this_00);\n      uVar18 = uVar18 + uVar10;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar17);\n    if ((0xfeff < uVar18) &&\n       (pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false), pOVar14 != (Output_section *)0x0)) {\n      posd = (Output_symtab_xindex *)operator_new(0x38);\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0;\n      *(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_ = uVar7 << 2;\n      bVar2 = (posd->super_Output_section_data).super_Output_data.field_0x1c;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&(posd->super_Output_section_data).addralign_ = 4;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0;\n      (posd->super_Output_section_data).super_Output_data.field_0x1c = bVar2 & 0xe0 | 10;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =\n           0xffffffff;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00383db4;\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->dynsym_xindex_ = posd;\n      Output_section::add_output_section_data(pOVar14,(Output_section_data *)posd);\n      if ((pOVar14->link_ != 0) ||\n         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))) goto LAB_000a21c1;\n      *(undefined4 *)&pOVar14->addralign_ = 4;\n      *(undefined4 *)((int)&pOVar14->addralign_ + 4) = 0;\n      pOVar14->link_section_ = (Output_data *)this_01;\n      Output_section::set_entsize(pOVar14,4);\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }\n  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      this_00 = *ppOVar17;\n      ppOVar17 = ppOVar17 + 1;\n      uVar10 = Output_segment::output_section_count(this_00);\n      uVar18 = uVar18 + uVar10;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar17);" do (compound_statement "{\n      this_00 = *ppOVar17;\n      ppOVar17 = ppOVar17 + 1;\n      uVar10 = Output_segment::output_section_count(this_00);\n      uVar18 = uVar18 + uVar10;\n    }" { (expression_statement "this_00 = *ppOVar17;" (assignment_expression "this_00 = *ppOVar17" identifier = (pointer_expression "*ppOVar17" * identifier)) ;) (expression_statement "ppOVar17 = ppOVar17 + 1;" (assignment_expression "ppOVar17 = ppOVar17 + 1" identifier = (binary_expression "ppOVar17 + 1" identifier + number_literal)) ;) (ERROR "uVar10 = Output_segment::" (assignment_expression "uVar10 = Output_segment" identifier = identifier) : :) (expression_statement "output_section_count(this_00);" (call_expression "output_section_count(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;) (expression_statement "uVar18 = uVar18 + uVar10;" (assignment_expression "uVar18 = uVar18 + uVar10" identifier = (binary_expression "uVar18 + uVar10" identifier + identifier)) ;) }) while (parenthesized_expression "((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar17)" ( (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar17" (field_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish" (field_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold" (field_expression "(this->segment_list_).\n             super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) (if_statement "if ((0xfeff < uVar18) &&\n       (pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false), pOVar14 != (Output_section *)0x0)) {\n      posd = (Output_symtab_xindex *)operator_new(0x38);\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0;\n      *(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_ = uVar7 << 2;\n      bVar2 = (posd->super_Output_section_data).super_Output_data.field_0x1c;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&(posd->super_Output_section_data).addralign_ = 4;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0;\n      (posd->super_Output_section_data).super_Output_data.field_0x1c = bVar2 & 0xe0 | 10;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =\n           0xffffffff;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00383db4;\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->dynsym_xindex_ = posd;\n      Output_section::add_output_section_data(pOVar14,(Output_section_data *)posd);\n      if ((pOVar14->link_ != 0) ||\n         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))) goto LAB_000a21c1;\n      *(undefined4 *)&pOVar14->addralign_ = 4;\n      *(undefined4 *)((int)&pOVar14->addralign_ + 4) = 0;\n      pOVar14->link_section_ = (Output_data *)this_01;\n      Output_section::set_entsize(pOVar14,4);\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }" if (parenthesized_expression "((0xfeff < uVar18) &&\n       (pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false), pOVar14 != (Output_section *)0x0))" ( (binary_expression "(0xfeff < uVar18) &&\n       (pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false), pOVar14 != (Output_section *)0x0)" (parenthesized_expression "(0xfeff < uVar18)" ( (binary_expression "0xfeff < uVar18" number_literal < identifier) )) && (parenthesized_expression "(pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false), pOVar14 != (Output_section *)0x0)" ( (comma_expression "pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false), pOVar14 != (Output_section *)0x0" (assignment_expression "pOVar14 = choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false)" identifier = (call_expression "choose_output_section\n                            (this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false)" identifier (argument_list "(this,(Relobj *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,\n                             false,false,false)" ( identifier , (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "".dynsym_shndx"" " string_content ") , number_literal , number_literal , false , identifier , false , false , false )))) , (binary_expression "pOVar14 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      posd = (Output_symtab_xindex *)operator_new(0x38);\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0;\n      *(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_ = uVar7 << 2;\n      bVar2 = (posd->super_Output_section_data).super_Output_data.field_0x1c;\n      (posd->super_Output_section_data).output_section_ = (Output_section *)0x0;\n      *(undefined4 *)&(posd->super_Output_section_data).addralign_ = 4;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0;\n      (posd->super_Output_section_data).super_Output_data.field_0x1c = bVar2 & 0xe0 | 10;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0;\n      *(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff;\n      *(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =\n           0xffffffff;\n      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00383db4;\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->dynsym_xindex_ = posd;\n      Output_section::add_output_section_data(pOVar14,(Output_section_data *)posd);\n      if ((pOVar14->link_ != 0) ||\n         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))) goto LAB_000a21c1;\n      *(undefined4 *)&pOVar14->addralign_ = 4;\n      *(undefined4 *)((int)&pOVar14->addralign_ + 4) = 0;\n      pOVar14->link_section_ = (Output_data *)this_01;\n      Output_section::set_entsize(pOVar14,4);\n      pOVar14->field_0x90 = pOVar14->field_0x90 | 0x10;\n      this->any_postprocessing_sections_ = true;\n    }" { (expression_statement "posd = (Output_symtab_xindex *)operator_new(0x38);" (assignment_expression "posd = (Output_symtab_xindex *)operator_new(0x38)" identifier = (cast_expression "(Output_symtab_xindex *)operator_new(0x38)" ( (type_descriptor "Output_symtab_xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x38)" identifier (argument_list "(0x38)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0;" (assignment_expression "*(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0" (pointer_expression "*(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_" * (cast_expression "(undefined4 *)&(posd->super_Output_section_data).super_Output_data.address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_section_data).super_Output_data.address_" & (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 "*(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4)" * (cast_expression "(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4)" ( (binary_expression "(int)&(posd->super_Output_section_data).super_Output_data.address_ + 4" (cast_expression "(int)&(posd->super_Output_section_data).super_Output_data.address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_section_data).super_Output_data.address_" & (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) )))) = number_literal) ;) (expression_statement "*(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_ = uVar7 << 2;" (assignment_expression "*(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_ = uVar7 << 2" (pointer_expression "*(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_" * (cast_expression "(uint *)&(posd->super_Output_section_data).super_Output_data.data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_section_data).super_Output_data.data_size_" & (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 "uVar7 << 2" identifier << number_literal)) ;) (expression_statement "bVar2 = (posd->super_Output_section_data).super_Output_data.field_0x1c;" (assignment_expression "bVar2 = (posd->super_Output_section_data).super_Output_data.field_0x1c" identifier = (field_expression "(posd->super_Output_section_data).super_Output_data.field_0x1c" (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)) ;) (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 "*(undefined4 *)&(posd->super_Output_section_data).addralign_ = 4;" (assignment_expression "*(undefined4 *)&(posd->super_Output_section_data).addralign_ = 4" (pointer_expression "*(undefined4 *)&(posd->super_Output_section_data).addralign_" * (cast_expression "(undefined4 *)&(posd->super_Output_section_data).addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_section_data).addralign_" & (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 "*(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&(posd->super_Output_section_data).addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_section_data).addralign_ + 4)" ( (binary_expression "(int)&(posd->super_Output_section_data).addralign_ + 4" (cast_expression "(int)&(posd->super_Output_section_data).addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_section_data).addralign_" & (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) )))) = number_literal) ;) (expression_statement "(posd->super_Output_section_data).super_Output_data.field_0x1c = bVar2 & 0xe0 | 10;" (assignment_expression "(posd->super_Output_section_data).super_Output_data.field_0x1c = bVar2 & 0xe0 | 10" (field_expression "(posd->super_Output_section_data).super_Output_data.field_0x1c" (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 "bVar2 & 0xe0 | 10" (binary_expression "bVar2 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4)" ( (binary_expression "(int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4" (cast_expression "(int)&(posd->super_Output_section_data).super_Output_data.data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_section_data).super_Output_data.data_size_" & (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))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_" * (cast_expression "(undefined4 *)&(posd->super_Output_section_data).super_Output_data.offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_section_data).super_Output_data.offset_" & (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) ;) (expression_statement "*(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =\n           0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =\n           0xffffffff" (pointer_expression "*(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4)" ( (binary_expression "(int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4" (cast_expression "(int)&(posd->super_Output_section_data).super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_section_data).super_Output_data.offset_" & (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) )))) = number_literal) ;) (expression_statement "(posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00383db4;" (assignment_expression "(posd->super_Output_section_data).super_Output_data._vptr_Output_data =\n           (_func_int_varargs **)&PTR__Output_symtab_xindex_00383db4" (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_00383db4" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_symtab_xindex_00383db4" & identifier))) ;) (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->dynsym_xindex_ = posd;" (assignment_expression "this->dynsym_xindex_ = posd" (field_expression "this->dynsym_xindex_" identifier -> field_identifier) = identifier) ;) (labeled_statement "Output_section::add_output_section_data(pOVar14,(Output_section_data *)posd);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(pOVar14,(Output_section_data *)posd);" (call_expression "add_output_section_data(pOVar14,(Output_section_data *)posd)" identifier (argument_list "(pOVar14,(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 ((pOVar14->link_ != 0) ||\n         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))) goto LAB_000a21c1;" if (parenthesized_expression "((pOVar14->link_ != 0) ||\n         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0))))" ( (binary_expression "(pOVar14->link_ != 0) ||\n         (((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))" (parenthesized_expression "(pOVar14->link_ != 0)" ( (binary_expression "pOVar14->link_ != 0" (field_expression "pOVar14->link_" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "(((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)))" ( (parenthesized_expression "((pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0))" ( (binary_expression "(pOVar14->field_0x90 & 4) != 0 || ((pOVar14->field_0x90 & 8) != 0)" (binary_expression "(pOVar14->field_0x90 & 4) != 0" (parenthesized_expression "(pOVar14->field_0x90 & 4)" ( (binary_expression "pOVar14->field_0x90 & 4" (field_expression "pOVar14->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "((pOVar14->field_0x90 & 8) != 0)" ( (binary_expression "(pOVar14->field_0x90 & 8) != 0" (parenthesized_expression "(pOVar14->field_0x90 & 8)" ( (binary_expression "pOVar14->field_0x90 & 8" (field_expression "pOVar14->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)&pOVar14->addralign_ = 4;" (assignment_expression "*(undefined4 *)&pOVar14->addralign_ = 4" (pointer_expression "*(undefined4 *)&pOVar14->addralign_" * (cast_expression "(undefined4 *)&pOVar14->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar14->addralign_" & (field_expression "pOVar14->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar14->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar14->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar14->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar14->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar14->addralign_ + 4)" ( (binary_expression "(int)&pOVar14->addralign_ + 4" (cast_expression "(int)&pOVar14->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar14->addralign_" & (field_expression "pOVar14->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar14->link_section_ = (Output_data *)this_01;" (assignment_expression "pOVar14->link_section_ = (Output_data *)this_01" (field_expression "pOVar14->link_section_" identifier -> field_identifier) = (cast_expression "(Output_data *)this_01" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "Output_section::set_entsize(pOVar14,4);" statement_identifier : (ERROR ":" :) (expression_statement "set_entsize(pOVar14,4);" (call_expression "set_entsize(pOVar14,4)" identifier (argument_list "(pOVar14,4)" ( identifier , number_literal ))) ;)) (expression_statement "pOVar14->field_0x90 = pOVar14->field_0x90 | 0x10;" (assignment_expression "pOVar14->field_0x90 = pOVar14->field_0x90 | 0x10" (field_expression "pOVar14->field_0x90" identifier -> field_identifier) = (binary_expression "pOVar14->field_0x90 | 0x10" (field_expression "pOVar14->field_0x90" 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 "aVar11.od = &choose_output_section\n                         (this,(Relobj *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data;" (assignment_expression "aVar11.od = &choose_output_section\n                         (this,(Relobj *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data" (field_expression "aVar11.od" identifier . field_identifier) = (pointer_expression "&choose_output_section\n                         (this,(Relobj *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data" & (field_expression "choose_output_section\n                         (this,(Relobj *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data" (call_expression "choose_output_section\n                         (this,(Relobj *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)" identifier (argument_list "(this,(Relobj *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)" ( identifier , (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "".dynstr"" " string_content ") , number_literal , number_literal , false , identifier , false , false , false ))) -> field_identifier))) ;) (expression_statement "*pdynstr = (Output_section *)aVar11;" (assignment_expression "*pdynstr = (Output_section *)aVar11" (pointer_expression "*pdynstr" * identifier) = (cast_expression "(Output_section *)aVar11" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n    pOVar8 = (Output_section_data *)operator_new(0x30);\n    puVar1 = &(pOVar8->super_Output_data).field_0x1c;\n    *puVar1 = *puVar1 & 0xe0;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)&this->dynpool_;\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar8->addralign_ = 1;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00383cdc;\n    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n    if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(this_01.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      ((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od = (Output_data *)aVar11;\n    }\n    pOVar14 = this->dynamic_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      if (((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||\n         ((pOVar14->field_0x90 & 8) != 0)) goto LAB_000a21c1;\n      pOVar14->link_section_ = (Output_data *)aVar11;\n    }\n    if (pOVar4 != (Output_data_dynamic *)0x0) {\n      paVar5 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (paVar5 == &(iVar16._M_current)->u_) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        __position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        paVar5->od = (Output_data *)aVar11;\n        __position._M_current = (Dynamic_entry *)(paVar5 + 4);\n        paVar5[1].val = 0;\n        paVar5[2].val = DT_STRTAB;\n        paVar5[3].val = 0;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = (Output_data *)0x0;\n      if (__position._M_current == iVar16._M_current) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);\n      }\n      else {\n        ((__position._M_current)->u_).od = (Output_data *)aVar11;\n        (__position._M_current)->od2 = (Output_data *)0x0;\n        (__position._M_current)->tag_ = DT_STRSZ;\n        (__position._M_current)->offset_ = 0xfffffffe;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        local_2c.od = aVar11.od;\n      }\n    }\n  }" if (parenthesized_expression "((Output_section *)aVar11.val != (Output_section *)0x0)" ( (binary_expression "(Output_section *)aVar11.val != (Output_section *)0x0" (cast_expression "(Output_section *)aVar11.val" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar11.val" identifier . field_identifier)) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pOVar8 = (Output_section_data *)operator_new(0x30);\n    puVar1 = &(pOVar8->super_Output_data).field_0x1c;\n    *puVar1 = *puVar1 & 0xe0;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)&this->dynpool_;\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).data_size_ = 0;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar8->addralign_ = 1;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00383cdc;\n    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n    if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(this_01.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      ((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od = (Output_data *)aVar11;\n    }\n    pOVar14 = this->dynamic_section_;\n    if (pOVar14 != (Output_section *)0x0) {\n      if (((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||\n         ((pOVar14->field_0x90 & 8) != 0)) goto LAB_000a21c1;\n      pOVar14->link_section_ = (Output_data *)aVar11;\n    }\n    if (pOVar4 != (Output_data_dynamic *)0x0) {\n      paVar5 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (paVar5 == &(iVar16._M_current)->u_) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        __position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        paVar5->od = (Output_data *)aVar11;\n        __position._M_current = (Dynamic_entry *)(paVar5 + 4);\n        paVar5[1].val = 0;\n        paVar5[2].val = DT_STRTAB;\n        paVar5[3].val = 0;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = (Output_data *)0x0;\n      if (__position._M_current == iVar16._M_current) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);\n      }\n      else {\n        ((__position._M_current)->u_).od = (Output_data *)aVar11;\n        (__position._M_current)->od2 = (Output_data *)0x0;\n        (__position._M_current)->tag_ = DT_STRSZ;\n        (__position._M_current)->offset_ = 0xfffffffe;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        local_2c.od = aVar11.od;\n      }\n    }\n  }" { (expression_statement "pOVar8 = (Output_section_data *)operator_new(0x30);" (assignment_expression "pOVar8 = (Output_section_data *)operator_new(0x30)" identifier = (cast_expression "(Output_section_data *)operator_new(0x30)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "puVar1 = &(pOVar8->super_Output_data).field_0x1c;" (assignment_expression "puVar1 = &(pOVar8->super_Output_data).field_0x1c" identifier = (pointer_expression "&(pOVar8->super_Output_data).field_0x1c" & (field_expression "(pOVar8->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->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 "pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)&this->dynpool_;" (assignment_expression "pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)&this->dynpool_" (field_expression "pOVar8[1].super_Output_data._vptr_Output_data" (field_expression "pOVar8[1].super_Output_data" (subscript_expression "pOVar8[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&this->dynpool_" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this->dynpool_" & (field_expression "this->dynpool_" identifier -> field_identifier)))) ;) (expression_statement "*(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar8->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar8->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar8->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).address_" & (field_expression "(pOVar8->super_Output_data).address_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).address_" & (field_expression "(pOVar8->super_Output_data).address_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar8->super_Output_data).data_size_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar8->super_Output_data).data_size_ = 0" (pointer_expression "*(undefined4 *)&(pOVar8->super_Output_data).data_size_" * (cast_expression "(undefined4 *)&(pOVar8->super_Output_data).data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).data_size_" & (field_expression "(pOVar8->super_Output_data).data_size_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).data_size_" & (field_expression "(pOVar8->super_Output_data).data_size_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar8->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar8->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).offset_" & (field_expression "(pOVar8->super_Output_data).offset_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).offset_" & (field_expression "(pOVar8->super_Output_data).offset_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar8->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar8->output_section_ = (Output_section *)0x0" (field_expression "pOVar8->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar8->addralign_ = 1;" (assignment_expression "*(undefined4 *)&pOVar8->addralign_ = 1" (pointer_expression "*(undefined4 *)&pOVar8->addralign_" * (cast_expression "(undefined4 *)&pOVar8->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar8->addralign_" & (field_expression "pOVar8->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar8->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar8->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar8->addralign_ + 4)" ( (binary_expression "(int)&pOVar8->addralign_ + 4" (cast_expression "(int)&pOVar8->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar8->addralign_" & (field_expression "pOVar8->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00383cdc;" (assignment_expression "(pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_strtab_00383cdc" (field_expression "(pOVar8->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_strtab_00383cdc" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_strtab_00383cdc" & identifier))) ;) (labeled_statement "Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data((Output_section *)aVar11.od,pOVar8);" (call_expression "add_output_section_data((Output_section *)aVar11.od,pOVar8)" identifier (argument_list "((Output_section *)aVar11.od,pOVar8)" ( (cast_expression "(Output_section *)aVar11.od" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar11.od" identifier . field_identifier)) , identifier ))) ;)) (if_statement "if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(this_01.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      ((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od = (Output_data *)aVar11;\n    }" if (parenthesized_expression "((Output_section *)this_01.val != (Output_section *)0x0)" ( (binary_expression "(Output_section *)this_01.val != (Output_section *)0x0" (cast_expression "(Output_section *)this_01.val" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_01.val" identifier . field_identifier)) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(this_01.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      ((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od = (Output_data *)aVar11;\n    }" { (if_statement "if (((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(this_01.val + 0x90) & 8) != 0)) goto LAB_000a21c1;" if (parenthesized_expression "(((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(this_01.val + 0x90) & 8) != 0))" ( (binary_expression "((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(this_01.val + 0x90) & 8) != 0)" (parenthesized_expression "((*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0))" ( (binary_expression "(*(uint *)(this_01.val + 0x40) != 0) || ((*(byte *)(this_01.val + 0x90) & 4) != 0)" (parenthesized_expression "(*(uint *)(this_01.val + 0x40) != 0)" ( (binary_expression "*(uint *)(this_01.val + 0x40) != 0" (pointer_expression "*(uint *)(this_01.val + 0x40)" * (cast_expression "(uint *)(this_01.val + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_01.val + 0x40)" ( (binary_expression "this_01.val + 0x40" (field_expression "this_01.val" identifier . field_identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(this_01.val + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(this_01.val + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(this_01.val + 0x90) & 4)" ( (binary_expression "*(byte *)(this_01.val + 0x90) & 4" (pointer_expression "*(byte *)(this_01.val + 0x90)" * (cast_expression "(byte *)(this_01.val + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_01.val + 0x90)" ( (binary_expression "this_01.val + 0x90" (field_expression "this_01.val" identifier . field_identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(this_01.val + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(this_01.val + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(this_01.val + 0x90) & 8)" ( (binary_expression "*(byte *)(this_01.val + 0x90) & 8" (pointer_expression "*(byte *)(this_01.val + 0x90)" * (cast_expression "(byte *)(this_01.val + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_01.val + 0x90)" ( (binary_expression "this_01.val + 0x90" (field_expression "this_01.val" identifier . field_identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od = (Output_data *)aVar11;" (assignment_expression "((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od = (Output_data *)aVar11" (field_expression "((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))->od" (parenthesized_expression "((anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c))" ( (cast_expression "(anon_union_4_4_94c5dad9_for_u_ *)(this_01.val + 0x3c)" ( (type_descriptor "anon_union_4_4_94c5dad9_for_u_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_01.val + 0x3c)" ( (binary_expression "this_01.val + 0x3c" (field_expression "this_01.val" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(Output_data *)aVar11" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pOVar14 = this->dynamic_section_;" (assignment_expression "pOVar14 = this->dynamic_section_" identifier = (field_expression "this->dynamic_section_" identifier -> field_identifier)) ;) (if_statement "if (pOVar14 != (Output_section *)0x0) {\n      if (((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||\n         ((pOVar14->field_0x90 & 8) != 0)) goto LAB_000a21c1;\n      pOVar14->link_section_ = (Output_data *)aVar11;\n    }" if (parenthesized_expression "(pOVar14 != (Output_section *)0x0)" ( (binary_expression "pOVar14 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||\n         ((pOVar14->field_0x90 & 8) != 0)) goto LAB_000a21c1;\n      pOVar14->link_section_ = (Output_data *)aVar11;\n    }" { (if_statement "if (((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||\n         ((pOVar14->field_0x90 & 8) != 0)) goto LAB_000a21c1;" if (parenthesized_expression "(((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||\n         ((pOVar14->field_0x90 & 8) != 0))" ( (binary_expression "((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)) ||\n         ((pOVar14->field_0x90 & 8) != 0)" (parenthesized_expression "((pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0))" ( (binary_expression "(pOVar14->link_ != 0) || ((pOVar14->field_0x90 & 4) != 0)" (parenthesized_expression "(pOVar14->link_ != 0)" ( (binary_expression "pOVar14->link_ != 0" (field_expression "pOVar14->link_" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "((pOVar14->field_0x90 & 4) != 0)" ( (binary_expression "(pOVar14->field_0x90 & 4) != 0" (parenthesized_expression "(pOVar14->field_0x90 & 4)" ( (binary_expression "pOVar14->field_0x90 & 4" (field_expression "pOVar14->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((pOVar14->field_0x90 & 8) != 0)" ( (binary_expression "(pOVar14->field_0x90 & 8) != 0" (parenthesized_expression "(pOVar14->field_0x90 & 8)" ( (binary_expression "pOVar14->field_0x90 & 8" (field_expression "pOVar14->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "pOVar14->link_section_ = (Output_data *)aVar11;" (assignment_expression "pOVar14->link_section_ = (Output_data *)aVar11" (field_expression "pOVar14->link_section_" identifier -> field_identifier) = (cast_expression "(Output_data *)aVar11" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (if_statement "if (pOVar4 != (Output_data_dynamic *)0x0) {\n      paVar5 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (paVar5 == &(iVar16._M_current)->u_) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        __position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        paVar5->od = (Output_data *)aVar11;\n        __position._M_current = (Dynamic_entry *)(paVar5 + 4);\n        paVar5[1].val = 0;\n        paVar5[2].val = DT_STRTAB;\n        paVar5[3].val = 0;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = (Output_data *)0x0;\n      if (__position._M_current == iVar16._M_current) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);\n      }\n      else {\n        ((__position._M_current)->u_).od = (Output_data *)aVar11;\n        (__position._M_current)->od2 = (Output_data *)0x0;\n        (__position._M_current)->tag_ = DT_STRSZ;\n        (__position._M_current)->offset_ = 0xfffffffe;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        local_2c.od = aVar11.od;\n      }\n    }" if (parenthesized_expression "(pOVar4 != (Output_data_dynamic *)0x0)" ( (binary_expression "pOVar4 != (Output_data_dynamic *)0x0" identifier != (cast_expression "(Output_data_dynamic *)0x0" ( (type_descriptor "Output_data_dynamic *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      paVar5 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;\n      iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (paVar5 == &(iVar16._M_current)->u_) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        __position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        paVar5->od = (Output_data *)aVar11;\n        __position._M_current = (Dynamic_entry *)(paVar5 + 4);\n        paVar5[1].val = 0;\n        paVar5[2].val = DT_STRTAB;\n        paVar5[3].val = 0;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = (Output_data *)0x0;\n      if (__position._M_current == iVar16._M_current) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);\n      }\n      else {\n        ((__position._M_current)->u_).od = (Output_data *)aVar11;\n        (__position._M_current)->od2 = (Output_data *)0x0;\n        (__position._M_current)->tag_ = DT_STRSZ;\n        (__position._M_current)->offset_ = 0xfffffffe;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        local_2c.od = aVar11.od;\n      }\n    }" { (expression_statement "paVar5 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_;" (assignment_expression "paVar5 = &((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_" identifier = (pointer_expression "&((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_" & (field_expression "((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)->u_" (parenthesized_expression "((pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_finish)" ( (ERROR "(pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::" (comma_expression "(pOVar4->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (binary_expression "(pOVar4->entries_).\n                 super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n                 super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Dynamic_entry>_>\n                 ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n                 ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) -> field_identifier))) ;) (ERROR "iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar16._M_current =\n           (pOVar4->entries_).\n           super__Vector_base<gold" (field_expression "iVar16._M_current" identifier . field_identifier) = (binary_expression "(pOVar4->entries_).\n           super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n           super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;" (field_expression "Dynamic_entry>_>\n           ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n           ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "local_24 = 5;" (assignment_expression "local_24 = 5" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = (Output_data *)0x0;" (assignment_expression "local_28 = (Output_data *)0x0" identifier = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (paVar5 == &(iVar16._M_current)->u_) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        __position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        paVar5->od = (Output_data *)aVar11;\n        __position._M_current = (Dynamic_entry *)(paVar5 + 4);\n        paVar5[1].val = 0;\n        paVar5[2].val = DT_STRTAB;\n        paVar5[3].val = 0;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }" if (parenthesized_expression "(paVar5 == &(iVar16._M_current)->u_)" ( (binary_expression "paVar5 == &(iVar16._M_current)->u_" identifier == (pointer_expression "&(iVar16._M_current)->u_" & (field_expression "(iVar16._M_current)->u_" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier))) )) (compound_statement "{\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        __position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }" { (expression_statement "local_2c.od = aVar11.od;" (assignment_expression "local_2c.od = aVar11.od" (field_expression "local_2c.od" identifier . field_identifier) = (field_expression "aVar11.od" identifier . field_identifier)) ;) (labeled_statement "std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" (binary_expression "Dynamic_entry&>\n                  (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c)" ( (comma_expression "&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c" (pointer_expression "&pOVar4->entries_" & (field_expression "pOVar4->entries_" identifier -> field_identifier)) , (comma_expression "iVar16,(Dynamic_entry *)&local_2c" identifier , (cast_expression "(Dynamic_entry *)&local_2c" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier)))) ))) ;))))) (ERROR "__position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "__position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "__position._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(pOVar4->entries_).\n             super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n             super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n             ._M_impl._M_finish;" (field_expression "Dynamic_entry>_>\n             ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n             ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (ERROR "iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold" (field_expression "iVar16._M_current" identifier . field_identifier) = (binary_expression "(pOVar4->entries_).\n             super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n             super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;" (field_expression "Dynamic_entry>_>\n             ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n             ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) }) (else_clause "else {\n        paVar5->od = (Output_data *)aVar11;\n        __position._M_current = (Dynamic_entry *)(paVar5 + 4);\n        paVar5[1].val = 0;\n        paVar5[2].val = DT_STRTAB;\n        paVar5[3].val = 0;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }" else (compound_statement "{\n        paVar5->od = (Output_data *)aVar11;\n        __position._M_current = (Dynamic_entry *)(paVar5 + 4);\n        paVar5[1].val = 0;\n        paVar5[2].val = DT_STRTAB;\n        paVar5[3].val = 0;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }" { (expression_statement "paVar5->od = (Output_data *)aVar11;" (assignment_expression "paVar5->od = (Output_data *)aVar11" (field_expression "paVar5->od" identifier -> field_identifier) = (cast_expression "(Output_data *)aVar11" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "__position._M_current = (Dynamic_entry *)(paVar5 + 4);" (assignment_expression "__position._M_current = (Dynamic_entry *)(paVar5 + 4)" (field_expression "__position._M_current" identifier . field_identifier) = (cast_expression "(Dynamic_entry *)(paVar5 + 4)" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar5 + 4)" ( (binary_expression "paVar5 + 4" identifier + number_literal) )))) ;) (expression_statement "paVar5[1].val = 0;" (assignment_expression "paVar5[1].val = 0" (field_expression "paVar5[1].val" (subscript_expression "paVar5[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "paVar5[2].val = DT_STRTAB;" (assignment_expression "paVar5[2].val = DT_STRTAB" (field_expression "paVar5[2].val" (subscript_expression "paVar5[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "paVar5[3].val = 0;" (assignment_expression "paVar5[3].val = 0" (field_expression "paVar5[3].val" (subscript_expression "paVar5[3]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (ERROR "(pOVar4->entries_).\n        super__Vector_base<gold::" (binary_expression "(pOVar4->entries_).\n        super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n        super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;" (assignment_expression "Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current" (field_expression "Dynamic_entry>_>\n        ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n        ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (field_expression "__position._M_current" identifier . field_identifier)) ;))) }))) (expression_statement "local_24 = 10;" (assignment_expression "local_24 = 10" identifier = number_literal) ;) (expression_statement "local_20 = 0xfffffffe;" (assignment_expression "local_20 = 0xfffffffe" identifier = number_literal) ;) (expression_statement "local_28 = (Output_data *)0x0;" (assignment_expression "local_28 = (Output_data *)0x0" identifier = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (__position._M_current == iVar16._M_current) {\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);\n      }\n      else {\n        ((__position._M_current)->u_).od = (Output_data *)aVar11;\n        (__position._M_current)->od2 = (Output_data *)0x0;\n        (__position._M_current)->tag_ = DT_STRSZ;\n        (__position._M_current)->offset_ = 0xfffffffe;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        local_2c.od = aVar11.od;\n      }" if (parenthesized_expression "(__position._M_current == iVar16._M_current)" ( (binary_expression "__position._M_current == iVar16._M_current" (field_expression "__position._M_current" identifier . field_identifier) == (field_expression "iVar16._M_current" identifier . field_identifier)) )) (compound_statement "{\n        local_2c.od = aVar11.od;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);\n      }" { (expression_statement "local_2c.od = aVar11.od;" (assignment_expression "local_2c.od = aVar11.od" (field_expression "local_2c.od" identifier . field_identifier) = (field_expression "aVar11.od" identifier . field_identifier)) ;) (labeled_statement "std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c);" (binary_expression "Dynamic_entry&>\n                  (&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c)" ( (comma_expression "&pOVar4->entries_,__position,(Dynamic_entry *)&local_2c" (pointer_expression "&pOVar4->entries_" & (field_expression "pOVar4->entries_" identifier -> field_identifier)) , (comma_expression "__position,(Dynamic_entry *)&local_2c" identifier , (cast_expression "(Dynamic_entry *)&local_2c" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier)))) ))) ;))))) }) (else_clause "else {\n        ((__position._M_current)->u_).od = (Output_data *)aVar11;\n        (__position._M_current)->od2 = (Output_data *)0x0;\n        (__position._M_current)->tag_ = DT_STRSZ;\n        (__position._M_current)->offset_ = 0xfffffffe;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        local_2c.od = aVar11.od;\n      }" else (compound_statement "{\n        ((__position._M_current)->u_).od = (Output_data *)aVar11;\n        (__position._M_current)->od2 = (Output_data *)0x0;\n        (__position._M_current)->tag_ = DT_STRSZ;\n        (__position._M_current)->offset_ = 0xfffffffe;\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        local_2c.od = aVar11.od;\n      }" { (expression_statement "((__position._M_current)->u_).od = (Output_data *)aVar11;" (assignment_expression "((__position._M_current)->u_).od = (Output_data *)aVar11" (field_expression "((__position._M_current)->u_).od" (parenthesized_expression "((__position._M_current)->u_)" ( (field_expression "(__position._M_current)->u_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (cast_expression "(Output_data *)aVar11" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(__position._M_current)->od2 = (Output_data *)0x0;" (assignment_expression "(__position._M_current)->od2 = (Output_data *)0x0" (field_expression "(__position._M_current)->od2" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(__position._M_current)->tag_ = DT_STRSZ;" (assignment_expression "(__position._M_current)->tag_ = DT_STRSZ" (field_expression "(__position._M_current)->tag_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(__position._M_current)->offset_ = 0xfffffffe;" (assignment_expression "(__position._M_current)->offset_ = 0xfffffffe" (field_expression "(__position._M_current)->offset_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (ERROR "(pOVar4->entries_).\n        super__Vector_base<gold::" (binary_expression "(pOVar4->entries_).\n        super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n        super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;" (assignment_expression "Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1" (field_expression "Dynamic_entry>_>\n        ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n        ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;))) (expression_statement "local_2c.od = aVar11.od;" (assignment_expression "local_2c.od = aVar11.od" (field_expression "local_2c.od" identifier . field_identifier) = (field_expression "aVar11.od" identifier . field_identifier)) ;) }))) })) })) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = parameters->options_ == (General_options *)0x0;" (assignment_expression "bVar24 = parameters->options_ == (General_options *)0x0" identifier = (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar24) goto LAB_000a21dc;" if (parenthesized_expression "(bVar24)" ( identifier )) (goto_statement "goto LAB_000a21dc;" goto statement_identifier ;)) (expression_statement "pbVar12 = (byte *)(parameters->options_->hash_style_).value;" (assignment_expression "pbVar12 = (byte *)(parameters->options_->hash_style_).value" identifier = (cast_expression "(byte *)(parameters->options_->hash_style_).value" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(parameters->options_->hash_style_).value" (parenthesized_expression "(parameters->options_->hash_style_)" ( (field_expression "parameters->options_->hash_style_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier))) ;) (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar12;" (assignment_expression "pbVar19 = pbVar12" identifier = identifier) ;) (expression_statement "pbVar21 = &DAT_002806f5;" (assignment_expression "pbVar21 = &DAT_002806f5" identifier = (pointer_expression "&DAT_002806f5" & identifier)) ;) (do_statement "do {\n    if (iVar15 == 0) break;\n    iVar15 = iVar15 + -1;\n    bVar22 = *pbVar19 < *pbVar21;\n    bVar24 = *pbVar19 == *pbVar21;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);" do (compound_statement "{\n    if (iVar15 == 0) break;\n    iVar15 = iVar15 + -1;\n    bVar22 = *pbVar19 < *pbVar21;\n    bVar24 = *pbVar19 == *pbVar21;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n  }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar21;" (assignment_expression "bVar22 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) {\nLAB_000a1d90:\n    Dynobj::create_gnu_hash_table(pdynamic_symbols,forced_local_count + index,&phash,&hashlen);\n    aVar11.od = &choose_output_section\n                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)->super_Output_data;\n    pOVar8 = (Output_section_data *)operator_new(0x34);\n    bVar2 = (pOVar8->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    *(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";\n    if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n      Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n      if ((Output_section *)this_01.val != (Output_section *)0x0) {\n        if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n        ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;\n      if (**(int **)(parameters->target_ + 4) == 0x20) {\n        Output_section::set_entsize((Output_section *)aVar11.od,4);\n      }\n      if (pOVar4 != (Output_data_dynamic *)0x0) {\n        local_24 = 0x6ffffef5;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        local_20 = 0;\n        local_28 = (Output_data *)0x0;\n        local_2c.od = aVar11.od;\n        if (iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage) {\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }\n        else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }\n      }\n    }\n    bVar22 = parameters->options_ == (General_options *)0x0;\n    if (bVar22) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    pbVar12 = (byte *)(parameters->options_->hash_style_).value;\n  }\n  else {\n    iVar15 = 5;\n    pbVar19 = pbVar12;\n    pbVar21 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar19 < *pbVar21;\n      bVar22 = *pbVar19 == *pbVar21;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000a1d90;\n  }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\nLAB_000a1d90:\n    Dynobj::create_gnu_hash_table(pdynamic_symbols,forced_local_count + index,&phash,&hashlen);\n    aVar11.od = &choose_output_section\n                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)->super_Output_data;\n    pOVar8 = (Output_section_data *)operator_new(0x34);\n    bVar2 = (pOVar8->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;\n    *(Got_offset_list **)&pOVar8->addralign_ = local_5c;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;\n    pOVar8->output_section_ = (Output_section *)0x0;\n    (pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;\n    *(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen;\n    (pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;\n    pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash;\n    *(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";\n    if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n      Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n      if ((Output_section *)this_01.val != (Output_section *)0x0) {\n        if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n        ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;\n      if (**(int **)(parameters->target_ + 4) == 0x20) {\n        Output_section::set_entsize((Output_section *)aVar11.od,4);\n      }\n      if (pOVar4 != (Output_data_dynamic *)0x0) {\n        local_24 = 0x6ffffef5;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        local_20 = 0;\n        local_28 = (Output_data *)0x0;\n        local_2c.od = aVar11.od;\n        if (iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage) {\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }\n        else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }\n      }\n    }\n    bVar22 = parameters->options_ == (General_options *)0x0;\n    if (bVar22) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n    pbVar12 = (byte *)(parameters->options_->hash_style_).value;\n  }" { (labeled_statement "LAB_000a1d90:\n    Dynobj::create_gnu_hash_table(pdynamic_symbols,forced_local_count + index,&phash,&hashlen);" statement_identifier : (labeled_statement "Dynobj::create_gnu_hash_table(pdynamic_symbols,forced_local_count + index,&phash,&hashlen);" statement_identifier : (ERROR ":" :) (expression_statement "create_gnu_hash_table(pdynamic_symbols,forced_local_count + index,&phash,&hashlen);" (call_expression "create_gnu_hash_table(pdynamic_symbols,forced_local_count + index,&phash,&hashlen)" identifier (argument_list "(pdynamic_symbols,forced_local_count + index,&phash,&hashlen)" ( identifier , (binary_expression "forced_local_count + index" identifier + identifier) , (pointer_expression "&phash" & identifier) , (pointer_expression "&hashlen" & identifier) ))) ;))) (expression_statement "aVar11.od = &choose_output_section\n                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)->super_Output_data;" (assignment_expression "aVar11.od = &choose_output_section\n                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)->super_Output_data" (field_expression "aVar11.od" identifier . field_identifier) = (pointer_expression "&choose_output_section\n                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)->super_Output_data" & (field_expression "choose_output_section\n                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)->super_Output_data" (call_expression "choose_output_section\n                           (this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)" identifier (argument_list "(this,(Relobj *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,\n                            false,false,false)" ( identifier , (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "".gnu.hash"" " string_content ") , number_literal , number_literal , false , identifier , false , false , false ))) -> field_identifier))) ;) (expression_statement "pOVar8 = (Output_section_data *)operator_new(0x34);" (assignment_expression "pOVar8 = (Output_section_data *)operator_new(0x34)" identifier = (cast_expression "(Output_section_data *)operator_new(0x34)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "bVar2 = (pOVar8->super_Output_data).field_0x1c;" (assignment_expression "bVar2 = (pOVar8->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar8->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar8->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar8->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar8->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).address_" & (field_expression "(pOVar8->super_Output_data).address_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(Got_offset_list **)&pOVar8->addralign_ = local_5c;" (assignment_expression "*(Got_offset_list **)&pOVar8->addralign_ = local_5c" (pointer_expression "*(Got_offset_list **)&pOVar8->addralign_" * (cast_expression "(Got_offset_list **)&pOVar8->addralign_" ( (type_descriptor "Got_offset_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar8->addralign_" & (field_expression "pOVar8->addralign_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).address_" & (field_expression "(pOVar8->super_Output_data).address_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar8->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar8->output_section_ = (Output_section *)0x0" (field_expression "pOVar8->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10;" (assignment_expression "(pOVar8->super_Output_data).field_0x1c = bVar2 & 0xe0 | 10" (field_expression "(pOVar8->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar2 & 0xe0 | 10" (binary_expression "bVar2 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar8->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar8->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar8->addralign_ + 4)" ( (binary_expression "(int)&pOVar8->addralign_ + 4" (cast_expression "(int)&pOVar8->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar8->addralign_" & (field_expression "pOVar8->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen;" (assignment_expression "*(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen" (pointer_expression "*(uint *)&(pOVar8->super_Output_data).data_size_" * (cast_expression "(uint *)&(pOVar8->super_Output_data).data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).data_size_" & (field_expression "(pOVar8->super_Output_data).data_size_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "(pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;" (assignment_expression "(pOVar8->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" (field_expression "(pOVar8->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_const_buffer_00383c70" & identifier))) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).data_size_" & (field_expression "(pOVar8->super_Output_data).data_size_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash;" (assignment_expression "pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash" (field_expression "pOVar8[1].super_Output_data._vptr_Output_data" (field_expression "pOVar8[1].super_Output_data" (subscript_expression "pOVar8[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)phash" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar8->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar8->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).offset_" & (field_expression "(pOVar8->super_Output_data).offset_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).offset_" & (field_expression "(pOVar8->super_Output_data).offset_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)&pOVar8[1].super_Output_data.address_ = "** hash";" (assignment_expression "*(char **)&pOVar8[1].super_Output_data.address_ = "** hash"" (pointer_expression "*(char **)&pOVar8[1].super_Output_data.address_" * (cast_expression "(char **)&pOVar8[1].super_Output_data.address_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar8[1].super_Output_data.address_" & (field_expression "pOVar8[1].super_Output_data.address_" (field_expression "pOVar8[1].super_Output_data" (subscript_expression "pOVar8[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = (string_literal ""** hash"" " string_content ")) ;) (if_statement "if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n      Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n      if ((Output_section *)this_01.val != (Output_section *)0x0) {\n        if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n        ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;\n      if (**(int **)(parameters->target_ + 4) == 0x20) {\n        Output_section::set_entsize((Output_section *)aVar11.od,4);\n      }\n      if (pOVar4 != (Output_data_dynamic *)0x0) {\n        local_24 = 0x6ffffef5;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        local_20 = 0;\n        local_28 = (Output_data *)0x0;\n        local_2c.od = aVar11.od;\n        if (iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage) {\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }\n        else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }\n      }\n    }" if (parenthesized_expression "((Output_section *)aVar11.val != (Output_section *)0x0)" ( (binary_expression "(Output_section *)aVar11.val != (Output_section *)0x0" (cast_expression "(Output_section *)aVar11.val" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar11.val" identifier . field_identifier)) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n      if ((Output_section *)this_01.val != (Output_section *)0x0) {\n        if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n        ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n      }\n      if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;\n      if (**(int **)(parameters->target_ + 4) == 0x20) {\n        Output_section::set_entsize((Output_section *)aVar11.od,4);\n      }\n      if (pOVar4 != (Output_data_dynamic *)0x0) {\n        local_24 = 0x6ffffef5;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        local_20 = 0;\n        local_28 = (Output_data *)0x0;\n        local_2c.od = aVar11.od;\n        if (iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage) {\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }\n        else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }\n      }\n    }" { (labeled_statement "Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data((Output_section *)aVar11.od,pOVar8);" (call_expression "add_output_section_data((Output_section *)aVar11.od,pOVar8)" identifier (argument_list "((Output_section *)aVar11.od,pOVar8)" ( (cast_expression "(Output_section *)aVar11.od" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar11.od" identifier . field_identifier)) , identifier ))) ;)) (if_statement "if ((Output_section *)this_01.val != (Output_section *)0x0) {\n        if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n        ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n      }" if (parenthesized_expression "((Output_section *)this_01.val != (Output_section *)0x0)" ( (binary_expression "(Output_section *)this_01.val != (Output_section *)0x0" (cast_expression "(Output_section *)this_01.val" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_01.val" identifier . field_identifier)) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;\n        ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n      }" { (if_statement "if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;" if (parenthesized_expression "(((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0))" ( (binary_expression "((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n           ((*(byte *)(aVar11.val + 0x90) & 8) != 0)" (parenthesized_expression "((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0))" ( (binary_expression "(*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)" (parenthesized_expression "(*(uint *)(aVar11.val + 0x40) != 0)" ( (binary_expression "*(uint *)(aVar11.val + 0x40) != 0" (pointer_expression "*(uint *)(aVar11.val + 0x40)" * (cast_expression "(uint *)(aVar11.val + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar11.val + 0x40)" ( (binary_expression "aVar11.val + 0x40" (field_expression "aVar11.val" identifier . field_identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(aVar11.val + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(aVar11.val + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(aVar11.val + 0x90) & 4)" ( (binary_expression "*(byte *)(aVar11.val + 0x90) & 4" (pointer_expression "*(byte *)(aVar11.val + 0x90)" * (cast_expression "(byte *)(aVar11.val + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar11.val + 0x90)" ( (binary_expression "aVar11.val + 0x90" (field_expression "aVar11.val" identifier . field_identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(aVar11.val + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(aVar11.val + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(aVar11.val + 0x90) & 8)" ( (binary_expression "*(byte *)(aVar11.val + 0x90) & 8" (pointer_expression "*(byte *)(aVar11.val + 0x90)" * (cast_expression "(byte *)(aVar11.val + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar11.val + 0x90)" ( (binary_expression "aVar11.val + 0x90" (field_expression "aVar11.val" identifier . field_identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;" (assignment_expression "((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01" (field_expression "((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym" (parenthesized_expression "((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))" ( (cast_expression "(anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c)" ( (type_descriptor "anon_union_4_4_94c5dad9_for_u_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar11.val + 0x3c)" ( (binary_expression "aVar11.val + 0x3c" (field_expression "aVar11.val" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(Symbol *)this_01" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (if_statement "if (parameters->target_ == (Target *)0x0) goto LAB_000a2224;" 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)) )) (goto_statement "goto LAB_000a2224;" goto statement_identifier ;)) (if_statement "if (**(int **)(parameters->target_ + 4) == 0x20) {\n        Output_section::set_entsize((Output_section *)aVar11.od,4);\n      }" if (parenthesized_expression "(**(int **)(parameters->target_ + 4) == 0x20)" ( (binary_expression "**(int **)(parameters->target_ + 4) == 0x20" (pointer_expression "**(int **)(parameters->target_ + 4)" * (pointer_expression "*(int **)(parameters->target_ + 4)" * (cast_expression "(int **)(parameters->target_ + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(parameters->target_ + 4)" ( (binary_expression "parameters->target_ + 4" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) ))))) == number_literal) )) (compound_statement "{\n        Output_section::set_entsize((Output_section *)aVar11.od,4);\n      }" { (labeled_statement "Output_section::set_entsize((Output_section *)aVar11.od,4);" statement_identifier : (ERROR ":" :) (expression_statement "set_entsize((Output_section *)aVar11.od,4);" (call_expression "set_entsize((Output_section *)aVar11.od,4)" identifier (argument_list "((Output_section *)aVar11.od,4)" ( (cast_expression "(Output_section *)aVar11.od" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar11.od" identifier . field_identifier)) , number_literal ))) ;)) })) (if_statement "if (pOVar4 != (Output_data_dynamic *)0x0) {\n        local_24 = 0x6ffffef5;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        local_20 = 0;\n        local_28 = (Output_data *)0x0;\n        local_2c.od = aVar11.od;\n        if (iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage) {\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }\n        else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }\n      }" if (parenthesized_expression "(pOVar4 != (Output_data_dynamic *)0x0)" ( (binary_expression "pOVar4 != (Output_data_dynamic *)0x0" identifier != (cast_expression "(Output_data_dynamic *)0x0" ( (type_descriptor "Output_data_dynamic *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_24 = 0x6ffffef5;\n        iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        local_20 = 0;\n        local_28 = (Output_data *)0x0;\n        local_2c.od = aVar11.od;\n        if (iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage) {\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }\n        else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }\n      }" { (expression_statement "local_24 = 0x6ffffef5;" (assignment_expression "local_24 = 0x6ffffef5" identifier = number_literal) ;) (ERROR "iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar16._M_current =\n             (pOVar4->entries_).\n             super__Vector_base<gold" (field_expression "iVar16._M_current" identifier . field_identifier) = (binary_expression "(pOVar4->entries_).\n             super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n             super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n             ._M_impl._M_finish;" (field_expression "Dynamic_entry>_>\n             ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n             ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = (Output_data *)0x0;" (assignment_expression "local_28 = (Output_data *)0x0" identifier = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c.od = aVar11.od;" (assignment_expression "local_2c.od = aVar11.od" (field_expression "local_2c.od" identifier . field_identifier) = (field_expression "aVar11.od" identifier . field_identifier)) ;) (if_statement "if (iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage) {\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }\n        else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }" if (parenthesized_expression "(iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n            ._M_impl._M_end_of_storage)" ( (ERROR "iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::" (comma_expression "iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (binary_expression "iVar16._M_current ==\n            (pOVar4->entries_).\n            super__Vector_base<gold" (field_expression "iVar16._M_current" identifier . field_identifier) == (binary_expression "(pOVar4->entries_).\n            super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n            super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Dynamic_entry>_>\n            ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n            ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n          std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n        }" { (labeled_statement "std::\n          vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::\n          vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry>_>\n          ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" (binary_expression "Dynamic_entry&>\n                    (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c)" ( (comma_expression "&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c" (pointer_expression "&pOVar4->entries_" & (field_expression "pOVar4->entries_" identifier -> field_identifier)) , (comma_expression "iVar16,(Dynamic_entry *)&local_2c" identifier , (cast_expression "(Dynamic_entry *)&local_2c" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier)))) ))) ;))))) }) (else_clause "else {\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }" else (compound_statement "{\n          ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n          (iVar16._M_current)->od2 = (Output_data *)0x0;\n          (iVar16._M_current)->tag_ = DT_GNU_HASH;\n          (iVar16._M_current)->offset_ = 0;\n          (pOVar4->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;\n        }" { (expression_statement "((iVar16._M_current)->u_).od = (Output_data *)aVar11;" (assignment_expression "((iVar16._M_current)->u_).od = (Output_data *)aVar11" (field_expression "((iVar16._M_current)->u_).od" (parenthesized_expression "((iVar16._M_current)->u_)" ( (field_expression "(iVar16._M_current)->u_" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (cast_expression "(Output_data *)aVar11" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(iVar16._M_current)->od2 = (Output_data *)0x0;" (assignment_expression "(iVar16._M_current)->od2 = (Output_data *)0x0" (field_expression "(iVar16._M_current)->od2" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(iVar16._M_current)->tag_ = DT_GNU_HASH;" (assignment_expression "(iVar16._M_current)->tag_ = DT_GNU_HASH" (field_expression "(iVar16._M_current)->tag_" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(iVar16._M_current)->offset_ = 0;" (assignment_expression "(iVar16._M_current)->offset_ = 0" (field_expression "(iVar16._M_current)->offset_" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (ERROR "(pOVar4->entries_).\n          super__Vector_base<gold::" (binary_expression "(pOVar4->entries_).\n          super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n          super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1;" (assignment_expression "Dynamic_entry>_>\n          ._M_impl._M_finish = iVar16._M_current + 1" (field_expression "Dynamic_entry>_>\n          ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n          ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "iVar16._M_current + 1" (field_expression "iVar16._M_current" identifier . field_identifier) + number_literal)) ;))) }))) })) })) (expression_statement "bVar22 = parameters->options_ == (General_options *)0x0;" (assignment_expression "bVar22 = parameters->options_ == (General_options *)0x0" identifier = (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar22) {\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\nLAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" { (labeled_statement "LAB_000a21dc:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (expression_statement "pbVar12 = (byte *)(parameters->options_->hash_style_).value;" (assignment_expression "pbVar12 = (byte *)(parameters->options_->hash_style_).value" identifier = (cast_expression "(byte *)(parameters->options_->hash_style_).value" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(parameters->options_->hash_style_).value" (parenthesized_expression "(parameters->options_->hash_style_)" ( (field_expression "parameters->options_->hash_style_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier))) ;) }) (else_clause "else {\n    iVar15 = 5;\n    pbVar19 = pbVar12;\n    pbVar21 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar19 < *pbVar21;\n      bVar22 = *pbVar19 == *pbVar21;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000a1d90;\n  }" else (compound_statement "{\n    iVar15 = 5;\n    pbVar19 = pbVar12;\n    pbVar21 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar19 < *pbVar21;\n      bVar22 = *pbVar19 == *pbVar21;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000a1d90;\n  }" { (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar12;" (assignment_expression "pbVar19 = pbVar12" identifier = identifier) ;) (expression_statement "pbVar21 = &DAT_00280708;" (assignment_expression "pbVar21 = &DAT_00280708" identifier = (pointer_expression "&DAT_00280708" & identifier)) ;) (do_statement "do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar19 < *pbVar21;\n      bVar22 = *pbVar19 == *pbVar21;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);" do (compound_statement "{\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar19 < *pbVar21;\n      bVar22 = *pbVar19 == *pbVar21;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n      pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar19 < *pbVar21;" (assignment_expression "bVar23 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar22 = *pbVar19 == *pbVar21;" (assignment_expression "bVar22 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) goto LAB_000a1d90;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_000a1d90;" goto statement_identifier ;)) }))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar12;" (assignment_expression "pbVar19 = pbVar12" identifier = identifier) ;) (expression_statement "pbVar21 = &DAT_00280703;" (assignment_expression "pbVar21 = &DAT_00280703" identifier = (pointer_expression "&DAT_00280703" & identifier)) ;) (do_statement "do {\n    if (iVar15 == 0) break;\n    iVar15 = iVar15 + -1;\n    bVar24 = *pbVar19 < *pbVar21;\n    bVar22 = *pbVar19 == *pbVar21;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n  } while (bVar22);" do (compound_statement "{\n    if (iVar15 == 0) break;\n    iVar15 = iVar15 + -1;\n    bVar24 = *pbVar19 < *pbVar21;\n    bVar22 = *pbVar19 == *pbVar21;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n  }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar19 < *pbVar21;" (assignment_expression "bVar24 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar22 = *pbVar19 == *pbVar21;" (assignment_expression "bVar22 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar24 && !bVar22) == bVar24;" (assignment_expression "bVar22 = (!bVar24 && !bVar22) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar22) == bVar24" (parenthesized_expression "(!bVar24 && !bVar22)" ( (binary_expression "!bVar24 && !bVar22" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) {\n    iVar15 = 5;\n    pbVar19 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar12 < *pbVar19;\n      bVar22 = *pbVar12 == *pbVar19;\n      pbVar12 = pbVar12 + (uint)bVar25 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) != bVar23) {\n      return;\n    }\n  }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n    iVar15 = 5;\n    pbVar19 = &DAT_00280708;\n    do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar12 < *pbVar19;\n      bVar22 = *pbVar12 == *pbVar19;\n      pbVar12 = pbVar12 + (uint)bVar25 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) != bVar23) {\n      return;\n    }\n  }" { (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) (expression_statement "pbVar19 = &DAT_00280708;" (assignment_expression "pbVar19 = &DAT_00280708" identifier = (pointer_expression "&DAT_00280708" & identifier)) ;) (do_statement "do {\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar12 < *pbVar19;\n      bVar22 = *pbVar12 == *pbVar19;\n      pbVar12 = pbVar12 + (uint)bVar25 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    } while (bVar22);" do (compound_statement "{\n      if (iVar15 == 0) break;\n      iVar15 = iVar15 + -1;\n      bVar23 = *pbVar12 < *pbVar19;\n      bVar22 = *pbVar12 == *pbVar19;\n      pbVar12 = pbVar12 + (uint)bVar25 * -2 + 1;\n      pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar12 < *pbVar19;" (assignment_expression "bVar23 = *pbVar12 < *pbVar19" identifier = (binary_expression "*pbVar12 < *pbVar19" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar22 = *pbVar12 == *pbVar19;" (assignment_expression "bVar22 = *pbVar12 == *pbVar19" identifier = (binary_expression "*pbVar12 == *pbVar19" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n      return;\n    }" if (parenthesized_expression "((!bVar23 && !bVar22) != bVar23)" ( (binary_expression "(!bVar23 && !bVar22) != bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (labeled_statement "Dynobj::create_elf_hash_table(pdynamic_symbols,index + forced_local_count,&phash_1,&hashlen_1);" statement_identifier : (ERROR ":" :) (expression_statement "create_elf_hash_table(pdynamic_symbols,index + forced_local_count,&phash_1,&hashlen_1);" (call_expression "create_elf_hash_table(pdynamic_symbols,index + forced_local_count,&phash_1,&hashlen_1)" identifier (argument_list "(pdynamic_symbols,index + forced_local_count,&phash_1,&hashlen_1)" ( identifier , (binary_expression "index + forced_local_count" identifier + identifier) , (pointer_expression "&phash_1" & identifier) , (pointer_expression "&hashlen_1" & identifier) ))) ;)) (expression_statement "aVar11.od = &choose_output_section\n                         (this,(Relobj *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data;" (assignment_expression "aVar11.od = &choose_output_section\n                         (this,(Relobj *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data" (field_expression "aVar11.od" identifier . field_identifier) = (pointer_expression "&choose_output_section\n                         (this,(Relobj *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data" & (field_expression "choose_output_section\n                         (this,(Relobj *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)->super_Output_data" (call_expression "choose_output_section\n                         (this,(Relobj *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)" identifier (argument_list "(this,(Relobj *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,\n                          false)" ( identifier , (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "".hash"" " string_content ") , number_literal , number_literal , false , identifier , false , false , false ))) -> field_identifier))) ;) (expression_statement "pOVar8 = (Output_section_data *)operator_new(0x34);" (assignment_expression "pOVar8 = (Output_section_data *)operator_new(0x34)" identifier = (cast_expression "(Output_section_data *)operator_new(0x34)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "bVar25 = (pOVar8->super_Output_data).field_0x1c;" (assignment_expression "bVar25 = (pOVar8->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar8->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar8->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar8->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar8->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar8->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).address_" & (field_expression "(pOVar8->super_Output_data).address_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(Got_offset_list **)&pOVar8->addralign_ = local_5c;" (assignment_expression "*(Got_offset_list **)&pOVar8->addralign_ = local_5c" (pointer_expression "*(Got_offset_list **)&pOVar8->addralign_" * (cast_expression "(Got_offset_list **)&pOVar8->addralign_" ( (type_descriptor "Got_offset_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar8->addralign_" & (field_expression "pOVar8->addralign_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).address_" & (field_expression "(pOVar8->super_Output_data).address_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar8->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar8->output_section_ = (Output_section *)0x0" (field_expression "pOVar8->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pOVar8->super_Output_data).field_0x1c = bVar25 & 0xe0 | 10;" (assignment_expression "(pOVar8->super_Output_data).field_0x1c = bVar25 & 0xe0 | 10" (field_expression "(pOVar8->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar25 & 0xe0 | 10" (binary_expression "bVar25 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar8->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar8->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar8->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar8->addralign_ + 4)" ( (binary_expression "(int)&pOVar8->addralign_ + 4" (cast_expression "(int)&pOVar8->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar8->addralign_" & (field_expression "pOVar8->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen_1;" (assignment_expression "*(uint *)&(pOVar8->super_Output_data).data_size_ = hashlen_1" (pointer_expression "*(uint *)&(pOVar8->super_Output_data).data_size_" * (cast_expression "(uint *)&(pOVar8->super_Output_data).data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).data_size_" & (field_expression "(pOVar8->super_Output_data).data_size_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "(pOVar8->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;" (assignment_expression "(pOVar8->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" (field_expression "(pOVar8->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_const_buffer_00383c70" & identifier))) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).data_size_" & (field_expression "(pOVar8->super_Output_data).data_size_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash_1;" (assignment_expression "pOVar8[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)phash_1" (field_expression "pOVar8[1].super_Output_data._vptr_Output_data" (field_expression "pOVar8[1].super_Output_data" (subscript_expression "pOVar8[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)phash_1" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar8->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar8->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar8->super_Output_data).offset_" & (field_expression "(pOVar8->super_Output_data).offset_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar8->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar8->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar8->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar8->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar8->super_Output_data).offset_" & (field_expression "(pOVar8->super_Output_data).offset_" (parenthesized_expression "(pOVar8->super_Output_data)" ( (field_expression "pOVar8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)&pOVar8[1].super_Output_data.address_ = "** hash";" (assignment_expression "*(char **)&pOVar8[1].super_Output_data.address_ = "** hash"" (pointer_expression "*(char **)&pOVar8[1].super_Output_data.address_" * (cast_expression "(char **)&pOVar8[1].super_Output_data.address_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar8[1].super_Output_data.address_" & (field_expression "pOVar8[1].super_Output_data.address_" (field_expression "pOVar8[1].super_Output_data" (subscript_expression "pOVar8[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = (string_literal ""** hash"" " string_content ")) ;) (if_statement "if ((Output_section *)aVar11.val != (Output_section *)0x0) {\n    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n    if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n      }\n      ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n    }\n    if (parameters->target_ == (Target *)0x0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    iVar15 = *(int *)(*(int *)(parameters->target_ + 4) + 0x5c);\n    iVar13 = iVar15 + 7;\n    if (-1 < iVar15) {\n      iVar13 = iVar15;\n    }\n    Output_section::set_entsize((Output_section *)aVar11.od,CONCAT44(iVar13 >> 0x1f,iVar13 >> 3));\n  }" if (parenthesized_expression "((Output_section *)aVar11.val != (Output_section *)0x0)" ( (binary_expression "(Output_section *)aVar11.val != (Output_section *)0x0" (cast_expression "(Output_section *)aVar11.val" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar11.val" identifier . field_identifier)) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);\n    if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n      }\n      ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n    }\n    if (parameters->target_ == (Target *)0x0) {\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    iVar15 = *(int *)(*(int *)(parameters->target_ + 4) + 0x5c);\n    iVar13 = iVar15 + 7;\n    if (-1 < iVar15) {\n      iVar13 = iVar15;\n    }\n    Output_section::set_entsize((Output_section *)aVar11.od,CONCAT44(iVar13 >> 0x1f,iVar13 >> 3));\n  }" { (labeled_statement "Output_section::add_output_section_data((Output_section *)aVar11.od,pOVar8);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data((Output_section *)aVar11.od,pOVar8);" (call_expression "add_output_section_data((Output_section *)aVar11.od,pOVar8)" identifier (argument_list "((Output_section *)aVar11.od,pOVar8)" ( (cast_expression "(Output_section *)aVar11.od" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar11.od" identifier . field_identifier)) , identifier ))) ;)) (if_statement "if ((Output_section *)this_01.val != (Output_section *)0x0) {\n      if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n      }\n      ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n    }" if (parenthesized_expression "((Output_section *)this_01.val != (Output_section *)0x0)" ( (binary_expression "(Output_section *)this_01.val != (Output_section *)0x0" (cast_expression "(Output_section *)this_01.val" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_01.val" identifier . field_identifier)) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n      }\n      ((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;\n    }" { (if_statement "if (((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(aVar11.val + 0x90) & 8) != 0)) {\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n      }" if (parenthesized_expression "(((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(aVar11.val + 0x90) & 8) != 0))" ( (binary_expression "((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)) ||\n         ((*(byte *)(aVar11.val + 0x90) & 8) != 0)" (parenthesized_expression "((*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0))" ( (binary_expression "(*(uint *)(aVar11.val + 0x40) != 0) || ((*(byte *)(aVar11.val + 0x90) & 4) != 0)" (parenthesized_expression "(*(uint *)(aVar11.val + 0x40) != 0)" ( (binary_expression "*(uint *)(aVar11.val + 0x40) != 0" (pointer_expression "*(uint *)(aVar11.val + 0x40)" * (cast_expression "(uint *)(aVar11.val + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar11.val + 0x40)" ( (binary_expression "aVar11.val + 0x40" (field_expression "aVar11.val" identifier . field_identifier) + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(aVar11.val + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(aVar11.val + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(aVar11.val + 0x90) & 4)" ( (binary_expression "*(byte *)(aVar11.val + 0x90) & 4" (pointer_expression "*(byte *)(aVar11.val + 0x90)" * (cast_expression "(byte *)(aVar11.val + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar11.val + 0x90)" ( (binary_expression "aVar11.val + 0x90" (field_expression "aVar11.val" identifier . field_identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(aVar11.val + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(aVar11.val + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(aVar11.val + 0x90) & 8)" ( (binary_expression "*(byte *)(aVar11.val + 0x90) & 8" (pointer_expression "*(byte *)(aVar11.val + 0x90)" * (cast_expression "(byte *)(aVar11.val + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar11.val + 0x90)" ( (binary_expression "aVar11.val + 0x90" (field_expression "aVar11.val" identifier . field_identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_000a21c1:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n      }" { (labeled_statement "LAB_000a21c1:\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 "((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01;" (assignment_expression "((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym = (Symbol *)this_01" (field_expression "((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))->sym" (parenthesized_expression "((anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c))" ( (cast_expression "(anon_union_4_4_94c5dad9_for_u_ *)(aVar11.val + 0x3c)" ( (type_descriptor "anon_union_4_4_94c5dad9_for_u_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar11.val + 0x3c)" ( (binary_expression "aVar11.val + 0x3c" (field_expression "aVar11.val" identifier . field_identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(Symbol *)this_01" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (if_statement "if (parameters->target_ == (Target *)0x0) {\nLAB_000a2224:\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 "{\nLAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }" { (labeled_statement "LAB_000a2224:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");" statement_identifier : 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 "iVar15 = *(int *)(*(int *)(parameters->target_ + 4) + 0x5c);" (assignment_expression "iVar15 = *(int *)(*(int *)(parameters->target_ + 4) + 0x5c)" identifier = (pointer_expression "*(int *)(*(int *)(parameters->target_ + 4) + 0x5c)" * (cast_expression "(int *)(*(int *)(parameters->target_ + 4) + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(parameters->target_ + 4) + 0x5c)" ( (binary_expression "*(int *)(parameters->target_ + 4) + 0x5c" (pointer_expression "*(int *)(parameters->target_ + 4)" * (cast_expression "(int *)(parameters->target_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(parameters->target_ + 4)" ( (binary_expression "parameters->target_ + 4" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar13 = iVar15 + 7;" (assignment_expression "iVar13 = iVar15 + 7" identifier = (binary_expression "iVar15 + 7" identifier + number_literal)) ;) (if_statement "if (-1 < iVar15) {\n      iVar13 = iVar15;\n    }" if (parenthesized_expression "(-1 < iVar15)" ( (binary_expression "-1 < iVar15" number_literal < identifier) )) (compound_statement "{\n      iVar13 = iVar15;\n    }" { (expression_statement "iVar13 = iVar15;" (assignment_expression "iVar13 = iVar15" identifier = identifier) ;) })) (labeled_statement "Output_section::set_entsize((Output_section *)aVar11.od,CONCAT44(iVar13 >> 0x1f,iVar13 >> 3));" statement_identifier : (ERROR ":" :) (expression_statement "set_entsize((Output_section *)aVar11.od,CONCAT44(iVar13 >> 0x1f,iVar13 >> 3));" (call_expression "set_entsize((Output_section *)aVar11.od,CONCAT44(iVar13 >> 0x1f,iVar13 >> 3))" identifier (argument_list "((Output_section *)aVar11.od,CONCAT44(iVar13 >> 0x1f,iVar13 >> 3))" ( (cast_expression "(Output_section *)aVar11.od" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar11.od" identifier . field_identifier)) , (call_expression "CONCAT44(iVar13 >> 0x1f,iVar13 >> 3)" identifier (argument_list "(iVar13 >> 0x1f,iVar13 >> 3)" ( (binary_expression "iVar13 >> 0x1f" identifier >> number_literal) , (binary_expression "iVar13 >> 3" identifier >> number_literal) ))) ))) ;)) })) (if_statement "if (pOVar4 != (Output_data_dynamic *)0x0) {\n    local_24 = 4;\n    iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_finish;\n    local_20 = 0;\n    local_28 = (Output_data *)0x0;\n    if (iVar16._M_current ==\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage) {\n      local_2c.od = aVar11.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n      (iVar16._M_current)->od2 = (Output_data *)0x0;\n      (iVar16._M_current)->tag_ = DT_HASH;\n      (iVar16._M_current)->offset_ = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;\n    }\n  }" if (parenthesized_expression "(pOVar4 != (Output_data_dynamic *)0x0)" ( (binary_expression "pOVar4 != (Output_data_dynamic *)0x0" identifier != (cast_expression "(Output_data_dynamic *)0x0" ( (type_descriptor "Output_data_dynamic *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_24 = 4;\n    iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_finish;\n    local_20 = 0;\n    local_28 = (Output_data *)0x0;\n    if (iVar16._M_current ==\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage) {\n      local_2c.od = aVar11.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n      (iVar16._M_current)->od2 = (Output_data *)0x0;\n      (iVar16._M_current)->tag_ = DT_HASH;\n      (iVar16._M_current)->offset_ = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;\n    }\n  }" { (expression_statement "local_24 = 4;" (assignment_expression "local_24 = 4" identifier = number_literal) ;) (ERROR "iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar16._M_current =\n         (pOVar4->entries_).\n         super__Vector_base<gold" (field_expression "iVar16._M_current" identifier . field_identifier) = (binary_expression "(pOVar4->entries_).\n         super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n         super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n         ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n         ._M_impl._M_finish;" (field_expression "Dynamic_entry>_>\n         ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n         ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = (Output_data *)0x0;" (assignment_expression "local_28 = (Output_data *)0x0" identifier = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar16._M_current ==\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage) {\n      local_2c.od = aVar11.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }\n    else {\n      ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n      (iVar16._M_current)->od2 = (Output_data *)0x0;\n      (iVar16._M_current)->tag_ = DT_HASH;\n      (iVar16._M_current)->offset_ = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;\n    }" if (parenthesized_expression "(iVar16._M_current ==\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_end_of_storage)" ( (ERROR "iVar16._M_current ==\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::" (comma_expression "iVar16._M_current ==\n        (pOVar4->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (binary_expression "iVar16._M_current ==\n        (pOVar4->entries_).\n        super__Vector_base<gold" (field_expression "iVar16._M_current" identifier . field_identifier) == (binary_expression "(pOVar4->entries_).\n        super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n        super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Dynamic_entry>_>\n        ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n        ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n      local_2c.od = aVar11.od;\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);\n    }" { (expression_statement "local_2c.od = aVar11.od;" (assignment_expression "local_2c.od = aVar11.od" (field_expression "local_2c.od" identifier . field_identifier) = (field_expression "aVar11.od" identifier . field_identifier)) ;) (labeled_statement "std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::\n      vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier (ERROR "::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c);" (binary_expression "Dynamic_entry&>\n                (&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c)" ( (comma_expression "&pOVar4->entries_,iVar16,(Dynamic_entry *)&local_2c" (pointer_expression "&pOVar4->entries_" & (field_expression "pOVar4->entries_" identifier -> field_identifier)) , (comma_expression "iVar16,(Dynamic_entry *)&local_2c" identifier , (cast_expression "(Dynamic_entry *)&local_2c" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier)))) ))) ;))))) }) (else_clause "else {\n      ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n      (iVar16._M_current)->od2 = (Output_data *)0x0;\n      (iVar16._M_current)->tag_ = DT_HASH;\n      (iVar16._M_current)->offset_ = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;\n    }" else (compound_statement "{\n      ((iVar16._M_current)->u_).od = (Output_data *)aVar11;\n      (iVar16._M_current)->od2 = (Output_data *)0x0;\n      (iVar16._M_current)->tag_ = DT_HASH;\n      (iVar16._M_current)->offset_ = 0;\n      (pOVar4->entries_).\n      super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;\n    }" { (expression_statement "((iVar16._M_current)->u_).od = (Output_data *)aVar11;" (assignment_expression "((iVar16._M_current)->u_).od = (Output_data *)aVar11" (field_expression "((iVar16._M_current)->u_).od" (parenthesized_expression "((iVar16._M_current)->u_)" ( (field_expression "(iVar16._M_current)->u_" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (cast_expression "(Output_data *)aVar11" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(iVar16._M_current)->od2 = (Output_data *)0x0;" (assignment_expression "(iVar16._M_current)->od2 = (Output_data *)0x0" (field_expression "(iVar16._M_current)->od2" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(iVar16._M_current)->tag_ = DT_HASH;" (assignment_expression "(iVar16._M_current)->tag_ = DT_HASH" (field_expression "(iVar16._M_current)->tag_" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(iVar16._M_current)->offset_ = 0;" (assignment_expression "(iVar16._M_current)->offset_ = 0" (field_expression "(iVar16._M_current)->offset_" (parenthesized_expression "(iVar16._M_current)" ( (field_expression "iVar16._M_current" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (ERROR "(pOVar4->entries_).\n      super__Vector_base<gold::" (binary_expression "(pOVar4->entries_).\n      super__Vector_base<gold" (field_expression "(pOVar4->entries_).\n      super__Vector_base" (parenthesized_expression "(pOVar4->entries_)" ( (field_expression "pOVar4->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1;" (assignment_expression "Dynamic_entry>_>\n      ._M_impl._M_finish = iVar16._M_current + 1" (field_expression "Dynamic_entry>_>\n      ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n      ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "iVar16._M_current + 1" (field_expression "iVar16._M_current" identifier . field_identifier) + number_literal)) ;))) }))) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000a1710(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0xa171e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n  iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_0038f378 + 8) == 0;\n  if (bVar19) goto LAB_000a21dc;\n  pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002806f5;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_00280703;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_001e5200(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00383c70;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_000a1710(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0xa171e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n  iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_0038f378 + 8) == 0;\n  if (bVar19) goto LAB_000a21dc;\n  pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002806f5;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_00280703;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_001e5200(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00383c70;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000a1710(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0xa171e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n  iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_0038f378 + 8) == 0;\n  if (bVar19) goto LAB_000a21dc;\n  pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002806f5;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_00280703;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_001e5200(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00383c70;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "int extraout_ECX_01;" primitive_type identifier ;) (declaration "int extraout_ECX_02;" primitive_type identifier ;) (declaration "int extraout_ECX_03;" primitive_type identifier ;) (declaration "int extraout_ECX_04;" primitive_type identifier ;) (declaration "int extraout_ECX_05;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xa171e;" (assignment_expression "uStack_14 = 0xa171e" identifier = number_literal) ;) (expression_statement "piVar4 = *(int **)(param_1 + 0x130);" (assignment_expression "piVar4 = *(int **)(param_1 + 0x130)" identifier = (pointer_expression "*(int **)(param_1 + 0x130)" * (cast_expression "(int **)(param_1 + 0x130)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x130)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" if (parenthesized_expression "(piVar4 != *(int **)(param_1 + 0x134))" ( (binary_expression "piVar4 != *(int **)(param_1 + 0x134)" identifier != (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" { (do_statement "do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);" do (compound_statement "{\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    }" { (while_statement "while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }" while (parenthesized_expression "(iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0)" ( (comma_expression "iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) , (binary_expression "(*(byte *)(iVar3 + 0x90) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 2)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 2" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal)) )) (compound_statement "{\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }" { (if_statement "if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" { (expression_statement "FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");" (call_expression "FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index")" identifier (argument_list "("../../gold/output.h",0xda3,"set_dynsym_index")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_dynsym_index"" " string_content ") ))) ;) })) (expression_statement "*(int *)(iVar3 + 0x68) = iVar13;" (assignment_expression "*(int *)(iVar3 + 0x68) = iVar13" (pointer_expression "*(int *)(iVar3 + 0x68)" * (cast_expression "(int *)(iVar3 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (if_statement "if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;" if (parenthesized_expression "(*(int **)(param_1 + 0x134) == piVar4)" ( (binary_expression "*(int **)(param_1 + 0x134) == piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_000a177e;" goto statement_identifier ;)) })) (expression_statement "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + 0x68)" * (cast_expression "(undefined4 *)(iVar3 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x134) != piVar4)" ( (binary_expression "*(int **)(param_1 + 0x134) != piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) != identifier) )) ;) })) (labeled_statement "LAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;" statement_identifier : (expression_statement "puVar5 = (undefined4 *)*param_2;" (assignment_expression "puVar5 = (undefined4 *)*param_2" identifier = (cast_expression "(undefined4 *)*param_2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) (if_statement "if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" if (parenthesized_expression "(puVar5 != (undefined4 *)param_2[1])" ( (binary_expression "puVar5 != (undefined4 *)param_2[1]" identifier != (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" { (do_statement "do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);" do (compound_statement "{\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    }" { (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);" (assignment_expression "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" identifier = (call_expression "(**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" (parenthesized_expression "(**(code **)(*piVar4 + 0xd0))" ( (pointer_expression "**(code **)(*piVar4 + 0xd0)" * (pointer_expression "*(code **)(*piVar4 + 0xd0)" * (cast_expression "(code **)(*piVar4 + 0xd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0xd0)" ( (binary_expression "*piVar4 + 0xd0" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4,iVar13)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "((undefined4 *)param_2[1] != puVar5)" ( (binary_expression "(undefined4 *)param_2[1] != puVar5" (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);" (assignment_expression "iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" identifier = (call_expression "FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" identifier (argument_list "(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) , identifier , (binary_expression "param_1 + 0xa0" identifier + number_literal) , identifier )))) ;) (expression_statement "*param_5 = iVar13;" (assignment_expression "*param_5 = iVar13" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "*param_6 = local_40;" (assignment_expression "*param_6 = local_40" (pointer_expression "*param_6" * identifier) = identifier) ;) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a2224;" goto statement_identifier ;)) (expression_statement "iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" if (parenthesized_expression "(iVar1 == 0x20)" ( (binary_expression "iVar1 == 0x20" identifier == number_literal) )) (compound_statement "{\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }" { (expression_statement "local_5c = 4;" (assignment_expression "local_5c = 4" identifier = number_literal) ;) (expression_statement "local_58 = (int *)0x10;" (assignment_expression "local_58 = (int *)0x10" identifier = (cast_expression "(int *)0x10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" else (compound_statement "{\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" { (if_statement "if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" if (parenthesized_expression "(iVar1 != 0x40)" ( (binary_expression "iVar1 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" { (expression_statement "FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);" (call_expression "FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" identifier (argument_list "("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_dynamic_symtab"" " string_content ") , identifier ))) ;) })) (expression_statement "local_5c = 8;" (assignment_expression "local_5c = 8" identifier = number_literal) ;) (expression_statement "local_58 = (int *)0x18;" (assignment_expression "local_58 = (int *)0x18" identifier = (cast_expression "(int *)0x18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);" (assignment_expression "piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynsym"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" { (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x30)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = (int)local_58 * iVar3;" (assignment_expression "puVar5[3] = (int)local_58 * iVar3" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (binary_expression "(int)local_58 * iVar3" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*puVar5 = &PTR_FUN_00389d98;" (assignment_expression "*puVar5 = &PTR_FUN_00389d98" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00389d98" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = "** dynsym";" (assignment_expression "puVar5[0xb] = "** dynsym"" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = (string_literal ""** dynsym"" " string_content ")) ;) (expression_statement "FUN_000f2600(piVar4,puVar5);" (call_expression "FUN_000f2600(piVar4,puVar5)" identifier (argument_list "(piVar4,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" if (parenthesized_expression "(((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))))" ( (binary_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" (parenthesized_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0))" ( (binary_expression "(piVar4[0x11] != 0) || (piVar4[0x12] != 0)" (parenthesized_expression "(piVar4[0x11] != 0)" ( (binary_expression "piVar4[0x11] != 0" (subscript_expression "piVar4[0x11]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(piVar4[0x12] != 0)" ( (binary_expression "piVar4[0x12] != 0" (subscript_expression "piVar4[0x12]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" ( (parenthesized_expression "(local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))" ( (binary_expression "local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)" (binary_expression "local_40 + iVar13 != piVar4[0x13]" (binary_expression "local_40 + iVar13" identifier + identifier) != (subscript_expression "piVar4[0x13]" identifier [ number_literal ])) && (parenthesized_expression "(piVar4[0x13] != 0)" ( (binary_expression "piVar4[0x13] != 0" (subscript_expression "piVar4[0x13]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" { (expression_statement "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);" (call_expression "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c)" identifier (argument_list "("../../gold/output.h",0xd5e,"set_info",local_5c)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info"" " string_content ") , identifier ))) ;) })) (expression_statement "piVar4[0x13] = local_40 + iVar13;" (assignment_expression "piVar4[0x13] = local_40 + iVar13" (subscript_expression "piVar4[0x13]" identifier [ number_literal ]) = (binary_expression "local_40 + iVar13" identifier + identifier)) ;) (expression_statement "FUN_000ee490(piVar4,local_58,0);" (call_expression "FUN_000ee490(piVar4,local_58,0)" identifier (argument_list "(piVar4,local_58,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "piVar4[9] = local_5c;" (assignment_expression "piVar4[9] = local_5c" (subscript_expression "piVar4[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[10] = 0;" (assignment_expression "piVar4[10] = 0" (subscript_expression "piVar4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(param_1 + 0x17c) = piVar4;" (assignment_expression "*(int **)(param_1 + 0x17c) = piVar4" (pointer_expression "*(int **)(param_1 + 0x17c)" * (cast_expression "(int **)(param_1 + 0x17c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x17c)" ( (binary_expression "param_1 + 0x17c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x18c)" identifier = (pointer_expression "*(int *)(param_1 + 0x18c)" * (cast_expression "(int *)(param_1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" { (expression_statement "piVar8 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar8 = *(int **)(iVar1 + 0x30)" identifier = (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 6;" (assignment_expression "local_24 = 6" identifier = number_literal) ;) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" identifier = (pointer_expression "*(int **)(iVar1 + 0x34)" * (cast_expression "(int **)(iVar1 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" if (parenthesized_expression "(piVar8 == piVar11)" ( (binary_expression "piVar8 == piVar11" identifier == identifier) )) (compound_statement "{\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }" { (expression_statement "local_2c = piVar4;" (assignment_expression "local_2c = piVar4" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "piVar6 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar6 = *(int **)(iVar1 + 0x30)" identifier = (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" identifier = (pointer_expression "*(int **)(iVar1 + 0x34)" * (cast_expression "(int **)(iVar1 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" else (compound_statement "{\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" { (expression_statement "*piVar8 = (int)piVar4;" (assignment_expression "*piVar8 = (int)piVar4" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6 = piVar8 + 4;" (assignment_expression "piVar6 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[2] = 6;" (assignment_expression "piVar8[2] = 6" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6" (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 0xb;" (assignment_expression "local_24 = 0xb" identifier = number_literal) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c = local_58;" (assignment_expression "local_2c = local_58" identifier = identifier) ;) (if_statement "if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" if (parenthesized_expression "(piVar11 == piVar6)" ( (binary_expression "piVar11 == piVar6" identifier == identifier) )) (compound_statement "{\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }" { (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" else (compound_statement "{\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" { (expression_statement "*piVar6 = (int)local_58;" (assignment_expression "*piVar6 = (int)local_58" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6[1] = local_28;" (assignment_expression "piVar6[1] = local_28" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[2] = 0xb;" (assignment_expression "piVar6[2] = 0xb" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[3] = -1;" (assignment_expression "piVar6[3] = -1" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6 + 4;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6 + 4" (pointer_expression "*(int **)(iVar1 + 0x30)" * (cast_expression "(int **)(iVar1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "piVar6 + 4" identifier + number_literal)) ;) }))) })) (expression_statement "puVar5 = *(undefined4 **)(param_1 + 0x124);" (assignment_expression "puVar5 = *(undefined4 **)(param_1 + 0x124)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x124)" * (cast_expression "(undefined4 **)(param_1 + 0x124)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" if (parenthesized_expression "(puVar5 != *(undefined4 **)(param_1 + 0x128))" ( (binary_expression "puVar5 != *(undefined4 **)(param_1 + 0x128)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 0x128)" * (cast_expression "(undefined4 **)(param_1 + 0x128)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);" do (compound_statement "{\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    }" { (expression_statement "uVar2 = *puVar5;" (assignment_expression "uVar2 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = FUN_000f1220(uVar2);" (assignment_expression "iVar7 = FUN_000f1220(uVar2)" identifier = (call_expression "FUN_000f1220(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "uVar14 = uVar14 + iVar7;" (assignment_expression "uVar14 = uVar14 + iVar7" identifier = (binary_expression "uVar14 + iVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_1 + 0x128) != puVar5)" ( (binary_expression "*(undefined4 **)(param_1 + 0x128) != puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x128)" * (cast_expression "(undefined4 **)(param_1 + 0x128)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) (if_statement "if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" if (parenthesized_expression "((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0))" ( (binary_expression "(0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" (parenthesized_expression "(0xfeff < uVar14)" ( (binary_expression "0xfeff < uVar14" number_literal < identifier) )) && (parenthesized_expression "(iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0" (assignment_expression "iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" identifier = (call_expression "FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynsym_shndx"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" { (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x38);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x38)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x38)" identifier (argument_list "(0x38)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = iVar3 << 2;" (assignment_expression "puVar5[3] = iVar3 << 2" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (binary_expression "iVar3 << 2" identifier << number_literal)) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = 4;" (assignment_expression "puVar5[9] = 4" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = &PTR_FUN_00383db4;" (assignment_expression "*puVar5 = &PTR_FUN_00383db4" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00383db4" & identifier)) ;) (expression_statement "puVar5[0xb] = 0;" (assignment_expression "puVar5[0xb] = 0" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = 0;" (assignment_expression "puVar5[0xc] = 0" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xd] = 0;" (assignment_expression "puVar5[0xd] = 0" (subscript_expression "puVar5[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(param_1 + 0x180) = puVar5;" (assignment_expression "*(undefined4 **)(param_1 + 0x180) = puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x180)" * (cast_expression "(undefined4 **)(param_1 + 0x180)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x180)" ( (binary_expression "param_1 + 0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_000f2600(iVar7,puVar5);" (call_expression "FUN_000f2600(iVar7,puVar5)" identifier (argument_list "(iVar7,puVar5)" ( identifier , identifier ))) ;) (if_statement "if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;" if (parenthesized_expression "((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))" ( (binary_expression "(*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x40) != 0" (pointer_expression "*(int *)(iVar7 + 0x40)" * (cast_expression "(int *)(iVar7 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x40)" ( (binary_expression "iVar7 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" ( (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))" ( (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)" (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar7 + 0x90) & 4" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar7 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar7 + 0x90) & 8" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar7 + 0x24) = 4;" (assignment_expression "*(undefined4 *)(iVar7 + 0x24) = 4" (pointer_expression "*(undefined4 *)(iVar7 + 0x24)" * (cast_expression "(undefined4 *)(iVar7 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x24)" ( (binary_expression "iVar7 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x28) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x28)" * (cast_expression "(undefined4 *)(iVar7 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x3c) = piVar4;" (assignment_expression "*(int **)(iVar7 + 0x3c) = piVar4" (pointer_expression "*(int **)(iVar7 + 0x3c)" * (cast_expression "(int **)(iVar7 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x3c)" ( (binary_expression "iVar7 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_000ee490(iVar7,4,0);" (call_expression "FUN_000ee490(iVar7,4,0)" identifier (argument_list "(iVar7,4,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;" (assignment_expression "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" * (cast_expression "(byte *)(iVar7 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x90)" ( (binary_expression "iVar7 + 0x90" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + 0x1ca) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x1ca) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x1ca)" * (cast_expression "(undefined1 *)(param_1 + 0x1ca)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1ca)" ( (binary_expression "param_1 + 0x1ca" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);" (assignment_expression "piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".dynstr"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "*param_4 = piVar8;" (assignment_expression "*param_4 = piVar8" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "iVar3 = extraout_ECX_00;" (assignment_expression "iVar3 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" { (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x30)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "puVar5[0xb] = param_1 + 0xa0;" (assignment_expression "puVar5[0xb] = param_1 + 0xa0" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = (binary_expression "param_1 + 0xa0" identifier + number_literal)) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = 1;" (assignment_expression "puVar5[9] = 1" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar5 = &PTR_FUN_00383cdc;" (assignment_expression "*puVar5 = &PTR_FUN_00383cdc" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00383cdc" & identifier)) ;) (expression_statement "FUN_000f2600(piVar8,puVar5);" (call_expression "FUN_000f2600(piVar8,puVar5)" identifier (argument_list "(piVar8,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }" { (if_statement "if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;" if (parenthesized_expression "(((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0))" ( (binary_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)" (parenthesized_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0))" ( (binary_expression "(piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)" (parenthesized_expression "(piVar4[0x10] != 0)" ( (binary_expression "piVar4[0x10] != 0" (subscript_expression "piVar4[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(piVar4 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 4)" ( (binary_expression "*(byte *)(piVar4 + 0x24) & 4" (pointer_expression "*(byte *)(piVar4 + 0x24)" * (cast_expression "(byte *)(piVar4 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x24)" ( (binary_expression "piVar4 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(piVar4 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 8)" ( (binary_expression "*(byte *)(piVar4 + 0x24) & 8" (pointer_expression "*(byte *)(piVar4 + 0x24)" * (cast_expression "(byte *)(piVar4 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 0x24)" ( (binary_expression "piVar4 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "piVar4[0xf] = (int)piVar8;" (assignment_expression "piVar4[0xf] = (int)piVar8" (subscript_expression "piVar4[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 0x184);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x184)" identifier = (pointer_expression "*(int *)(param_1 + 0x184)" * (cast_expression "(int *)(param_1 + 0x184)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x184)" ( (binary_expression "param_1 + 0x184" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" { (if_statement "if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;" if (parenthesized_expression "(((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0))" ( (binary_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0))" ( (binary_expression "(*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" * (cast_expression "(int *)(iVar3 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 4" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 8" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "*(int **)(iVar3 + 0x3c) = piVar8;" (assignment_expression "*(int **)(iVar3 + 0x3c) = piVar8" (pointer_expression "*(int **)(iVar3 + 0x3c)" * (cast_expression "(int **)(iVar3 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x3c)" ( (binary_expression "iVar3 + 0x3c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" { (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 5;" (assignment_expression "local_24 = 5" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" if (parenthesized_expression "(puVar5 == puVar12)" ( (binary_expression "puVar5 == puVar12" identifier == identifier) )) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }" { (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar12,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "puVar9 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar9 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" else (compound_statement "{\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" { (expression_statement "*puVar5 = piVar8;" (assignment_expression "*puVar5 = piVar8" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar9 = puVar5 + 4;" (assignment_expression "puVar9 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 5;" (assignment_expression "puVar5[2] = 5" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 10;" (assignment_expression "local_24 = 10" identifier = number_literal) ;) (expression_statement "local_20 = 0xfffffffe;" (assignment_expression "local_20 = 0xfffffffe" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" if (parenthesized_expression "(puVar9 == puVar12)" ( (binary_expression "puVar9 == puVar12" identifier == identifier) )) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }" { (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar9,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "iVar3 = extraout_ECX_04;" (assignment_expression "iVar3 = extraout_ECX_04" identifier = identifier) ;) }) (else_clause "else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" else (compound_statement "{\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" { (expression_statement "*puVar9 = piVar8;" (assignment_expression "*puVar9 = piVar8" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[2] = 10;" (assignment_expression "puVar9[2] = 10" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0xfffffffe;" (assignment_expression "puVar9[3] = 0xfffffffe" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" identifier = identifier) ;) }))) })) })) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar19 = *(int *)(DAT_0038f378 + 8) == 0;" (assignment_expression "bVar19 = *(int *)(DAT_0038f378 + 8) == 0" identifier = (binary_expression "*(int *)(DAT_0038f378 + 8) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (bVar19) goto LAB_000a21dc;" if (parenthesized_expression "(bVar19)" ( identifier )) (goto_statement "goto LAB_000a21dc;" goto statement_identifier ;)) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" identifier = (pointer_expression "*(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" * (cast_expression "(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) + 0x1b30)" ( (binary_expression "*(int *)(DAT_0038f378 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_002806f5;" (assignment_expression "pbVar16 = &DAT_002806f5" identifier = (pointer_expression "&DAT_002806f5" & identifier)) ;) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);" do (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar15 < *pbVar16;" (assignment_expression "bVar17 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar19 = *pbVar15 == *pbVar16;" (assignment_expression "bVar19 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar17 = (!bVar17 && !bVar19) == bVar17;" (assignment_expression "bVar17 = (!bVar17 && !bVar19) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar19) == bVar17" (parenthesized_expression "(!bVar17 && !bVar19)" ( (binary_expression "!bVar17 && !bVar19" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }" { (labeled_statement "LAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);" statement_identifier : (expression_statement "FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);" (call_expression "FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38)" identifier (argument_list "(param_7,local_40 + iVar13,&local_3c,&local_38)" ( identifier , (binary_expression "local_40 + iVar13" identifier + identifier) , (pointer_expression "&local_3c" & identifier) , (pointer_expression "&local_38" & identifier) ))) ;)) (expression_statement "param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".gnu.hash"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = local_38;" (assignment_expression "puVar5[3] = local_38" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = &PTR_FUN_00383c70;" (assignment_expression "*puVar5 = &PTR_FUN_00383c70" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = local_3c;" (assignment_expression "puVar5[0xb] = local_3c" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = (string_literal ""** hash"" " string_content ")) ;) (expression_statement "iVar3 = extraout_ECX_01;" (assignment_expression "iVar3 = extraout_ECX_01" identifier = identifier) ;) (if_statement "if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" { (expression_statement "FUN_000f2600(param_2,puVar5);" (call_expression "FUN_000f2600(param_2,puVar5)" identifier (argument_list "(param_2,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }" { (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;" if (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0))" ( (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" ( (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" ( (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000a21c1;" goto statement_identifier ;)) (expression_statement "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a2224;" goto statement_identifier ;)) (expression_statement "iVar3 = extraout_ECX_02;" (assignment_expression "iVar3 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" if (parenthesized_expression "(**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20)" ( (binary_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20" (pointer_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) ))))) == number_literal) )) (compound_statement "{\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" { (expression_statement "FUN_000ee490(param_2,4,0);" (call_expression "FUN_000ee490(param_2,4,0)" identifier (argument_list "(param_2,4,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "iVar3 = extraout_ECX_03;" (assignment_expression "iVar3 = extraout_ECX_03" identifier = identifier) ;) })) (if_statement "if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" { (expression_statement "local_24 = 0x6ffffef5;" (assignment_expression "local_24 = 0x6ffffef5" identifier = number_literal) ;) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" identifier = identifier) ;) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" if (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" ( (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" identifier == (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }" { (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "iVar3 = extraout_ECX_05;" (assignment_expression "iVar3 = extraout_ECX_05" identifier = identifier) ;) }) (else_clause "else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" else (compound_statement "{\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" { (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0x6ffffef5;" (assignment_expression "puVar5[2] = 0x6ffffef5" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }))) })) })) (expression_statement "bVar17 = *(int *)(DAT_0038f378 + 8) == 0;" (assignment_expression "bVar17 = *(int *)(DAT_0038f378 + 8) == 0" identifier = (binary_expression "*(int *)(DAT_0038f378 + 8) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" { (labeled_statement "LAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);" statement_identifier : (expression_statement "FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",iVar3)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" identifier = (pointer_expression "*(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" * (cast_expression "(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) + 0x1b30)" ( (binary_expression "*(int *)(DAT_0038f378 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }" else (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_00280708;" (assignment_expression "pbVar16 = &DAT_00280708" identifier = (pointer_expression "&DAT_00280708" & identifier)) ;) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" do (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar15 < *pbVar16;" (assignment_expression "bVar18 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "bVar17 = (!bVar18 && !bVar17) == bVar18;" (assignment_expression "bVar17 = (!bVar18 && !bVar17) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar17) == bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" ( (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar17) goto LAB_000a1d90;" if (parenthesized_expression "(bVar17)" ( identifier )) (goto_statement "goto LAB_000a1d90;" goto statement_identifier ;)) }))) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_00280703;" (assignment_expression "pbVar16 = &DAT_00280703" identifier = (pointer_expression "&DAT_00280703" & identifier)) ;) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);" do (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar15 < *pbVar16;" (assignment_expression "bVar19 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar17 = (!bVar19 && !bVar17) == bVar19;" (assignment_expression "bVar17 = (!bVar19 && !bVar17) == bVar19" identifier = (binary_expression "(!bVar19 && !bVar17) == bVar19" (parenthesized_expression "(!bVar19 && !bVar17)" ( (binary_expression "!bVar19 && !bVar17" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar15 = &DAT_00280708;" (assignment_expression "pbVar15 = &DAT_00280708" identifier = (pointer_expression "&DAT_00280708" & identifier)) ;) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" do (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar15;" (assignment_expression "bVar18 = *pbVar10 < *pbVar15" identifier = (binary_expression "*pbVar10 < *pbVar15" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar17 = *pbVar10 == *pbVar15;" (assignment_expression "bVar17 = *pbVar10 == *pbVar15" identifier = (binary_expression "*pbVar10 == *pbVar15" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }" if (parenthesized_expression "((!bVar18 && !bVar17) != bVar18)" ( (binary_expression "(!bVar18 && !bVar17) != bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" ( (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) != identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (expression_statement "FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);" (call_expression "FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30)" identifier (argument_list "(param_7,iVar13 + local_40,&local_34,&local_30)" ( identifier , (binary_expression "iVar13 + local_40" identifier + identifier) , (pointer_expression "&local_34" & identifier) , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0)" identifier = (cast_expression "(int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".hash",5,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".hash"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" * (cast_expression "(byte *)(puVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 7)" ( (binary_expression "puVar5 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = local_30;" (assignment_expression "puVar5[3] = local_30" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = &PTR_FUN_00383c70;" (assignment_expression "*puVar5 = &PTR_FUN_00383c70" (pointer_expression "*puVar5" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xb] = local_34;" (assignment_expression "puVar5[0xb] = local_34" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" identifier [ number_literal ]) = (string_literal ""** hash"" " string_content ")) ;) (if_statement "if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" { (expression_statement "FUN_000f2600(param_2,puVar5);" (call_expression "FUN_000f2600(param_2,puVar5)" identifier (argument_list "(param_2,puVar5)" ( identifier , identifier ))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" { (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }" if (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0))" ( (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" ( (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" ( (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" ( (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" * (cast_expression "(byte *)(param_2 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24)" ( (binary_expression "param_2 + 0x24" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }" { (labeled_statement "LAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" statement_identifier : (expression_statement "FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_00069d00("../../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 "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }" { (labeled_statement "LAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);" statement_identifier : (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",param_2)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;)) })) (expression_statement "iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);" (assignment_expression "iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" * (cast_expression "(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" ( (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar3 = iVar13 + 7;" (assignment_expression "iVar3 = iVar13 + 7" identifier = (binary_expression "iVar13 + 7" identifier + number_literal)) ;) (if_statement "if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }" if (parenthesized_expression "(-1 < iVar13)" ( (binary_expression "-1 < iVar13" number_literal < identifier) )) (compound_statement "{\n      iVar3 = iVar13;\n    }" { (expression_statement "iVar3 = iVar13;" (assignment_expression "iVar3 = iVar13" identifier = identifier) ;) })) (expression_statement "FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);" (call_expression "FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f)" identifier (argument_list "(param_2,iVar3 >> 3,iVar3 >> 0x1f)" ( identifier , (binary_expression "iVar3 >> 3" identifier >> number_literal) , (binary_expression "iVar3 >> 0x1f" identifier >> number_literal) ))) ;) })) (if_statement "if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" { (expression_statement "local_24 = 4;" (assignment_expression "local_24 = 4" identifier = number_literal) ;) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" if (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" ( (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" identifier == (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" * (cast_expression "(undefined4 **)(iVar1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }" { (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c)" identifier (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" else (compound_statement "{\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" { (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 4;" (assignment_expression "puVar5[2] = 4" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" * (cast_expression "(undefined4 **)(iVar1 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) )))) = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (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 IDENT == 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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression 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 TYPE (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))) ;)) (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 TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , IDENT , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (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 TYPE (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * 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 (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 ]) = (string_literal " string_content ")) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 (binary_expression IDENT + IDENT) != (subscript_expression IDENT [ LIT ])) && (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 ") , IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (call_expression IDENT (argument_list ( IDENT , 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) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 IDENT != LIT) )) (compound_statement { (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 TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , 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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (return_statement return ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , 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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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 ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT >> LIT) , (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) (return_statement return ;) })))
(function_definition "void FUN_000a1710(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0xa171e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n  iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_0038f378 + 8) == 0;\n  if (bVar19) goto LAB_000a21dc;\n  pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002806f5;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_00280703;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_001e5200(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00383c70;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000a1710(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" (identifier "FUN_000a1710") (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,\n                 int *param_6,undefined4 param_7,undefined4 param_8)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  undefined4 *puVar9;\n  byte *pbVar10;\n  undefined4 extraout_ECX;\n  int extraout_ECX_00;\n  int extraout_ECX_01;\n  int extraout_ECX_02;\n  int extraout_ECX_03;\n  int extraout_ECX_04;\n  int extraout_ECX_05;\n  int *piVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  uint uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  int local_5c;\n  int *local_58;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int *local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar20 = 0;\n  iVar13 = 1;\n  uStack_14 = 0xa171e;\n  piVar4 = *(int **)(param_1 + 0x130);\n  if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }\nLAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;\n  if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }\n  local_40 = 0;\n  iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);\n  *param_5 = iVar13;\n  *param_6 = local_40;\n  if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n  iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);\n  if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }\n  piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);\n  if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }\n  iVar1 = *(int *)(param_1 + 0x18c);\n  if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_1 + 0x124);\n  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }\n  piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);\n  *param_4 = piVar8;\n  iVar3 = extraout_ECX_00;\n  if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }\n  bVar17 = false;\n  bVar19 = *(int *)(DAT_0038f378 + 8) == 0;\n  if (bVar19) goto LAB_000a21dc;\n  pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  iVar3 = 4;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_002806f5;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar18 = false;\n  bVar17 = (!bVar17 && !bVar19) == bVar17;\n  if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }\n  bVar19 = false;\n  iVar3 = 5;\n  pbVar15 = pbVar10;\n  pbVar16 = &DAT_00280703;\n  do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);\n  bVar18 = false;\n  bVar17 = (!bVar19 && !bVar17) == bVar19;\n  if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }\n  FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);\n  param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);\n  puVar5 = (undefined4 *)FUN_001e5200(0x34);\n  puVar5[1] = 0;\n  puVar5[9] = local_5c;\n  puVar5[2] = 0;\n  puVar5[8] = 0;\n  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n  puVar5[10] = 0;\n  puVar5[3] = local_30;\n  *puVar5 = &PTR_FUN_00383c70;\n  puVar5[4] = 0;\n  puVar5[0xb] = local_34;\n  puVar5[5] = 0xffffffff;\n  puVar5[6] = 0xffffffff;\n  puVar5[0xc] = "** hash";\n  if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }\n  if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "int extraout_ECX_00;" (primitive_type "int") (identifier "extraout_ECX_00") (; ";")) (declaration "int extraout_ECX_01;" (primitive_type "int") (identifier "extraout_ECX_01") (; ";")) (declaration "int extraout_ECX_02;" (primitive_type "int") (identifier "extraout_ECX_02") (; ";")) (declaration "int extraout_ECX_03;" (primitive_type "int") (identifier "extraout_ECX_03") (; ";")) (declaration "int extraout_ECX_04;" (primitive_type "int") (identifier "extraout_ECX_04") (; ";")) (declaration "int extraout_ECX_05;" (primitive_type "int") (identifier "extraout_ECX_05") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "bool bVar19;" (primitive_type "bool") (identifier "bVar19") (; ";")) (declaration "byte bVar20;" (type_identifier "byte") (identifier "bVar20") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "int *local_58;" (primitive_type "int") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int *local_2c;" (primitive_type "int") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" (identifier "bVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" (identifier "iVar13") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_14 = 0xa171e;" (assignment_expression "uStack_14 = 0xa171e" (identifier "uStack_14") (= "=") (number_literal "0xa171e")) (; ";")) (expression_statement "piVar4 = *(int **)(param_1 + 0x130);" (assignment_expression "piVar4 = *(int **)(param_1 + 0x130)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(param_1 + 0x130)" (* "*") (cast_expression "(int **)(param_1 + 0x130)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x130)" (( "(") (binary_expression "param_1 + 0x130" (identifier "param_1") (+ "+") (number_literal "0x130")) () ")"))))) (; ";")) (if_statement "if (piVar4 != *(int **)(param_1 + 0x134)) {\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" (if "if") (parenthesized_expression "(piVar4 != *(int **)(param_1 + 0x134))" (( "(") (binary_expression "piVar4 != *(int **)(param_1 + 0x134)" (identifier "piVar4") (!= "!=") (pointer_expression "*(int **)(param_1 + 0x134)" (* "*") (cast_expression "(int **)(param_1 + 0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x134)" (( "(") (binary_expression "param_1 + 0x134" (identifier "param_1") (+ "+") (number_literal "0x134")) () ")"))))) () ")")) (compound_statement "{\n    do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);\n  }" ({ "{") (do_statement "do {\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    } while (*(int **)(param_1 + 0x134) != piVar4);" (do "do") (compound_statement "{\n      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }\n      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;\n      piVar4 = piVar4 + 1;\n    }" ({ "{") (while_statement "while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }" (while "while") (parenthesized_expression "(iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0)" (( "(") (comma_expression "iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0" (assignment_expression "iVar3 = *piVar4" (identifier "iVar3") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (, ",") (binary_expression "(*(byte *)(iVar3 + 0x90) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 2)" (( "(") (binary_expression "*(byte *)(iVar3 + 0x90) & 2" (pointer_expression "*(byte *)(iVar3 + 0x90)" (* "*") (cast_expression "(byte *)(iVar3 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x90)" (( "(") (binary_expression "iVar3 + 0x90" (identifier "iVar3") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }\n        *(int *)(iVar3 + 0x68) = iVar13;\n        piVar4 = piVar4 + 1;\n        iVar13 = iVar13 + 1;\n        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;\n      }" ({ "{") (if_statement "if (iVar13 == 0) {\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");\n        }" ({ "{") (expression_statement "FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");" (call_expression "FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index")" (identifier "FUN_00069d00") (argument_list "("../../gold/output.h",0xda3,"set_dynsym_index")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xda3") (, ",") (string_literal ""set_dynsym_index"" (" """) (string_content "set_dynsym_index") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar3 + 0x68) = iVar13;" (assignment_expression "*(int *)(iVar3 + 0x68) = iVar13" (pointer_expression "*(int *)(iVar3 + 0x68)" (* "*") (cast_expression "(int *)(iVar3 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x68)" (( "(") (binary_expression "iVar3 + 0x68" (identifier "iVar3") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" (identifier "piVar4") (= "=") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;" (if "if") (parenthesized_expression "(*(int **)(param_1 + 0x134) == piVar4)" (( "(") (binary_expression "*(int **)(param_1 + 0x134) == piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" (* "*") (cast_expression "(int **)(param_1 + 0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x134)" (( "(") (binary_expression "param_1 + 0x134" (identifier "param_1") (+ "+") (number_literal "0x134")) () ")")))) (== "==") (identifier "piVar4")) () ")")) (goto_statement "goto LAB_000a177e;" (goto "goto") (statement_identifier "LAB_000a177e") (; ";"))) (} "}"))) (expression_statement "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar3 + 0x68) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar3 + 0x68)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x68)" (( "(") (binary_expression "iVar3 + 0x68" (identifier "iVar3") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "piVar4 = piVar4 + 1;" (assignment_expression "piVar4 = piVar4 + 1" (identifier "piVar4") (= "=") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_1 + 0x134) != piVar4)" (( "(") (binary_expression "*(int **)(param_1 + 0x134) != piVar4" (pointer_expression "*(int **)(param_1 + 0x134)" (* "*") (cast_expression "(int **)(param_1 + 0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x134)" (( "(") (binary_expression "param_1 + 0x134" (identifier "param_1") (+ "+") (number_literal "0x134")) () ")")))) (!= "!=") (identifier "piVar4")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000a177e:\n  puVar5 = (undefined4 *)*param_2;" (statement_identifier "LAB_000a177e") (: ":") (expression_statement "puVar5 = (undefined4 *)*param_2;" (assignment_expression "puVar5 = (undefined4 *)*param_2" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*param_2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";"))) (if_statement "if (puVar5 != (undefined4 *)param_2[1]) {\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" (if "if") (parenthesized_expression "(puVar5 != (undefined4 *)param_2[1])" (( "(") (binary_expression "puVar5 != (undefined4 *)param_2[1]" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)param_2[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n    do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);\n  }" ({ "{") (do_statement "do {\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    } while ((undefined4 *)param_2[1] != puVar5);" (do "do") (compound_statement "{\n      piVar4 = (int *)*puVar5;\n      puVar5 = puVar5 + 1;\n      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);\n    }" ({ "{") (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" (identifier "piVar4") (= "=") (cast_expression "(int *)*puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";")) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);" (assignment_expression "iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(*piVar4 + 0xd0))(piVar4,iVar13)" (parenthesized_expression "(**(code **)(*piVar4 + 0xd0))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0xd0)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0xd0)" (* "*") (cast_expression "(code **)(*piVar4 + 0xd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0xd0)" (( "(") (binary_expression "*piVar4 + 0xd0" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0xd0")) () ")"))))) () ")")) (argument_list "(piVar4,iVar13)" (( "(") (identifier "piVar4") (, ",") (identifier "iVar13") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined4 *)param_2[1] != puVar5)" (( "(") (binary_expression "(undefined4 *)param_2[1] != puVar5" (cast_expression "(undefined4 *)param_2[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "puVar5")) () ")")) (; ";")) (} "}"))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);" (assignment_expression "iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" (identifier "iVar3") (= "=") (call_expression "FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" (identifier "FUN_00178e40") (argument_list "(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8)" (( "(") (identifier "param_3") (, ",") (identifier "iVar13") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "param_7") (, ",") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) (, ",") (identifier "param_8") () ")")))) (; ";")) (expression_statement "*param_5 = iVar13;" (assignment_expression "*param_5 = iVar13" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "*param_6 = local_40;" (assignment_expression "*param_6 = local_40" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "local_40")) (; ";")) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;" (if "if") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a2224;" (goto "goto") (statement_identifier "LAB_000a2224") (; ";"))) (expression_statement "iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);" (assignment_expression "iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (identifier "iVar1") (= "=") (pointer_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (iVar1 == 0x20) {\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }\n  else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0x20)" (( "(") (binary_expression "iVar1 == 0x20" (identifier "iVar1") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    local_5c = 4;\n    local_58 = (int *)0x10;\n  }" ({ "{") (expression_statement "local_5c = 4;" (assignment_expression "local_5c = 4" (identifier "local_5c") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_58 = (int *)0x10;" (assignment_expression "local_58 = (int *)0x10" (identifier "local_58") (= "=") (cast_expression "(int *)0x10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) (; ";")) (} "}")) (else_clause "else {\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" (else "else") (compound_statement "{\n    if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }\n    local_5c = 8;\n    local_58 = (int *)0x18;\n  }" ({ "{") (if_statement "if (iVar1 != 0x40) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" (if "if") (parenthesized_expression "(iVar1 != 0x40)" (( "(") (binary_expression "iVar1 != 0x40" (identifier "iVar1") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n                    \n      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);\n    }" ({ "{") (expression_statement "FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);" (call_expression "FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" (identifier "FUN_00069d00") (argument_list "("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX)" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0x1232") (, ",") (string_literal ""create_dynamic_symtab"" (" """) (string_content "create_dynamic_symtab") (" """)) (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (} "}"))) (expression_statement "local_5c = 8;" (assignment_expression "local_5c = 8" (identifier "local_5c") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_58 = (int *)0x18;" (assignment_expression "local_58 = (int *)0x18" (identifier "local_58") (= "=") (cast_expression "(int *)0x18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x18"))) (; ";")) (} "}")))) (expression_statement "piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);" (assignment_expression "piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" (identifier "FUN_0009fff0") (argument_list "(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".dynsym"" (" """) (string_content ".dynsym") (" """)) (, ",") (number_literal "0xb") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = (int)local_58 * iVar3;\n    puVar5[8] = 0;\n    puVar5[9] = local_5c;\n    puVar5[10] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    *puVar5 = &PTR_FUN_00389d98;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xb] = "** dynsym";\n    FUN_000f2600(piVar4,puVar5);\n    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }\n    piVar4[0x13] = local_40 + iVar13;\n    FUN_000ee490(piVar4,local_58,0);\n    piVar4[9] = local_5c;\n    piVar4[10] = 0;\n    *(int **)(param_1 + 0x17c) = piVar4;\n  }" ({ "{") (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x30)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0x30)" (identifier "FUN_001e5200") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[3] = (int)local_58 * iVar3;" (assignment_expression "puVar5[3] = (int)local_58 * iVar3" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(int)local_58 * iVar3" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (* "*") (identifier "iVar3"))) (; ";")) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "*puVar5 = &PTR_FUN_00389d98;" (assignment_expression "*puVar5 = &PTR_FUN_00389d98" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "&PTR_FUN_00389d98" (& "&") (identifier "PTR_FUN_00389d98"))) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[0xb] = "** dynsym";" (assignment_expression "puVar5[0xb] = "** dynsym"" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (string_literal ""** dynsym"" (" """) (string_content "** dynsym") (" """))) (; ";")) (expression_statement "FUN_000f2600(piVar4,puVar5);" (call_expression "FUN_000f2600(piVar4,puVar5)" (identifier "FUN_000f2600") (argument_list "(piVar4,puVar5)" (( "(") (identifier "piVar4") (, ",") (identifier "puVar5") () ")"))) (; ";")) (if_statement "if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" (if "if") (parenthesized_expression "(((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))))" (( "(") (binary_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||\n       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" (parenthesized_expression "((piVar4[0x11] != 0) || (piVar4[0x12] != 0))" (( "(") (binary_expression "(piVar4[0x11] != 0) || (piVar4[0x12] != 0)" (parenthesized_expression "(piVar4[0x11] != 0)" (( "(") (binary_expression "piVar4[0x11] != 0" (subscript_expression "piVar4[0x11]" (identifier "piVar4") ([ "[") (number_literal "0x11") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(piVar4[0x12] != 0)" (( "(") (binary_expression "piVar4[0x12] != 0" (subscript_expression "piVar4[0x12]" (identifier "piVar4") ([ "[") (number_literal "0x12") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))" (( "(") (parenthesized_expression "(local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0))" (( "(") (binary_expression "local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)" (binary_expression "local_40 + iVar13 != piVar4[0x13]" (binary_expression "local_40 + iVar13" (identifier "local_40") (+ "+") (identifier "iVar13")) (!= "!=") (subscript_expression "piVar4[0x13]" (identifier "piVar4") ([ "[") (number_literal "0x13") (] "]"))) (&& "&&") (parenthesized_expression "(piVar4[0x13] != 0)" (( "(") (binary_expression "piVar4[0x13] != 0" (subscript_expression "piVar4[0x13]" (identifier "piVar4") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                    \n      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);\n    }" ({ "{") (expression_statement "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);" (call_expression "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c)" (identifier "FUN_00069d00") (argument_list "("../../gold/output.h",0xd5e,"set_info",local_5c)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xd5e") (, ",") (string_literal ""set_info"" (" """) (string_content "set_info") (" """)) (, ",") (identifier "local_5c") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar4[0x13] = local_40 + iVar13;" (assignment_expression "piVar4[0x13] = local_40 + iVar13" (subscript_expression "piVar4[0x13]" (identifier "piVar4") ([ "[") (number_literal "0x13") (] "]")) (= "=") (binary_expression "local_40 + iVar13" (identifier "local_40") (+ "+") (identifier "iVar13"))) (; ";")) (expression_statement "FUN_000ee490(piVar4,local_58,0);" (call_expression "FUN_000ee490(piVar4,local_58,0)" (identifier "FUN_000ee490") (argument_list "(piVar4,local_58,0)" (( "(") (identifier "piVar4") (, ",") (identifier "local_58") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar4[9] = local_5c;" (assignment_expression "piVar4[9] = local_5c" (subscript_expression "piVar4[9]" (identifier "piVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "piVar4[10] = 0;" (assignment_expression "piVar4[10] = 0" (subscript_expression "piVar4[10]" (identifier "piVar4") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(param_1 + 0x17c) = piVar4;" (assignment_expression "*(int **)(param_1 + 0x17c) = piVar4" (pointer_expression "*(int **)(param_1 + 0x17c)" (* "*") (cast_expression "(int **)(param_1 + 0x17c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x17c)" (( "(") (binary_expression "param_1 + 0x17c" (identifier "param_1") (+ "+") (number_literal "0x17c")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x18c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x18c)" (* "*") (cast_expression "(int *)(param_1 + 0x18c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18c)" (( "(") (binary_expression "param_1 + 0x18c" (identifier "param_1") (+ "+") (number_literal "0x18c")) () ")"))))) (; ";")) (if_statement "if (iVar1 != 0) {\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar8 = *(int **)(iVar1 + 0x30);\n    local_24 = 6;\n    piVar11 = *(int **)(iVar1 + 0x34);\n    local_20 = 0;\n    local_28 = 0;\n    if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }\n    local_24 = 0xb;\n    local_20 = 0xffffffff;\n    local_2c = local_58;\n    if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }\n  }" ({ "{") (expression_statement "piVar8 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar8 = *(int **)(iVar1 + 0x30)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(iVar1 + 0x30)" (* "*") (cast_expression "(int **)(iVar1 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_24 = 6;" (assignment_expression "local_24 = 6" (identifier "local_24") (= "=") (number_literal "6")) (; ";")) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(iVar1 + 0x34)" (* "*") (cast_expression "(int **)(iVar1 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar8 == piVar11) {\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }\n    else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" (if "if") (parenthesized_expression "(piVar8 == piVar11)" (( "(") (binary_expression "piVar8 == piVar11" (identifier "piVar8") (== "==") (identifier "piVar11")) () ")")) (compound_statement "{\n      local_2c = piVar4;\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n      piVar6 = *(int **)(iVar1 + 0x30);\n      piVar11 = *(int **)(iVar1 + 0x34);\n    }" ({ "{") (expression_statement "local_2c = piVar4;" (assignment_expression "local_2c = piVar4" (identifier "local_2c") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "piVar11") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(iVar1 + 0x30);" (assignment_expression "piVar6 = *(int **)(iVar1 + 0x30)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(iVar1 + 0x30)" (* "*") (cast_expression "(int **)(iVar1 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "piVar11 = *(int **)(iVar1 + 0x34);" (assignment_expression "piVar11 = *(int **)(iVar1 + 0x34)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(iVar1 + 0x34)" (* "*") (cast_expression "(int **)(iVar1 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" (else "else") (compound_statement "{\n      *piVar8 = (int)piVar4;\n      piVar6 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[2] = 6;\n      piVar8[3] = 0;\n      *(int **)(iVar1 + 0x30) = piVar6;\n    }" ({ "{") (expression_statement "*piVar8 = (int)piVar4;" (assignment_expression "*piVar8 = (int)piVar4" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (expression_statement "piVar6 = piVar8 + 4;" (assignment_expression "piVar6 = piVar8 + 4" (identifier "piVar6") (= "=") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[2] = 6;" (assignment_expression "piVar8[2] = 6" (subscript_expression "piVar8[2]" (identifier "piVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "6")) (; ";")) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6" (pointer_expression "*(int **)(iVar1 + 0x30)" (* "*") (cast_expression "(int **)(iVar1 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "piVar6")) (; ";")) (} "}")))) (expression_statement "local_24 = 0xb;" (assignment_expression "local_24 = 0xb" (identifier "local_24") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" (identifier "local_20") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_2c = local_58;" (assignment_expression "local_2c = local_58" (identifier "local_2c") (= "=") (identifier "local_58")) (; ";")) (if_statement "if (piVar11 == piVar6) {\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }\n    else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" (if "if") (parenthesized_expression "(piVar11 == piVar6)" (( "(") (binary_expression "piVar11 == piVar6" (identifier "piVar11") (== "==") (identifier "piVar6")) () ")")) (compound_statement "{\n      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);\n    }" ({ "{") (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar1 + 0x2c,piVar11,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "piVar11") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" (else "else") (compound_statement "{\n      *piVar6 = (int)local_58;\n      piVar6[1] = local_28;\n      piVar6[2] = 0xb;\n      piVar6[3] = -1;\n      *(int **)(iVar1 + 0x30) = piVar6 + 4;\n    }" ({ "{") (expression_statement "*piVar6 = (int)local_58;" (assignment_expression "*piVar6 = (int)local_58" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58"))) (; ";")) (expression_statement "piVar6[1] = local_28;" (assignment_expression "piVar6[1] = local_28" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "piVar6[2] = 0xb;" (assignment_expression "piVar6[2] = 0xb" (subscript_expression "piVar6[2]" (identifier "piVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0xb")) (; ";")) (expression_statement "piVar6[3] = -1;" (assignment_expression "piVar6[3] = -1" (subscript_expression "piVar6[3]" (identifier "piVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "*(int **)(iVar1 + 0x30) = piVar6 + 4;" (assignment_expression "*(int **)(iVar1 + 0x30) = piVar6 + 4" (pointer_expression "*(int **)(iVar1 + 0x30)" (* "*") (cast_expression "(int **)(iVar1 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "piVar6 + 4" (identifier "piVar6") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar5 = *(undefined4 **)(param_1 + 0x124);" (assignment_expression "puVar5 = *(undefined4 **)(param_1 + 0x124)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x124)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x124)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (if_statement "if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" (if "if") (parenthesized_expression "(puVar5 != *(undefined4 **)(param_1 + 0x128))" (( "(") (binary_expression "puVar5 != *(undefined4 **)(param_1 + 0x128)" (identifier "puVar5") (!= "!=") (pointer_expression "*(undefined4 **)(param_1 + 0x128)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x128)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) () ")")) (compound_statement "{\n    uVar14 = 0;\n    do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);\n    if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }\n  }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);" (do "do") (compound_statement "{\n      uVar2 = *puVar5;\n      puVar5 = puVar5 + 1;\n      iVar7 = FUN_000f1220(uVar2);\n      uVar14 = uVar14 + iVar7;\n    }" ({ "{") (expression_statement "uVar2 = *puVar5;" (assignment_expression "uVar2 = *puVar5" (identifier "uVar2") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = FUN_000f1220(uVar2);" (assignment_expression "iVar7 = FUN_000f1220(uVar2)" (identifier "iVar7") (= "=") (call_expression "FUN_000f1220(uVar2)" (identifier "FUN_000f1220") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "uVar14 = uVar14 + iVar7;" (assignment_expression "uVar14 = uVar14 + iVar7" (identifier "uVar14") (= "=") (binary_expression "uVar14 + iVar7" (identifier "uVar14") (+ "+") (identifier "iVar7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)(param_1 + 0x128) != puVar5)" (( "(") (binary_expression "*(undefined4 **)(param_1 + 0x128) != puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x128)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x128)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (identifier "puVar5")) () ")")) (; ";")) (if_statement "if ((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" (if "if") (parenthesized_expression "((0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0))" (( "(") (binary_expression "(0xfeff < uVar14) &&\n       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" (parenthesized_expression "(0xfeff < uVar14)" (( "(") (binary_expression "0xfeff < uVar14" (number_literal "0xfeff") (< "<") (identifier "uVar14")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0" (assignment_expression "iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" (identifier "iVar7") (= "=") (call_expression "FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" (identifier "FUN_0009fff0") (argument_list "(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".dynsym_shndx"" (" """) (string_content ".dynsym_shndx") (" """)) (, ",") (number_literal "0x12") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      puVar5 = (undefined4 *)FUN_001e5200(0x38);\n      puVar5[1] = 0;\n      puVar5[2] = 0;\n      puVar5[3] = iVar3 << 2;\n      puVar5[8] = 0;\n      puVar5[9] = 4;\n      puVar5[10] = 0;\n      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n      puVar5[4] = 0;\n      puVar5[5] = 0xffffffff;\n      puVar5[6] = 0xffffffff;\n      *puVar5 = &PTR_FUN_00383db4;\n      puVar5[0xb] = 0;\n      puVar5[0xc] = 0;\n      puVar5[0xd] = 0;\n      *(undefined4 **)(param_1 + 0x180) = puVar5;\n      FUN_000f2600(iVar7,puVar5);\n      if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;\n      *(undefined4 *)(iVar7 + 0x24) = 4;\n      *(undefined4 *)(iVar7 + 0x28) = 0;\n      *(int **)(iVar7 + 0x3c) = piVar4;\n      FUN_000ee490(iVar7,4,0);\n      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;\n      *(undefined1 *)(param_1 + 0x1ca) = 1;\n    }" ({ "{") (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x38);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x38)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0x38)" (identifier "FUN_001e5200") (argument_list "(0x38)" (( "(") (number_literal "0x38") () ")"))))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[3] = iVar3 << 2;" (assignment_expression "puVar5[3] = iVar3 << 2" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "iVar3 << 2" (identifier "iVar3") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[9] = 4;" (assignment_expression "puVar5[9] = 4" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*puVar5 = &PTR_FUN_00383db4;" (assignment_expression "*puVar5 = &PTR_FUN_00383db4" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "&PTR_FUN_00383db4" (& "&") (identifier "PTR_FUN_00383db4"))) (; ";")) (expression_statement "puVar5[0xb] = 0;" (assignment_expression "puVar5[0xb] = 0" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[0xc] = 0;" (assignment_expression "puVar5[0xc] = 0" (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[0xd] = 0;" (assignment_expression "puVar5[0xd] = 0" (subscript_expression "puVar5[0xd]" (identifier "puVar5") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x180) = puVar5;" (assignment_expression "*(undefined4 **)(param_1 + 0x180) = puVar5" (pointer_expression "*(undefined4 **)(param_1 + 0x180)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x180)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x180)" (( "(") (binary_expression "param_1 + 0x180" (identifier "param_1") (+ "+") (number_literal "0x180")) () ")")))) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "FUN_000f2600(iVar7,puVar5);" (call_expression "FUN_000f2600(iVar7,puVar5)" (identifier "FUN_000f2600") (argument_list "(iVar7,puVar5)" (( "(") (identifier "iVar7") (, ",") (identifier "puVar5") () ")"))) (; ";")) (if_statement "if ((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))\n      goto LAB_000a21c1;" (if "if") (parenthesized_expression "((*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))" (( "(") (binary_expression "(*(int *)(iVar7 + 0x40) != 0) ||\n         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x40) != 0" (pointer_expression "*(int *)(iVar7 + 0x40)" (* "*") (cast_expression "(int *)(iVar7 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x40)" (( "(") (binary_expression "iVar7 + 0x40" (identifier "iVar7") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)))" (( "(") (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))" (( "(") (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0)" (binary_expression "(*(byte *)(iVar7 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 4)" (( "(") (binary_expression "*(byte *)(iVar7 + 0x90) & 4" (pointer_expression "*(byte *)(iVar7 + 0x90)" (* "*") (cast_expression "(byte *)(iVar7 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(iVar7 + 0x90) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(iVar7 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x90) & 8)" (( "(") (binary_expression "*(byte *)(iVar7 + 0x90) & 8" (pointer_expression "*(byte *)(iVar7 + 0x90)" (* "*") (cast_expression "(byte *)(iVar7 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000a21c1;" (goto "goto") (statement_identifier "LAB_000a21c1") (; ";"))) (expression_statement "*(undefined4 *)(iVar7 + 0x24) = 4;" (assignment_expression "*(undefined4 *)(iVar7 + 0x24) = 4" (pointer_expression "*(undefined4 *)(iVar7 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x24)" (( "(") (binary_expression "iVar7 + 0x24" (identifier "iVar7") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x28) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x28)" (( "(") (binary_expression "iVar7 + 0x28" (identifier "iVar7") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(iVar7 + 0x3c) = piVar4;" (assignment_expression "*(int **)(iVar7 + 0x3c) = piVar4" (pointer_expression "*(int **)(iVar7 + 0x3c)" (* "*") (cast_expression "(int **)(iVar7 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x3c)" (( "(") (binary_expression "iVar7 + 0x3c" (identifier "iVar7") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "FUN_000ee490(iVar7,4,0);" (call_expression "FUN_000ee490(iVar7,4,0)" (identifier "FUN_000ee490") (argument_list "(iVar7,4,0)" (( "(") (identifier "iVar7") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;" (assignment_expression "*(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" (* "*") (cast_expression "(byte *)(iVar7 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar7 + 0x90) | 0x10" (pointer_expression "*(byte *)(iVar7 + 0x90)" (* "*") (cast_expression "(byte *)(iVar7 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x90)" (( "(") (binary_expression "iVar7 + 0x90" (identifier "iVar7") (+ "+") (number_literal "0x90")) () ")")))) (| "|") (number_literal "0x10"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x1ca) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x1ca) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x1ca)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x1ca)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1ca)" (( "(") (binary_expression "param_1 + 0x1ca" (identifier "param_1") (+ "+") (number_literal "0x1ca")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);" (assignment_expression "piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" (identifier "piVar8") (= "=") (cast_expression "(int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" (identifier "FUN_0009fff0") (argument_list "(param_1,0,".dynstr",3,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".dynstr"" (" """) (string_content ".dynstr") (" """)) (, ",") (number_literal "3") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "*param_4 = piVar8;" (assignment_expression "*param_4 = piVar8" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "iVar3 = extraout_ECX_00;" (assignment_expression "iVar3 = extraout_ECX_00" (identifier "iVar3") (= "=") (identifier "extraout_ECX_00")) (; ";")) (if_statement "if (piVar8 != (int *)0x0) {\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(piVar8 != (int *)0x0)" (( "(") (binary_expression "piVar8 != (int *)0x0" (identifier "piVar8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar5 = (undefined4 *)FUN_001e5200(0x30);\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;\n    puVar5[0xb] = param_1 + 0xa0;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    puVar5[3] = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[8] = 0;\n    puVar5[9] = 1;\n    puVar5[10] = 0;\n    *puVar5 = &PTR_FUN_00383cdc;\n    FUN_000f2600(piVar8,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }\n    iVar3 = *(int *)(param_1 + 0x184);\n    if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }\n    iVar3 = iVar1;\n    if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }\n  }" ({ "{") (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x30);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x30)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0x30)" (identifier "FUN_001e5200") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0"))) (; ";")) (expression_statement "puVar5[0xb] = param_1 + 0xa0;" (assignment_expression "puVar5[0xb] = param_1 + 0xa0" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0"))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[9] = 1;" (assignment_expression "puVar5[9] = 1" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar5 = &PTR_FUN_00383cdc;" (assignment_expression "*puVar5 = &PTR_FUN_00383cdc" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "&PTR_FUN_00383cdc" (& "&") (identifier "PTR_FUN_00383cdc"))) (; ";")) (expression_statement "FUN_000f2600(piVar8,puVar5);" (call_expression "FUN_000f2600(piVar8,puVar5)" (identifier "FUN_000f2600") (argument_list "(piVar8,puVar5)" (( "(") (identifier "piVar8") (, ",") (identifier "puVar5") () ")"))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n      piVar4[0xf] = (int)piVar8;\n    }" ({ "{") (if_statement "if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;" (if "if") (parenthesized_expression "(((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0))" (( "(") (binary_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(piVar4 + 0x24) & 8) != 0)" (parenthesized_expression "((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0))" (( "(") (binary_expression "(piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)" (parenthesized_expression "(piVar4[0x10] != 0)" (( "(") (binary_expression "piVar4[0x10] != 0" (subscript_expression "piVar4[0x10]" (identifier "piVar4") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(piVar4 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 4)" (( "(") (binary_expression "*(byte *)(piVar4 + 0x24) & 4" (pointer_expression "*(byte *)(piVar4 + 0x24)" (* "*") (cast_expression "(byte *)(piVar4 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 0x24)" (( "(") (binary_expression "piVar4 + 0x24" (identifier "piVar4") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(piVar4 + 0x24) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(piVar4 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(piVar4 + 0x24) & 8)" (( "(") (binary_expression "*(byte *)(piVar4 + 0x24) & 8" (pointer_expression "*(byte *)(piVar4 + 0x24)" (* "*") (cast_expression "(byte *)(piVar4 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 0x24)" (( "(") (binary_expression "piVar4 + 0x24" (identifier "piVar4") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000a21c1;" (goto "goto") (statement_identifier "LAB_000a21c1") (; ";"))) (expression_statement "piVar4[0xf] = (int)piVar8;" (assignment_expression "piVar4[0xf] = (int)piVar8" (subscript_expression "piVar4[0xf]" (identifier "piVar4") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8"))) (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(param_1 + 0x184);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x184)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x184)" (* "*") (cast_expression "(int *)(param_1 + 0x184)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x184)" (( "(") (binary_expression "param_1 + 0x184" (identifier "param_1") (+ "+") (number_literal "0x184")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) {\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;\n      *(int **)(iVar3 + 0x3c) = piVar8;\n    }" ({ "{") (if_statement "if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;" (if "if") (parenthesized_expression "(((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0))" (( "(") (binary_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n         ((*(byte *)(iVar3 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0))" (( "(") (binary_expression "(*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" (* "*") (cast_expression "(int *)(iVar3 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x40)" (( "(") (binary_expression "iVar3 + 0x40" (identifier "iVar3") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(iVar3 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 4)" (( "(") (binary_expression "*(byte *)(iVar3 + 0x90) & 4" (pointer_expression "*(byte *)(iVar3 + 0x90)" (* "*") (cast_expression "(byte *)(iVar3 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x90)" (( "(") (binary_expression "iVar3 + 0x90" (identifier "iVar3") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(iVar3 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 8)" (( "(") (binary_expression "*(byte *)(iVar3 + 0x90) & 8" (pointer_expression "*(byte *)(iVar3 + 0x90)" (* "*") (cast_expression "(byte *)(iVar3 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x90)" (( "(") (binary_expression "iVar3 + 0x90" (identifier "iVar3") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000a21c1;" (goto "goto") (statement_identifier "LAB_000a21c1") (; ";"))) (expression_statement "*(int **)(iVar3 + 0x3c) = piVar8;" (assignment_expression "*(int **)(iVar3 + 0x3c) = piVar8" (pointer_expression "*(int **)(iVar3 + 0x3c)" (* "*") (cast_expression "(int **)(iVar3 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x3c)" (( "(") (binary_expression "iVar3 + 0x3c" (identifier "iVar3") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "piVar8")) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" (identifier "iVar3") (= "=") (identifier "iVar1")) (; ";")) (if_statement "if (iVar1 != 0) {\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar5 = *(undefined4 **)(iVar1 + 0x30);\n      puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      local_24 = 5;\n      local_20 = 0;\n      local_28 = 0;\n      if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }\n      local_24 = 10;\n      local_20 = 0xfffffffe;\n      local_28 = 0;\n      if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }\n    }" ({ "{") (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" (identifier "puVar12") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_24 = 5;" (assignment_expression "local_24 = 5" (identifier "local_24") (= "=") (number_literal "5")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar5 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }\n      else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" (if "if") (parenthesized_expression "(puVar5 == puVar12)" (( "(") (binary_expression "puVar5 == puVar12" (identifier "puVar5") (== "==") (identifier "puVar12")) () ")")) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);\n        puVar9 = *(undefined4 **)(iVar1 + 0x30);\n        puVar12 = *(undefined4 **)(iVar1 + 0x34);\n      }" ({ "{") (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" (identifier "local_2c") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar1 + 0x2c,puVar12,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "puVar12") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar9 = *(undefined4 **)(iVar1 + 0x30)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "puVar12 = *(undefined4 **)(iVar1 + 0x34);" (assignment_expression "puVar12 = *(undefined4 **)(iVar1 + 0x34)" (identifier "puVar12") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" (else "else") (compound_statement "{\n        *puVar5 = piVar8;\n        puVar9 = puVar5 + 4;\n        puVar5[1] = 0;\n        puVar5[2] = 5;\n        puVar5[3] = 0;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9;\n      }" ({ "{") (expression_statement "*puVar5 = piVar8;" (assignment_expression "*puVar5 = piVar8" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "puVar9 = puVar5 + 4;" (assignment_expression "puVar9 = puVar5 + 4" (identifier "puVar9") (= "=") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 5;" (assignment_expression "puVar5[2] = 5" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "5")) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (} "}")))) (expression_statement "local_24 = 10;" (assignment_expression "local_24 = 10" (identifier "local_24") (= "=") (number_literal "10")) (; ";")) (expression_statement "local_20 = 0xfffffffe;" (assignment_expression "local_20 = 0xfffffffe" (identifier "local_20") (= "=") (number_literal "0xfffffffe")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar9 == puVar12) {\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }\n      else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" (if "if") (parenthesized_expression "(puVar9 == puVar12)" (( "(") (binary_expression "puVar9 == puVar12" (identifier "puVar9") (== "==") (identifier "puVar12")) () ")")) (compound_statement "{\n        local_2c = piVar8;\n        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);\n        iVar3 = extraout_ECX_04;\n      }" ({ "{") (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" (identifier "local_2c") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar1 + 0x2c,puVar9,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "puVar9") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "iVar3 = extraout_ECX_04;" (assignment_expression "iVar3 = extraout_ECX_04" (identifier "iVar3") (= "=") (identifier "extraout_ECX_04")) (; ";")) (} "}")) (else_clause "else {\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" (else "else") (compound_statement "{\n        *puVar9 = piVar8;\n        puVar9[1] = 0;\n        puVar9[2] = 10;\n        puVar9[3] = 0xfffffffe;\n        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;\n        local_2c = piVar8;\n      }" ({ "{") (expression_statement "*puVar9 = piVar8;" (assignment_expression "*puVar9 = piVar8" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[2] = 10;" (assignment_expression "puVar9[2] = 10" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "10")) (; ";")) (expression_statement "puVar9[3] = 0xfffffffe;" (assignment_expression "puVar9[3] = 0xfffffffe" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xfffffffe")) (; ";")) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar9 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "local_2c = piVar8;" (assignment_expression "local_2c = piVar8" (identifier "local_2c") (= "=") (identifier "piVar8")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar19 = *(int *)(DAT_0038f378 + 8) == 0;" (assignment_expression "bVar19 = *(int *)(DAT_0038f378 + 8) == 0" (identifier "bVar19") (= "=") (binary_expression "*(int *)(DAT_0038f378 + 8) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 8)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 8)" (( "(") (binary_expression "DAT_0038f378 + 8" (identifier "DAT_0038f378") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar19) goto LAB_000a21dc;" (if "if") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")")) (goto_statement "goto LAB_000a21dc;" (goto "goto") (statement_identifier "LAB_000a21dc") (; ";"))) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" (identifier "pbVar10") (= "=") (pointer_expression "*(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" (* "*") (cast_expression "(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) + 0x1b30)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_0038f378 + 8)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 8)" (( "(") (binary_expression "DAT_0038f378 + 8" (identifier "DAT_0038f378") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1b30")) () ")"))))) (; ";")) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" (identifier "iVar3") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" (identifier "pbVar15") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "pbVar16 = &DAT_002806f5;" (assignment_expression "pbVar16 = &DAT_002806f5" (identifier "pbVar16") (= "=") (pointer_expression "&DAT_002806f5" (& "&") (identifier "DAT_002806f5"))) (; ";")) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar19);" (do "do") (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar17 = *pbVar15 < *pbVar16;\n    bVar19 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar15 < *pbVar16;" (assignment_expression "bVar17 = *pbVar15 < *pbVar16" (identifier "bVar17") (= "=") (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "bVar19 = *pbVar15 == *pbVar16;" (assignment_expression "bVar19 = *pbVar15 == *pbVar16" (identifier "bVar19") (= "=") (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar17 = (!bVar17 && !bVar19) == bVar17;" (assignment_expression "bVar17 = (!bVar17 && !bVar19) == bVar17" (identifier "bVar17") (= "=") (binary_expression "(!bVar17 && !bVar19) == bVar17" (parenthesized_expression "(!bVar17 && !bVar19)" (( "(") (binary_expression "!bVar17 && !bVar19" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar19" (! "!") (identifier "bVar19"))) () ")")) (== "==") (identifier "bVar17"))) (; ";")) (if_statement "if (bVar17) {\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }\n  else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }" (if "if") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (compound_statement "{\nLAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);\n    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);\n    puVar5 = (undefined4 *)FUN_001e5200(0x34);\n    puVar5[1] = 0;\n    puVar5[9] = local_5c;\n    puVar5[2] = 0;\n    puVar5[8] = 0;\n    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;\n    puVar5[10] = 0;\n    puVar5[3] = local_38;\n    *puVar5 = &PTR_FUN_00383c70;\n    puVar5[4] = 0;\n    puVar5[0xb] = local_3c;\n    puVar5[5] = 0xffffffff;\n    puVar5[6] = 0xffffffff;\n    puVar5[0xc] = "** hash";\n    iVar3 = extraout_ECX_01;\n    if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }\n    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;\n    if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }\n    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);\n  }" ({ "{") (labeled_statement "LAB_000a1d90:\n    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);" (statement_identifier "LAB_000a1d90") (: ":") (expression_statement "FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);" (call_expression "FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38)" (identifier "FUN_001a3090") (argument_list "(param_7,local_40 + iVar13,&local_3c,&local_38)" (( "(") (identifier "param_7") (, ",") (binary_expression "local_40 + iVar13" (identifier "local_40") (+ "+") (identifier "iVar13")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";"))) (expression_statement "param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" (identifier "param_2") (= "=") (cast_expression "(int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" (identifier "FUN_0009fff0") (argument_list "(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".gnu.hash"" (" """) (string_content ".gnu.hash") (" """)) (, ",") (number_literal "0x6ffffff6") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x34)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0x34)" (identifier "FUN_001e5200") (argument_list "(0x34)" (( "(") (number_literal "0x34") () ")"))))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[3] = local_38;" (assignment_expression "puVar5[3] = local_38" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "*puVar5 = &PTR_FUN_00383c70;" (assignment_expression "*puVar5 = &PTR_FUN_00383c70" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "&PTR_FUN_00383c70" (& "&") (identifier "PTR_FUN_00383c70"))) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[0xb] = local_3c;" (assignment_expression "puVar5[0xb] = local_3c" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]")) (= "=") (string_literal ""** hash"" (" """) (string_content "** hash") (" """))) (; ";")) (expression_statement "iVar3 = extraout_ECX_01;" (assignment_expression "iVar3 = extraout_ECX_01" (identifier "iVar3") (= "=") (identifier "extraout_ECX_01")) (; ";")) (if_statement "if (param_2 != (int *)0x0) {\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_000f2600(param_2,puVar5);\n      if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }\n      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;\n      iVar3 = extraout_ECX_02;\n      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }\n      if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }\n    }" ({ "{") (expression_statement "FUN_000f2600(param_2,puVar5);" (call_expression "FUN_000f2600(param_2,puVar5)" (identifier "FUN_000f2600") (argument_list "(param_2,puVar5)" (( "(") (identifier "param_2") (, ",") (identifier "puVar5") () ")"))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;\n        param_2[0xf] = (int)piVar4;\n      }" ({ "{") (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;" (if "if") (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0))" (( "(") (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n           ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" (( "(") (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" (( "(") (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" (( "(") (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" (* "*") (cast_expression "(byte *)(param_2 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" (( "(") (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" (* "*") (cast_expression "(byte *)(param_2 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000a21c1;" (goto "goto") (statement_identifier "LAB_000a21c1") (; ";"))) (expression_statement "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" (identifier "param_2") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;" (if "if") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a2224;" (goto "goto") (statement_identifier "LAB_000a2224") (; ";"))) (expression_statement "iVar3 = extraout_ECX_02;" (assignment_expression "iVar3 = extraout_ECX_02" (identifier "iVar3") (= "=") (identifier "extraout_ECX_02")) (; ";")) (if_statement "if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" (if "if") (parenthesized_expression "(**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20)" (( "(") (binary_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20" (pointer_expression "**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        FUN_000ee490(param_2,4,0);\n        iVar3 = extraout_ECX_03;\n      }" ({ "{") (expression_statement "FUN_000ee490(param_2,4,0);" (call_expression "FUN_000ee490(param_2,4,0)" (identifier "FUN_000ee490") (argument_list "(param_2,4,0)" (( "(") (identifier "param_2") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar3 = extraout_ECX_03;" (assignment_expression "iVar3 = extraout_ECX_03" (identifier "iVar3") (= "=") (identifier "extraout_ECX_03")) (; ";")) (} "}"))) (if_statement "if (iVar1 != 0) {\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_24 = 0x6ffffef5;\n        puVar5 = *(undefined4 **)(iVar1 + 0x30);\n        local_20 = 0;\n        local_28 = 0;\n        local_2c = param_2;\n        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }\n      }" ({ "{") (expression_statement "local_24 = 0x6ffffef5;" (assignment_expression "local_24 = 0x6ffffef5" (identifier "local_24") (= "=") (number_literal "0x6ffffef5")) (; ";")) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" (identifier "local_2c") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }\n        else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" (if "if") (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" (( "(") (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" (identifier "puVar5") (== "==") (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (compound_statement "{\n          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n          iVar3 = extraout_ECX_05;\n        }" ({ "{") (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "puVar5") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "iVar3 = extraout_ECX_05;" (assignment_expression "iVar3 = extraout_ECX_05" (identifier "iVar3") (= "=") (identifier "extraout_ECX_05")) (; ";")) (} "}")) (else_clause "else {\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" (else "else") (compound_statement "{\n          *puVar5 = param_2;\n          puVar5[1] = 0;\n          puVar5[2] = 0x6ffffef5;\n          puVar5[3] = 0;\n          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n        }" ({ "{") (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 0x6ffffef5;" (assignment_expression "puVar5[2] = 0x6ffffef5" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x6ffffef5")) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "bVar17 = *(int *)(DAT_0038f378 + 8) == 0;" (assignment_expression "bVar17 = *(int *)(DAT_0038f378 + 8) == 0" (identifier "bVar17") (= "=") (binary_expression "*(int *)(DAT_0038f378 + 8) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 8)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 8)" (( "(") (binary_expression "DAT_0038f378 + 8" (identifier "DAT_0038f378") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar17) {\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" (if "if") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (compound_statement "{\nLAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);\n    }" ({ "{") (labeled_statement "LAB_000a21dc:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);" (statement_identifier "LAB_000a21dc") (: ":") (expression_statement "FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3)" (identifier "FUN_00069d00") (argument_list "("../../gold/parameters.h",0x5c,"options",iVar3)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "iVar3") () ")"))) (; ";"))) (} "}"))) (expression_statement "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);" (assignment_expression "pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" (identifier "pbVar10") (= "=") (pointer_expression "*(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" (* "*") (cast_expression "(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_0038f378 + 8) + 0x1b30)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 8) + 0x1b30" (pointer_expression "*(int *)(DAT_0038f378 + 8)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 8)" (( "(") (binary_expression "DAT_0038f378 + 8" (identifier "DAT_0038f378") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1b30")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }" (else "else") (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = pbVar10;\n    pbVar16 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    bVar17 = (!bVar18 && !bVar17) == bVar18;\n    if (bVar17) goto LAB_000a1d90;\n  }" ({ "{") (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" (identifier "pbVar15") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "pbVar16 = &DAT_00280708;" (assignment_expression "pbVar16 = &DAT_00280708" (identifier "pbVar16") (= "=") (pointer_expression "&DAT_00280708" (& "&") (identifier "DAT_00280708"))) (; ";")) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" (do "do") (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar15 < *pbVar16;\n      bVar17 = *pbVar15 == *pbVar16;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar15 < *pbVar16;" (assignment_expression "bVar18 = *pbVar15 < *pbVar16" (identifier "bVar18") (= "=") (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" (identifier "bVar17") (= "=") (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (; ";")) (expression_statement "bVar17 = (!bVar18 && !bVar17) == bVar18;" (assignment_expression "bVar17 = (!bVar18 && !bVar17) == bVar18" (identifier "bVar17") (= "=") (binary_expression "(!bVar18 && !bVar17) == bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" (( "(") (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar17" (! "!") (identifier "bVar17"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (bVar17) goto LAB_000a1d90;" (if "if") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (goto_statement "goto LAB_000a1d90;" (goto "goto") (statement_identifier "LAB_000a1d90") (; ";"))) (} "}")))) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" (identifier "bVar19") (= "=") (false "false")) (; ";")) (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar15 = pbVar10;" (assignment_expression "pbVar15 = pbVar10" (identifier "pbVar15") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "pbVar16 = &DAT_00280703;" (assignment_expression "pbVar16 = &DAT_00280703" (identifier "pbVar16") (= "=") (pointer_expression "&DAT_00280703" (& "&") (identifier "DAT_00280703"))) (; ";")) (do_statement "do {\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  } while (bVar17);" (do "do") (compound_statement "{\n    if (iVar3 == 0) break;\n    iVar3 = iVar3 + -1;\n    bVar19 = *pbVar15 < *pbVar16;\n    bVar17 = *pbVar15 == *pbVar16;\n    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar19 = *pbVar15 < *pbVar16;" (assignment_expression "bVar19 = *pbVar15 < *pbVar16" (identifier "bVar19") (= "=") (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "bVar17 = *pbVar15 == *pbVar16;" (assignment_expression "bVar17 = *pbVar15 == *pbVar16" (identifier "bVar17") (= "=") (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar20 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar17 = (!bVar19 && !bVar17) == bVar19;" (assignment_expression "bVar17 = (!bVar19 && !bVar17) == bVar19" (identifier "bVar17") (= "=") (binary_expression "(!bVar19 && !bVar17) == bVar19" (parenthesized_expression "(!bVar19 && !bVar17)" (( "(") (binary_expression "!bVar19 && !bVar17" (unary_expression "!bVar19" (! "!") (identifier "bVar19")) (&& "&&") (unary_expression "!bVar17" (! "!") (identifier "bVar17"))) () ")")) (== "==") (identifier "bVar19"))) (; ";")) (if_statement "if (!bVar17) {\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(!bVar17)" (( "(") (unary_expression "!bVar17" (! "!") (identifier "bVar17")) () ")")) (compound_statement "{\n    iVar3 = 5;\n    pbVar15 = &DAT_00280708;\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar15 = &DAT_00280708;" (assignment_expression "pbVar15 = &DAT_00280708" (identifier "pbVar15") (= "=") (pointer_expression "&DAT_00280708" (& "&") (identifier "DAT_00280708"))) (; ";")) (do_statement "do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" (do "do") (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar18 = *pbVar10 < *pbVar15;\n      bVar17 = *pbVar10 == *pbVar15;\n      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar10 < *pbVar15;" (assignment_expression "bVar18 = *pbVar10 < *pbVar15" (identifier "bVar18") (= "=") (binary_expression "*pbVar10 < *pbVar15" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar17 = *pbVar10 == *pbVar15;" (assignment_expression "bVar17 = *pbVar10 == *pbVar15" (identifier "bVar17") (= "=") (binary_expression "*pbVar10 == *pbVar15" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar20 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar17)" (( "(") (identifier "bVar17") () ")")) (; ";")) (if_statement "if ((!bVar18 && !bVar17) != bVar18) {\n      return;\n    }" (if "if") (parenthesized_expression "((!bVar18 && !bVar17) != bVar18)" (( "(") (binary_expression "(!bVar18 && !bVar17) != bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" (( "(") (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar17" (! "!") (identifier "bVar17"))) () ")")) (!= "!=") (identifier "bVar18")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);" (call_expression "FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30)" (identifier "FUN_001a25a0") (argument_list "(param_7,iVar13 + local_40,&local_34,&local_30)" (( "(") (identifier "param_7") (, ",") (binary_expression "iVar13 + local_40" (identifier "iVar13") (+ "+") (identifier "local_40")) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);" (assignment_expression "param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0)" (identifier "param_2") (= "=") (cast_expression "(int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0)" (identifier "FUN_0009fff0") (argument_list "(param_1,0,".hash",5,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".hash"" (" """) (string_content ".hash") (" """)) (, ",") (number_literal "5") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "puVar5 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar5 = (undefined4 *)FUN_001e5200(0x34)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0x34)" (identifier "FUN_001e5200") (argument_list "(0x34)" (( "(") (number_literal "0x34") () ")"))))) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[9] = local_5c;" (assignment_expression "puVar5[9] = local_5c" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar5 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar5 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar5 + 7)" (* "*") (cast_expression "(byte *)(puVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 7)" (( "(") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar5[10] = 0;" (assignment_expression "puVar5[10] = 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[3] = local_30;" (assignment_expression "puVar5[3] = local_30" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*puVar5 = &PTR_FUN_00383c70;" (assignment_expression "*puVar5 = &PTR_FUN_00383c70" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "&PTR_FUN_00383c70" (& "&") (identifier "PTR_FUN_00383c70"))) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[0xb] = local_34;" (assignment_expression "puVar5[0xb] = local_34" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar5[5] = 0xffffffff;" (assignment_expression "puVar5[5] = 0xffffffff" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[6] = 0xffffffff;" (assignment_expression "puVar5[6] = 0xffffffff" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar5[0xc] = "** hash";" (assignment_expression "puVar5[0xc] = "** hash"" (subscript_expression "puVar5[0xc]" (identifier "puVar5") ([ "[") (number_literal "0xc") (] "]")) (= "=") (string_literal ""** hash"" (" """) (string_content "** hash") (" """))) (; ";")) (if_statement "if (param_2 != (int *)0x0) {\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_000f2600(param_2,puVar5);\n    if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }\n    if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }\n    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);\n    iVar3 = iVar13 + 7;\n    if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }\n    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);\n  }" ({ "{") (expression_statement "FUN_000f2600(param_2,puVar5);" (call_expression "FUN_000f2600(param_2,puVar5)" (identifier "FUN_000f2600") (argument_list "(param_2,puVar5)" (( "(") (identifier "param_2") (, ",") (identifier "puVar5") () ")"))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }\n      param_2[0xf] = (int)piVar4;\n    }" ({ "{") (if_statement "if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }" (if "if") (parenthesized_expression "(((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0))" (( "(") (binary_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||\n         ((*(byte *)(param_2 + 0x24) & 8) != 0)" (parenthesized_expression "((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0))" (( "(") (binary_expression "(param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)" (parenthesized_expression "(param_2[0x10] != 0)" (( "(") (binary_expression "param_2[0x10] != 0" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x24) & 4) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 4)" (( "(") (binary_expression "*(byte *)(param_2 + 0x24) & 4" (pointer_expression "*(byte *)(param_2 + 0x24)" (* "*") (cast_expression "(byte *)(param_2 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_2 + 0x24) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x24) & 8) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x24) & 8)" (( "(") (binary_expression "*(byte *)(param_2 + 0x24) & 8" (pointer_expression "*(byte *)(param_2 + 0x24)" (* "*") (cast_expression "(byte *)(param_2 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24)" (( "(") (binary_expression "param_2 + 0x24" (identifier "param_2") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n      }" ({ "{") (labeled_statement "LAB_000a21c1:\n                    \n        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" (statement_identifier "LAB_000a21c1") (: ":") (expression_statement "FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_00069d00("../../gold/output.h",0xd07,"set_link_section")" (identifier "FUN_00069d00") (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 "param_2[0xf] = (int)piVar4;" (assignment_expression "param_2[0xf] = (int)piVar4" (subscript_expression "param_2[0xf]" (identifier "param_2") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) {\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);\n    }" ({ "{") (labeled_statement "LAB_000a2224:\n                    \n      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);" (statement_identifier "LAB_000a2224") (: ":") (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2)" (identifier "FUN_00069d00") (argument_list "("../../gold/parameters.h",0x69,"target",param_2)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);" (assignment_expression "iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "iVar3 = iVar13 + 7;" (assignment_expression "iVar3 = iVar13 + 7" (identifier "iVar3") (= "=") (binary_expression "iVar13 + 7" (identifier "iVar13") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if (-1 < iVar13) {\n      iVar3 = iVar13;\n    }" (if "if") (parenthesized_expression "(-1 < iVar13)" (( "(") (binary_expression "-1 < iVar13" (number_literal "-1") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n      iVar3 = iVar13;\n    }" ({ "{") (expression_statement "iVar3 = iVar13;" (assignment_expression "iVar3 = iVar13" (identifier "iVar3") (= "=") (identifier "iVar13")) (; ";")) (} "}"))) (expression_statement "FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);" (call_expression "FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f)" (identifier "FUN_000ee490") (argument_list "(param_2,iVar3 >> 3,iVar3 >> 0x1f)" (( "(") (identifier "param_2") (, ",") (binary_expression "iVar3 >> 3" (identifier "iVar3") (>> ">>") (number_literal "3")) (, ",") (binary_expression "iVar3 >> 0x1f" (identifier "iVar3") (>> ">>") (number_literal "0x1f")) () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar1 != 0) {\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_24 = 4;\n    puVar5 = *(undefined4 **)(iVar1 + 0x30);\n    local_20 = 0;\n    local_28 = 0;\n    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }\n  }" ({ "{") (expression_statement "local_24 = 4;" (assignment_expression "local_24 = 4" (identifier "local_24") (= "=") (number_literal "4")) (; ";")) (expression_statement "puVar5 = *(undefined4 **)(iVar1 + 0x30);" (assignment_expression "puVar5 = *(undefined4 **)(iVar1 + 0x30)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }\n    else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" (if "if") (parenthesized_expression "(puVar5 == *(undefined4 **)(iVar1 + 0x34))" (( "(") (binary_expression "puVar5 == *(undefined4 **)(iVar1 + 0x34)" (identifier "puVar5") (== "==") (pointer_expression "*(undefined4 **)(iVar1 + 0x34)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (compound_statement "{\n      local_2c = param_2;\n      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);\n    }" ({ "{") (expression_statement "local_2c = param_2;" (assignment_expression "local_2c = param_2" (identifier "local_2c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);" (call_expression "FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar1 + 0x2c,puVar5,&local_2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) (, ",") (identifier "puVar5") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" (else "else") (compound_statement "{\n      *puVar5 = param_2;\n      puVar5[1] = 0;\n      puVar5[2] = 4;\n      puVar5[3] = 0;\n      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;\n    }" ({ "{") (expression_statement "*puVar5 = param_2;" (assignment_expression "*puVar5 = param_2" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 4;" (assignment_expression "puVar5[2] = 4" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;" (assignment_expression "*(undefined4 **)(iVar1 + 0x30) = puVar5 + 4" (pointer_expression "*(undefined4 **)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void create_dynamic_symtab(Layout * this, Input_objects *
   input_objects, Symbol_table * symtab, Output_section * * pdynstr, uint * plocal_dynamic_count,
   uint * pforced_local_dynamic_count, vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *
   pdynamic_symbols, Versions * pversions) */

void __thiscall
var_1::type_1::function_1
          (type_1 *this,type_2 *input_objects,type_3 *symtab,type_4 **pdynstr,
          type_5 *plocal_dynamic_count,type_5 *pforced_local_dynamic_count,
          type_6<var_1::type_25*,type_7::allocator<var_1::type_25*>var_2> *pdynamic_symbols,
          type_8 *pversions)

{
  type_9 *puVar1;
  type_10 var_12;
  type_11 *pRVar3;
  type_12 *var_16;
  type_13 *var_18;
  type_14 *this_00;
  type_15 var_3;
  type_5 var_11;
  type_13 this_01;
  type_16 *pOVar8;
  type_13 *var_19;
  type_5 var_23;
  type_13 aVar11;
  type_17 __position;
  type_10 *var_34;
  int var_38;
  type_4 *var_24;
  type_18 *posd;
  int var_8;
  type_17 iVar16;
  type_5 var_4;
  type_15 var_20;
  type_5 var_22;
  type_10 *var_28;
  type_15 var_6;
  type_10 *var_29;
  bool var_30;
  bool var_32;
  bool var_33;
  type_10 var_36;
  type_19 *local_5c;
  type_4 *local_58;
  type_5 var_14;
  type_20 *phash;
  type_5 hashlen;
  type_20 *phash_1;
  type_5 hashlen_1;
  type_13 local_2c;
  type_21 *local_28;
  type_22 local_24;
  type_22 local_20;
  type_22 uStack_14;
  
  var_36 = 0;
  var_4 = 1;
  uStack_14 = 0xa171e;
  var_3 = (this->section_list_).
            super__Vector_base<var_1::type_4*,type_7::allocator<var_1::type_4*>var_2>.
            _M_impl._M_start;
  if (var_3 !=
      (this->section_list_).
      super__Vector_base<var_1::type_4*,type_7::allocator<var_1::type_4*>var_2>._M_impl.
      _M_finish) {
    do {
      while (var_24 = *var_3, (var_24->field_0x90 & 2) != 0) {
        if (var_4 == 0) {
                    /* WARNING: Subroutine does not return */
          var_5("../../gold/output.h",0xda3,"set_dynsym_index");
        }
        var_24->dynsym_index_ = var_4;
        var_3 = var_3 + 1;
        var_4 = var_4 + 1;
        if ((this->section_list_).
            super__Vector_base<var_1::type_4*,type_7::allocator<var_1::type_4*>var_2>.
            _M_impl._M_finish == var_3) goto LAB_000a177e;
      }
      var_24->dynsym_index_ = 0xffffffff;
      var_3 = var_3 + 1;
    } while ((this->section_list_).
             super__Vector_base<var_1::type_4*,type_7::allocator<var_1::type_4*>var_2>.
             _M_impl._M_finish != var_3);
  }
LAB_000a177e:
  var_6 = (input_objects->relobj_list_).
             super__Vector_base<var_1::type_11*,type_7::allocator<var_1::type_11*>var_2>._M_impl._M_start;
  if (var_6 !=
      (input_objects->relobj_list_).
      super__Vector_base<var_1::type_11*,type_7::allocator<var_1::type_11*>var_2>._M_impl._M_finish) {
    do {
      pRVar3 = *var_6;
      var_6 = var_6 + 1;
      var_4 = (*(pRVar3->super_Object)._vptr_Object[0x34])(pRVar3,var_4);
    } while ((input_objects->relobj_list_).
             super__Vector_base<var_1::type_11*,type_7::allocator<var_1::type_11*>var_2>._M_impl._M_finish !=
             var_6);
  }
  var_14 = 0;
  var_11 = type_3::var_7
                    (symtab,var_4,&var_14,pdynamic_symbols,&this->dynpool_,pversions);
  *plocal_dynamic_count = var_4;
  *pforced_local_dynamic_count = var_14;
  if (parameters->target_ == (type_23 *)0x0) goto LAB_000a2224;
  var_8 = **(int **)(parameters->target_ + 4);
  if (var_8 == 0x20) {
    local_5c = (type_19 *)0x4;
    local_58 = (type_4 *)0x10;
  }
  else {
    if (var_8 != 0x40) {
                    /* WARNING: Subroutine does not return */
      var_5("../../gold/layout.cc",0x1232,"create_dynamic_symtab");
    }
    local_5c = (type_19 *)&DAT_00000008;
    local_58 = (type_4 *)0x18;
  }
  this_01.od = &var_9
                          (this,(type_11 *)0x0,".dynsym",0xb,2,false,ORDER_DYNAMIC_LINKER,false,false
                           ,false)->super_Output_data;
  if ((type_4 *)this_01.val != (type_4 *)0x0) {
    pOVar8 = (type_16 *)var_10(0x30);
    *(type_22 *)&(pOVar8->super_Output_data).address_ = 0;
    *(type_22 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;
    *(type_5 *)&(pOVar8->super_Output_data).data_size_ = (int)local_58 * var_11;
    var_12 = (pOVar8->super_Output_data).field_0x1c;
    pOVar8->output_section_ = (type_4 *)0x0;
    *(type_19 **)&pOVar8->addralign_ = local_5c;
    *(type_22 *)((int)&pOVar8->addralign_ + 4) = 0;
    (pOVar8->super_Output_data).field_0x1c = var_12 & 0xe0 | 10;
    (pOVar8->super_Output_data)._vptr_Output_data =
         (type_24 **)&PTR__Output_data_fixed_space_00389d98;
    *(type_22 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;
    *(type_22 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;
    *(type_22 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;
    pOVar8[1].super_Output_data._vptr_Output_data = (type_24 **)"** dynsym";
    Output_section::var_13((type_4 *)this_01.od,pOVar8);
    if (((*(type_4 **)(this_01.val + 0x44) != (type_4 *)0x0) ||
        (*(type_25 **)(this_01.val + 0x48) != (type_25 *)0x0)) ||
       ((var_14 + var_4 != *(type_5 *)(this_01.val + 0x4c) &&
        (*(type_5 *)(this_01.val + 0x4c) != 0)))) {
                    /* WARNING: Subroutine does not return */
      var_5("../../gold/output.h",0xd5e,"set_info");
    }
    *(type_5 *)(this_01.val + 0x4c) = var_14 + var_4;
    Output_section::var_15((type_4 *)this_01.od,(type_26)(int)local_58);
    ((this_01.sym)->got_offsets_).got_next_ = local_5c;
    *(type_22 *)(this_01.val + 0x28) = 0;
    this->dynsym_section_ = (type_4 *)this_01;
  }
  var_16 = this->dynamic_data_;
  if (var_16 != (type_12 *)0x0) {
    var_18 = &((var_16->entries_).
               super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::type_12::var_17>var_2>
               ._M_impl._M_finish)->u_;
    local_24 = 6;
    iVar16._M_current =
         (var_16->entries_).
         super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
         ._M_impl._M_end_of_storage;
    local_20 = 0;
    local_28 = (type_21 *)0x0;
    if (var_18 == &(iVar16._M_current)->u_) {
      local_2c.od = this_01.od;
      std::
      type_6<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
      ::_M_realloc_insert<const_gold::Output_data_dynamic::var_17&>
                (&var_16->entries_,iVar16,(var_17 *)&local_2c);
      var_19 = &((var_16->entries_).
                 super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::type_12::var_17>var_2>
                 ._M_impl._M_finish)->u_;
      iVar16._M_current =
           (var_16->entries_).
           super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
           ._M_impl._M_end_of_storage;
    }
    else {
      var_18->sym = (type_25 *)this_01;
      var_19 = var_18 + 4;
      var_18[1].val = 0;
      var_18[2].val = DT_SYMTAB;
      var_18[3].val = 0;
      (var_16->entries_).
      super__Vector_base<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
      ._M_impl._M_finish = (type_15)var_19;
    }
    local_24 = 0xb;
    local_20 = 0xffffffff;
    local_2c.val = (type_5)local_58;
    if (&(iVar16._M_current)->u_ == var_19) {
      std::
      type_6<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
      ::_M_realloc_insert<const_gold::Output_data_dynamic::var_17&>
                (&var_16->entries_,iVar16,(var_17 *)&local_2c);
    }
    else {
      var_19->val = (type_5)local_58;
      var_19[1].val = (type_5)local_28;
      var_19[2].val = DT_SYMENT;
      var_19[3].val = 0xffffffff;
      (var_16->entries_).
      super__Vector_base<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
      ._M_impl._M_finish = (type_15)(var_19 + 4);
    }
  }
  var_20 = (this->segment_list_).
             super__Vector_base<var_1::type_14*,type_7::allocator<var_1::type_14*>var_2>.
             _M_impl._M_start;
  if (var_20 !=
      (this->segment_list_).
      super__Vector_base<var_1::type_14*,type_7::allocator<var_1::type_14*>var_2>._M_impl.
      _M_finish) {
    var_22 = 0;
    do {
      this_00 = *var_20;
      var_20 = var_20 + 1;
      var_23 = type_14::var_21(this_00);
      var_22 = var_22 + var_23;
    } while ((this->segment_list_).
             super__Vector_base<var_1::type_14*,type_7::allocator<var_1::type_14*>var_2>.
             _M_impl._M_finish != var_20);
    if ((0xfeff < var_22) &&
       (var_24 = var_9
                            (this,(type_11 *)0x0,".dynsym_shndx",0x12,2,false,ORDER_DYNAMIC_LINKER,
                             false,false,false), var_24 != (type_4 *)0x0)) {
      posd = (type_18 *)var_10(0x38);
      *(type_22 *)&(posd->super_Output_section_data).super_Output_data.address_ = 0;
      *(type_22 *)((int)&(posd->super_Output_section_data).super_Output_data.address_ + 4) = 0;
      *(type_5 *)&(posd->super_Output_section_data).super_Output_data.data_size_ = var_11 << 2;
      var_12 = (posd->super_Output_section_data).super_Output_data.field_0x1c;
      (posd->super_Output_section_data).output_section_ = (type_4 *)0x0;
      *(type_22 *)&(posd->super_Output_section_data).addralign_ = 4;
      *(type_22 *)((int)&(posd->super_Output_section_data).addralign_ + 4) = 0;
      (posd->super_Output_section_data).super_Output_data.field_0x1c = var_12 & 0xe0 | 10;
      *(type_22 *)((int)&(posd->super_Output_section_data).super_Output_data.data_size_ + 4) = 0;
      *(type_22 *)&(posd->super_Output_section_data).super_Output_data.offset_ = 0xffffffff;
      *(type_22 *)((int)&(posd->super_Output_section_data).super_Output_data.offset_ + 4) =
           0xffffffff;
      (posd->super_Output_section_data).super_Output_data._vptr_Output_data =
           (type_24 **)&PTR__Output_symtab_xindex_00383db4;
      (posd->entries_).
      super__Vector_base<std::var_25<var_26,var_27>,type_7::allocator<std::var_25<var_26,var_27>var_2>var_2>
      ._M_impl._M_start = (type_15)0x0;
      (posd->entries_).
      super__Vector_base<std::var_25<var_26,var_27>,type_7::allocator<std::var_25<var_26,var_27>var_2>var_2>
      ._M_impl._M_finish = (type_15)0x0;
      (posd->entries_).
      super__Vector_base<std::var_25<var_26,var_27>,type_7::allocator<std::var_25<var_26,var_27>var_2>var_2>
      ._M_impl._M_end_of_storage = (type_15)0x0;
      this->dynsym_xindex_ = posd;
      Output_section::var_13(var_24,(type_16 *)posd);
      if ((var_24->link_ != 0) ||
         (((var_24->field_0x90 & 4) != 0 || ((var_24->field_0x90 & 8) != 0)))) goto LAB_000a21c1;
      *(type_22 *)&var_24->addralign_ = 4;
      *(type_22 *)((int)&var_24->addralign_ + 4) = 0;
      var_24->link_section_ = (type_21 *)this_01;
      Output_section::var_15(var_24,4);
      var_24->field_0x90 = var_24->field_0x90 | 0x10;
      this->any_postprocessing_sections_ = true;
    }
  }
  aVar11.od = &var_9
                         (this,(type_11 *)0x0,".dynstr",3,2,false,ORDER_DYNAMIC_LINKER,false,false,
                          false)->super_Output_data;
  *pdynstr = (type_4 *)aVar11;
  if ((type_4 *)aVar11.val != (type_4 *)0x0) {
    pOVar8 = (type_16 *)var_10(0x30);
    puVar1 = &(pOVar8->super_Output_data).field_0x1c;
    *puVar1 = *puVar1 & 0xe0;
    pOVar8[1].super_Output_data._vptr_Output_data = (type_24 **)&this->dynpool_;
    *(type_22 *)&(pOVar8->super_Output_data).address_ = 0;
    *(type_22 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;
    *(type_22 *)&(pOVar8->super_Output_data).data_size_ = 0;
    *(type_22 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;
    *(type_22 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;
    *(type_22 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;
    pOVar8->output_section_ = (type_4 *)0x0;
    *(type_22 *)&pOVar8->addralign_ = 1;
    *(type_22 *)((int)&pOVar8->addralign_ + 4) = 0;
    (pOVar8->super_Output_data)._vptr_Output_data =
         (type_24 **)&PTR__Output_data_strtab_00383cdc;
    Output_section::var_13((type_4 *)aVar11.od,pOVar8);
    if ((type_4 *)this_01.val != (type_4 *)0x0) {
      if (((*(type_5 *)(this_01.val + 0x40) != 0) || ((*(type_10 *)(this_01.val + 0x90) & 4) != 0)) ||
         ((*(type_10 *)(this_01.val + 0x90) & 8) != 0)) goto LAB_000a21c1;
      ((type_13 *)(this_01.val + 0x3c))->od = (type_21 *)aVar11;
    }
    var_24 = this->dynamic_section_;
    if (var_24 != (type_4 *)0x0) {
      if (((var_24->link_ != 0) || ((var_24->field_0x90 & 4) != 0)) ||
         ((var_24->field_0x90 & 8) != 0)) goto LAB_000a21c1;
      var_24->link_section_ = (type_21 *)aVar11;
    }
    if (var_16 != (type_12 *)0x0) {
      var_18 = &((var_16->entries_).
                 super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::type_12::var_17>var_2>
                 ._M_impl._M_finish)->u_;
      iVar16._M_current =
           (var_16->entries_).
           super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
           ._M_impl._M_end_of_storage;
      local_24 = 5;
      local_20 = 0;
      local_28 = (type_21 *)0x0;
      if (var_18 == &(iVar16._M_current)->u_) {
        local_2c.od = aVar11.od;
        std::
        type_6<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::var_17&>
                  (&var_16->entries_,iVar16,(var_17 *)&local_2c);
        __position._M_current =
             (var_16->entries_).
             super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
             ._M_impl._M_finish;
        iVar16._M_current =
             (var_16->entries_).
             super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
             ._M_impl._M_end_of_storage;
      }
      else {
        var_18->od = (type_21 *)aVar11;
        __position._M_current = (var_17 *)(var_18 + 4);
        var_18[1].val = 0;
        var_18[2].val = DT_STRTAB;
        var_18[3].val = 0;
        (var_16->entries_).
        super__Vector_base<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
        ._M_impl._M_finish = __position._M_current;
      }
      local_24 = 10;
      local_20 = 0xfffffffe;
      local_28 = (type_21 *)0x0;
      if (__position._M_current == iVar16._M_current) {
        local_2c.od = aVar11.od;
        std::
        type_6<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::var_17&>
                  (&var_16->entries_,__position,(var_17 *)&local_2c);
      }
      else {
        ((__position._M_current)->u_).od = (type_21 *)aVar11;
        (__position._M_current)->od2 = (type_21 *)0x0;
        (__position._M_current)->tag_ = DT_STRSZ;
        (__position._M_current)->offset_ = 0xfffffffe;
        (var_16->entries_).
        super__Vector_base<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
        ._M_impl._M_finish = __position._M_current + 1;
        local_2c.od = aVar11.od;
      }
    }
  }
  var_30 = false;
  var_33 = parameters->options_ == (type_27 *)0x0;
  if (var_33) goto LAB_000a21dc;
  var_34 = (type_10 *)(parameters->options_->hash_style_).value;
  var_8 = 4;
  var_28 = var_34;
  var_29 = &DAT_002806f5;
  do {
    if (var_8 == 0) break;
    var_8 = var_8 + -1;
    var_30 = *var_28 < *var_29;
    var_33 = *var_28 == *var_29;
    var_28 = var_28 + (type_5)var_36 * -2 + 1;
    var_29 = var_29 + (type_5)var_36 * -2 + 1;
  } while (var_33);
  var_32 = false;
  var_30 = (!var_30 && !var_33) == var_30;
  if (var_30) {
LAB_000a1d90:
    Dynobj::var_31(pdynamic_symbols,var_14 + var_4,&phash,&hashlen);
    aVar11.od = &var_9
                           (this,(type_11 *)0x0,".gnu.hash",0x6ffffff6,2,false,ORDER_DYNAMIC_LINKER,
                            false,false,false)->super_Output_data;
    pOVar8 = (type_16 *)var_10(0x34);
    var_12 = (pOVar8->super_Output_data).field_0x1c;
    *(type_22 *)&(pOVar8->super_Output_data).address_ = 0;
    *(type_19 **)&pOVar8->addralign_ = local_5c;
    *(type_22 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;
    pOVar8->output_section_ = (type_4 *)0x0;
    (pOVar8->super_Output_data).field_0x1c = var_12 & 0xe0 | 10;
    *(type_22 *)((int)&pOVar8->addralign_ + 4) = 0;
    *(type_5 *)&(pOVar8->super_Output_data).data_size_ = hashlen;
    (pOVar8->super_Output_data)._vptr_Output_data =
         (type_24 **)&PTR__Output_data_const_buffer_00383c70;
    *(type_22 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;
    pOVar8[1].super_Output_data._vptr_Output_data = (type_24 **)phash;
    *(type_22 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;
    *(type_22 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;
    *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";
    if ((type_4 *)aVar11.val != (type_4 *)0x0) {
      Output_section::var_13((type_4 *)aVar11.od,pOVar8);
      if ((type_4 *)this_01.val != (type_4 *)0x0) {
        if (((*(type_5 *)(aVar11.val + 0x40) != 0) || ((*(type_10 *)(aVar11.val + 0x90) & 4) != 0)) ||
           ((*(type_10 *)(aVar11.val + 0x90) & 8) != 0)) goto LAB_000a21c1;
        ((type_13 *)(aVar11.val + 0x3c))->sym = (type_25 *)this_01;
      }
      if (parameters->target_ == (type_23 *)0x0) goto LAB_000a2224;
      if (**(int **)(parameters->target_ + 4) == 0x20) {
        Output_section::var_15((type_4 *)aVar11.od,4);
      }
      if (var_16 != (type_12 *)0x0) {
        local_24 = 0x6ffffef5;
        iVar16._M_current =
             (var_16->entries_).
             super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
             ._M_impl._M_finish;
        local_20 = 0;
        local_28 = (type_21 *)0x0;
        local_2c.od = aVar11.od;
        if (iVar16._M_current ==
            (var_16->entries_).
            super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::type_12::var_17>var_2>
            ._M_impl._M_end_of_storage) {
          std::
          type_6<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
          ::_M_realloc_insert<const_gold::Output_data_dynamic::var_17&>
                    (&var_16->entries_,iVar16,(var_17 *)&local_2c);
        }
        else {
          ((iVar16._M_current)->u_).od = (type_21 *)aVar11;
          (iVar16._M_current)->od2 = (type_21 *)0x0;
          (iVar16._M_current)->tag_ = DT_GNU_HASH;
          (iVar16._M_current)->offset_ = 0;
          (var_16->entries_).
          super__Vector_base<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
          ._M_impl._M_finish = iVar16._M_current + 1;
        }
      }
    }
    var_30 = parameters->options_ == (type_27 *)0x0;
    if (var_30) {
LAB_000a21dc:
                    /* WARNING: Subroutine does not return */
      var_5("../../gold/parameters.h",0x5c,"options");
    }
    var_34 = (type_10 *)(parameters->options_->hash_style_).value;
  }
  else {
    var_8 = 5;
    var_28 = var_34;
    var_29 = &DAT_00280708;
    do {
      if (var_8 == 0) break;
      var_8 = var_8 + -1;
      var_32 = *var_28 < *var_29;
      var_30 = *var_28 == *var_29;
      var_28 = var_28 + (type_5)var_36 * -2 + 1;
      var_29 = var_29 + (type_5)var_36 * -2 + 1;
    } while (var_30);
    var_30 = (!var_32 && !var_30) == var_32;
    if (var_30) goto LAB_000a1d90;
  }
  var_33 = false;
  var_8 = 5;
  var_28 = var_34;
  var_29 = &DAT_00280703;
  do {
    if (var_8 == 0) break;
    var_8 = var_8 + -1;
    var_33 = *var_28 < *var_29;
    var_30 = *var_28 == *var_29;
    var_28 = var_28 + (type_5)var_36 * -2 + 1;
    var_29 = var_29 + (type_5)var_36 * -2 + 1;
  } while (var_30);
  var_32 = false;
  var_30 = (!var_33 && !var_30) == var_33;
  if (!var_30) {
    var_8 = 5;
    var_28 = &DAT_00280708;
    do {
      if (var_8 == 0) break;
      var_8 = var_8 + -1;
      var_32 = *var_34 < *var_28;
      var_30 = *var_34 == *var_28;
      var_34 = var_34 + (type_5)var_36 * -2 + 1;
      var_28 = var_28 + (type_5)var_36 * -2 + 1;
    } while (var_30);
    if ((!var_32 && !var_30) != var_32) {
      return;
    }
  }
  Dynobj::var_35(pdynamic_symbols,var_4 + var_14,&phash_1,&hashlen_1);
  aVar11.od = &var_9
                         (this,(type_11 *)0x0,".hash",5,2,false,ORDER_DYNAMIC_LINKER,false,false,
                          false)->super_Output_data;
  pOVar8 = (type_16 *)var_10(0x34);
  var_36 = (pOVar8->super_Output_data).field_0x1c;
  *(type_22 *)&(pOVar8->super_Output_data).address_ = 0;
  *(type_19 **)&pOVar8->addralign_ = local_5c;
  *(type_22 *)((int)&(pOVar8->super_Output_data).address_ + 4) = 0;
  pOVar8->output_section_ = (type_4 *)0x0;
  (pOVar8->super_Output_data).field_0x1c = var_36 & 0xe0 | 10;
  *(type_22 *)((int)&pOVar8->addralign_ + 4) = 0;
  *(type_5 *)&(pOVar8->super_Output_data).data_size_ = hashlen_1;
  (pOVar8->super_Output_data)._vptr_Output_data =
       (type_24 **)&PTR__Output_data_const_buffer_00383c70;
  *(type_22 *)((int)&(pOVar8->super_Output_data).data_size_ + 4) = 0;
  pOVar8[1].super_Output_data._vptr_Output_data = (type_24 **)phash_1;
  *(type_22 *)&(pOVar8->super_Output_data).offset_ = 0xffffffff;
  *(type_22 *)((int)&(pOVar8->super_Output_data).offset_ + 4) = 0xffffffff;
  *(char **)&pOVar8[1].super_Output_data.address_ = "** hash";
  if ((type_4 *)aVar11.val != (type_4 *)0x0) {
    Output_section::var_13((type_4 *)aVar11.od,pOVar8);
    if ((type_4 *)this_01.val != (type_4 *)0x0) {
      if (((*(type_5 *)(aVar11.val + 0x40) != 0) || ((*(type_10 *)(aVar11.val + 0x90) & 4) != 0)) ||
         ((*(type_10 *)(aVar11.val + 0x90) & 8) != 0)) {
LAB_000a21c1:
                    /* WARNING: Subroutine does not return */
        var_5("../../gold/output.h",0xd07,"set_link_section");
      }
      ((type_13 *)(aVar11.val + 0x3c))->sym = (type_25 *)this_01;
    }
    if (parameters->target_ == (type_23 *)0x0) {
LAB_000a2224:
                    /* WARNING: Subroutine does not return */
      var_5("../../gold/parameters.h",0x69,"target");
    }
    var_8 = *(int *)(*(int *)(parameters->target_ + 4) + 0x5c);
    var_38 = var_8 + 7;
    if (-1 < var_8) {
      var_38 = var_8;
    }
    Output_section::var_15((type_4 *)aVar11.od,var_37(var_38 >> 0x1f,var_38 >> 3));
  }
  if (var_16 != (type_12 *)0x0) {
    local_24 = 4;
    iVar16._M_current =
         (var_16->entries_).
         super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
         ._M_impl._M_finish;
    local_20 = 0;
    local_28 = (type_21 *)0x0;
    if (iVar16._M_current ==
        (var_16->entries_).
        super__Vector_base<var_1::type_12::var_17,type_7::allocator<var_1::type_12::var_17>var_2>
        ._M_impl._M_end_of_storage) {
      local_2c.od = aVar11.od;
      std::
      type_6<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
      ::_M_realloc_insert<const_gold::Output_data_dynamic::var_17&>
                (&var_16->entries_,iVar16,(var_17 *)&local_2c);
    }
    else {
      ((iVar16._M_current)->u_).od = (type_21 *)aVar11;
      (iVar16._M_current)->od2 = (type_21 *)0x0;
      (iVar16._M_current)->tag_ = DT_HASH;
      (iVar16._M_current)->offset_ = 0;
      (var_16->entries_).
      super__Vector_base<var_1::Output_data_dynamic::var_17,type_7::allocator<var_1::Output_data_dynamic::var_17>var_2>
      ._M_impl._M_finish = iVar16._M_current + 1;
    }
  }
  return;
}


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

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

void MASKED(int param_1,int *param_2,undefined4 param_3,undefined4 *param_4,int *param_5,
                 int *param_6,undefined4 param_7,undefined4 param_8)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int *piVar4;
  undefined4 *puVar5;
  int *piVar6;
  int iVar7;
  int *piVar8;
  undefined4 *puVar9;
  byte *pbVar10;
  undefined4 extraout_ECX;
  int extraout_ECX_00;
  int extraout_ECX_01;
  int extraout_ECX_02;
  int extraout_ECX_03;
  int extraout_ECX_04;
  int extraout_ECX_05;
  int *piVar11;
  undefined4 *puVar12;
  int iVar13;
  uint uVar14;
  byte *pbVar15;
  byte *pbVar16;
  bool bVar17;
  bool bVar18;
  bool bVar19;
  byte bVar20;
  int local_5c;
  int *local_58;
  int local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  int *local_2c;
  int local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar20 = 0;
  iVar13 = 1;
  uStack_14 = 0xa171e;
  piVar4 = *(int **)(param_1 + 0x130);
  if (piVar4 != *(int **)(param_1 + 0x134)) {
    do {
      while (iVar3 = *piVar4, (*(byte *)(iVar3 + 0x90) & 2) != 0) {
        if (iVar13 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/output.h",0xda3,"set_dynsym_index");
        }
        *(int *)(iVar3 + 0x68) = iVar13;
        piVar4 = piVar4 + 1;
        iVar13 = iVar13 + 1;
        if (*(int **)(param_1 + 0x134) == piVar4) goto LAB_000a177e;
      }
      *(undefined4 *)(iVar3 + 0x68) = 0xffffffff;
      piVar4 = piVar4 + 1;
    } while (*(int **)(param_1 + 0x134) != piVar4);
  }
LAB_000a177e:
  puVar5 = (undefined4 *)*param_2;
  if (puVar5 != (undefined4 *)param_2[1]) {
    do {
      piVar4 = (int *)*puVar5;
      puVar5 = puVar5 + 1;
      iVar13 = (**(code **)(*piVar4 + 0xd0))(piVar4,iVar13);
    } while ((undefined4 *)param_2[1] != puVar5);
  }
  local_40 = 0;
  iVar3 = FUN_00178e40(param_3,iVar13,&local_40,param_7,param_1 + 0xa0,param_8);
  *param_5 = iVar13;
  *param_6 = local_40;
  if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;
  iVar1 = **(int **)(*(int *)(DAT_0038f378 + 0xc) + 4);
  if (iVar1 == 0x20) {
    local_5c = 4;
    local_58 = (int *)0x10;
  }
  else {
    if (iVar1 != 0x40) {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/layout.cc",0x1232,"create_dynamic_symtab",extraout_ECX);
    }
    local_5c = 8;
    local_58 = (int *)0x18;
  }
  piVar4 = (int *)FUN_0009fff0(param_1,0,".dynsym",0xb,2,0,0,3,0,0,0);
  if (piVar4 != (int *)0x0) {
    puVar5 = (undefined4 *)FUN_001e5200(0x30);
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = (int)local_58 * iVar3;
    puVar5[8] = 0;
    puVar5[9] = local_5c;
    puVar5[10] = 0;
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
    *puVar5 = &PTR_FUN_00389d98;
    puVar5[4] = 0;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[0xb] = "** dynsym";
    FUN_000f2600(piVar4,puVar5);
    if (((piVar4[0x11] != 0) || (piVar4[0x12] != 0)) ||
       ((local_40 + iVar13 != piVar4[0x13] && (piVar4[0x13] != 0)))) {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/output.h",0xd5e,"set_info",local_5c);
    }
    piVar4[0x13] = local_40 + iVar13;
    FUN_000ee490(piVar4,local_58,0);
    piVar4[9] = local_5c;
    piVar4[10] = 0;
    *(int **)(param_1 + 0x17c) = piVar4;
  }
  iVar1 = *(int *)(param_1 + 0x18c);
  if (iVar1 != 0) {
    piVar8 = *(int **)(iVar1 + 0x30);
    local_24 = 6;
    piVar11 = *(int **)(iVar1 + 0x34);
    local_20 = 0;
    local_28 = 0;
    if (piVar8 == piVar11) {
      local_2c = piVar4;
      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);
      piVar6 = *(int **)(iVar1 + 0x30);
      piVar11 = *(int **)(iVar1 + 0x34);
    }
    else {
      *piVar8 = (int)piVar4;
      piVar6 = piVar8 + 4;
      piVar8[1] = 0;
      piVar8[2] = 6;
      piVar8[3] = 0;
      *(int **)(iVar1 + 0x30) = piVar6;
    }
    local_24 = 0xb;
    local_20 = 0xffffffff;
    local_2c = local_58;
    if (piVar11 == piVar6) {
      FUN_000a5aa0(iVar1 + 0x2c,piVar11,&local_2c);
    }
    else {
      *piVar6 = (int)local_58;
      piVar6[1] = local_28;
      piVar6[2] = 0xb;
      piVar6[3] = -1;
      *(int **)(iVar1 + 0x30) = piVar6 + 4;
    }
  }
  puVar5 = *(undefined4 **)(param_1 + 0x124);
  if (puVar5 != *(undefined4 **)(param_1 + 0x128)) {
    uVar14 = 0;
    do {
      uVar2 = *puVar5;
      puVar5 = puVar5 + 1;
      iVar7 = FUN_000f1220(uVar2);
      uVar14 = uVar14 + iVar7;
    } while (*(undefined4 **)(param_1 + 0x128) != puVar5);
    if ((0xfeff < uVar14) &&
       (iVar7 = FUN_0009fff0(param_1,0,".dynsym_shndx",0x12,2,0,0,3,0,0,0), iVar7 != 0)) {
      puVar5 = (undefined4 *)FUN_001e5200(0x38);
      puVar5[1] = 0;
      puVar5[2] = 0;
      puVar5[3] = iVar3 << 2;
      puVar5[8] = 0;
      puVar5[9] = 4;
      puVar5[10] = 0;
      *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
      puVar5[4] = 0;
      puVar5[5] = 0xffffffff;
      puVar5[6] = 0xffffffff;
      *puVar5 = &PTR_FUN_00383db4;
      puVar5[0xb] = 0;
      puVar5[0xc] = 0;
      puVar5[0xd] = 0;
      *(undefined4 **)(param_1 + 0x180) = puVar5;
      FUN_000f2600(iVar7,puVar5);
      if ((*(int *)(iVar7 + 0x40) != 0) ||
         (((*(byte *)(iVar7 + 0x90) & 4) != 0 || ((*(byte *)(iVar7 + 0x90) & 8) != 0))))
      goto LAB_000a21c1;
      *(undefined4 *)(iVar7 + 0x24) = 4;
      *(undefined4 *)(iVar7 + 0x28) = 0;
      *(int **)(iVar7 + 0x3c) = piVar4;
      FUN_000ee490(iVar7,4,0);
      *(byte *)(iVar7 + 0x90) = *(byte *)(iVar7 + 0x90) | 0x10;
      *(undefined1 *)(param_1 + 0x1ca) = 1;
    }
  }
  piVar8 = (int *)FUN_0009fff0(param_1,0,".dynstr",3,2,0,0,3,0,0,0);
  *param_4 = piVar8;
  iVar3 = extraout_ECX_00;
  if (piVar8 != (int *)0x0) {
    puVar5 = (undefined4 *)FUN_001e5200(0x30);
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0;
    puVar5[0xb] = param_1 + 0xa0;
    puVar5[1] = 0;
    puVar5[2] = 0;
    puVar5[3] = 0;
    puVar5[4] = 0;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[8] = 0;
    puVar5[9] = 1;
    puVar5[10] = 0;
    *puVar5 = &PTR_FUN_00383cdc;
    FUN_000f2600(piVar8,puVar5);
    if (piVar4 != (int *)0x0) {
      if (((piVar4[0x10] != 0) || ((*(byte *)(piVar4 + 0x24) & 4) != 0)) ||
         ((*(byte *)(piVar4 + 0x24) & 8) != 0)) goto LAB_000a21c1;
      piVar4[0xf] = (int)piVar8;
    }
    iVar3 = *(int *)(param_1 + 0x184);
    if (iVar3 != 0) {
      if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||
         ((*(byte *)(iVar3 + 0x90) & 8) != 0)) goto LAB_000a21c1;
      *(int **)(iVar3 + 0x3c) = piVar8;
    }
    iVar3 = iVar1;
    if (iVar1 != 0) {
      puVar5 = *(undefined4 **)(iVar1 + 0x30);
      puVar12 = *(undefined4 **)(iVar1 + 0x34);
      local_24 = 5;
      local_20 = 0;
      local_28 = 0;
      if (puVar5 == puVar12) {
        local_2c = piVar8;
        FUN_000a5aa0(iVar1 + 0x2c,puVar12,&local_2c);
        puVar9 = *(undefined4 **)(iVar1 + 0x30);
        puVar12 = *(undefined4 **)(iVar1 + 0x34);
      }
      else {
        *puVar5 = piVar8;
        puVar9 = puVar5 + 4;
        puVar5[1] = 0;
        puVar5[2] = 5;
        puVar5[3] = 0;
        *(undefined4 **)(iVar1 + 0x30) = puVar9;
      }
      local_24 = 10;
      local_20 = 0xfffffffe;
      local_28 = 0;
      if (puVar9 == puVar12) {
        local_2c = piVar8;
        FUN_000a5aa0(iVar1 + 0x2c,puVar9,&local_2c);
        iVar3 = extraout_ECX_04;
      }
      else {
        *puVar9 = piVar8;
        puVar9[1] = 0;
        puVar9[2] = 10;
        puVar9[3] = 0xfffffffe;
        *(undefined4 **)(iVar1 + 0x30) = puVar9 + 4;
        local_2c = piVar8;
      }
    }
  }
  bVar17 = false;
  bVar19 = *(int *)(DAT_0038f378 + 8) == 0;
  if (bVar19) goto LAB_000a21dc;
  pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);
  iVar3 = 4;
  pbVar15 = pbVar10;
  pbVar16 = &DAT_002806f5;
  do {
    if (iVar3 == 0) break;
    iVar3 = iVar3 + -1;
    bVar17 = *pbVar15 < *pbVar16;
    bVar19 = *pbVar15 == *pbVar16;
    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
  } while (bVar19);
  bVar18 = false;
  bVar17 = (!bVar17 && !bVar19) == bVar17;
  if (bVar17) {
LAB_000a1d90:
    FUN_001a3090(param_7,local_40 + iVar13,&local_3c,&local_38);
    param_2 = (int *)FUN_0009fff0(param_1,0,".gnu.hash",0x6ffffff6,2,0,0,3,0,0,0);
    puVar5 = (undefined4 *)FUN_001e5200(0x34);
    puVar5[1] = 0;
    puVar5[9] = local_5c;
    puVar5[2] = 0;
    puVar5[8] = 0;
    *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
    puVar5[10] = 0;
    puVar5[3] = local_38;
    *puVar5 = &PTR_FUN_00383c70;
    puVar5[4] = 0;
    puVar5[0xb] = local_3c;
    puVar5[5] = 0xffffffff;
    puVar5[6] = 0xffffffff;
    puVar5[0xc] = "** hash";
    iVar3 = extraout_ECX_01;
    if (param_2 != (int *)0x0) {
      FUN_000f2600(param_2,puVar5);
      if (piVar4 != (int *)0x0) {
        if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||
           ((*(byte *)(param_2 + 0x24) & 8) != 0)) goto LAB_000a21c1;
        param_2[0xf] = (int)piVar4;
      }
      if (*(int *)(DAT_0038f378 + 0xc) == 0) goto LAB_000a2224;
      iVar3 = extraout_ECX_02;
      if (**(int **)(*(int *)(DAT_0038f378 + 0xc) + 4) == 0x20) {
        FUN_000ee490(param_2,4,0);
        iVar3 = extraout_ECX_03;
      }
      if (iVar1 != 0) {
        local_24 = 0x6ffffef5;
        puVar5 = *(undefined4 **)(iVar1 + 0x30);
        local_20 = 0;
        local_28 = 0;
        local_2c = param_2;
        if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {
          FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);
          iVar3 = extraout_ECX_05;
        }
        else {
          *puVar5 = param_2;
          puVar5[1] = 0;
          puVar5[2] = 0x6ffffef5;
          puVar5[3] = 0;
          *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;
        }
      }
    }
    bVar17 = *(int *)(DAT_0038f378 + 8) == 0;
    if (bVar17) {
LAB_000a21dc:
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/parameters.h",0x5c,"options",iVar3);
    }
    pbVar10 = *(byte **)(*(int *)(DAT_0038f378 + 8) + 0x1b30);
  }
  else {
    iVar3 = 5;
    pbVar15 = pbVar10;
    pbVar16 = &DAT_00280708;
    do {
      if (iVar3 == 0) break;
      iVar3 = iVar3 + -1;
      bVar18 = *pbVar15 < *pbVar16;
      bVar17 = *pbVar15 == *pbVar16;
      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
      pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
    } while (bVar17);
    bVar17 = (!bVar18 && !bVar17) == bVar18;
    if (bVar17) goto LAB_000a1d90;
  }
  bVar19 = false;
  iVar3 = 5;
  pbVar15 = pbVar10;
  pbVar16 = &DAT_00280703;
  do {
    if (iVar3 == 0) break;
    iVar3 = iVar3 + -1;
    bVar19 = *pbVar15 < *pbVar16;
    bVar17 = *pbVar15 == *pbVar16;
    pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    pbVar16 = pbVar16 + (uint)bVar20 * -2 + 1;
  } while (bVar17);
  bVar18 = false;
  bVar17 = (!bVar19 && !bVar17) == bVar19;
  if (!bVar17) {
    iVar3 = 5;
    pbVar15 = &DAT_00280708;
    do {
      if (iVar3 == 0) break;
      iVar3 = iVar3 + -1;
      bVar18 = *pbVar10 < *pbVar15;
      bVar17 = *pbVar10 == *pbVar15;
      pbVar10 = pbVar10 + (uint)bVar20 * -2 + 1;
      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    } while (bVar17);
    if ((!bVar18 && !bVar17) != bVar18) {
      return;
    }
  }
  FUN_001a25a0(param_7,iVar13 + local_40,&local_34,&local_30);
  param_2 = (int *)FUN_0009fff0(param_1,0,".hash",5,2,0,0,3,0,0,0);
  puVar5 = (undefined4 *)FUN_001e5200(0x34);
  puVar5[1] = 0;
  puVar5[9] = local_5c;
  puVar5[2] = 0;
  puVar5[8] = 0;
  *(byte *)(puVar5 + 7) = *(byte *)(puVar5 + 7) & 0xe0 | 10;
  puVar5[10] = 0;
  puVar5[3] = local_30;
  *puVar5 = &PTR_FUN_00383c70;
  puVar5[4] = 0;
  puVar5[0xb] = local_34;
  puVar5[5] = 0xffffffff;
  puVar5[6] = 0xffffffff;
  puVar5[0xc] = "** hash";
  if (param_2 != (int *)0x0) {
    FUN_000f2600(param_2,puVar5);
    if (piVar4 != (int *)0x0) {
      if (((param_2[0x10] != 0) || ((*(byte *)(param_2 + 0x24) & 4) != 0)) ||
         ((*(byte *)(param_2 + 0x24) & 8) != 0)) {
LAB_000a21c1:
                    /* WARNING: Subroutine does not return */
        FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");
      }
      param_2[0xf] = (int)piVar4;
    }
    if (*(int *)(DAT_0038f378 + 0xc) == 0) {
LAB_000a2224:
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/parameters.h",0x69,"target",param_2);
    }
    iVar13 = *(int *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0x5c);
    iVar3 = iVar13 + 7;
    if (-1 < iVar13) {
      iVar3 = iVar13;
    }
    FUN_000ee490(param_2,iVar3 >> 3,iVar3 >> 0x1f);
  }
  if (iVar1 != 0) {
    local_24 = 4;
    puVar5 = *(undefined4 **)(iVar1 + 0x30);
    local_20 = 0;
    local_28 = 0;
    if (puVar5 == *(undefined4 **)(iVar1 + 0x34)) {
      local_2c = param_2;
      FUN_000a5aa0(iVar1 + 0x2c,puVar5,&local_2c);
    }
    else {
      *puVar5 = param_2;
      puVar5[1] = 0;
      puVar5[2] = 4;
      puVar5[3] = 0;
      *(undefined4 **)(iVar1 + 0x30) = puVar5 + 4;
    }
  }
  return;
}

