
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original name: gc_process_relocs<32, false, (anonymous namespace)::Target_aarch64<32,
   false>, (anonymous namespace)::Target_aarch64<32, false>::Scan, gold::Default_classify_reloc<4,
   32, false> > */

void gold::
     gc_process_relocs<32,_false,_(anonymous_namespace)::Target_aarch64<32,_false>,_(anonymous_namespace)::Target_aarch64<32,_false>::Scan,_gold::Default_classify_reloc<4,_32,_false>_>
               (Symbol_table *symtab,Layout *param_2,Target_aarch64<32,_false> *target,
               Sized_relobj_file<32,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count
               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)

{
  _Rb_tree_header *p_Var1;
  _Base_ptr *pp_Var2;
  ushort uVar3;
  uint uVar4;
  iterator iVar5;
  Garbage_collection *pGVar6;
  _Base_ptr p_Var7;
  Target *pTVar8;
  _Base_ptr p_Var9;
  _func_int_varargs **pp_Var10;
  iterator __position;
  code *pcVar11;
  char cVar12;
  ulong to;
  General_options *pGVar13;
  const_iterator cVar14;
  size_t sVar15;
  iterator iVar16;
  _Base_ptr p_Var17;
  Output_data_got<32,_false> *this;
  uint shndx;
  long lVar18;
  byte bVar19;
  pointer pcVar20;
  byte bVar21;
  uint uVar22;
  byte *pbVar23;
  _func_int_varargs **pp_Var24;
  _Alloc_hider _Var25;
  Relobj *pRVar26;
  undefined4 in_register_00000084;
  ulong uVar27;
  uint uVar28;
  undefined1 uVar29;
  bool bVar30;
  bool bVar31;
  bool bVar32;
  undefined1 uVar33;
  bool bVar34;
  byte bVar35;
  Reloc_addend_size_info *local_168;
  Addend_info *local_160;
  mapped_type *local_158;
  Symbol_info *local_150;
  Offset_info *local_140;
  _func_int_varargs **local_138;
  char local_12d;
  uint local_124;
  Output_segment *local_110;
  uint *local_108;
  uchar *local_100;
  tuple<> local_ea;
  tuple<> local_e9;
  __node_gen_type __node_gen_2;
  __node_gen_type __node_gen_3;
  __node_gen_type __node_gen;
  __node_gen_type __node_gen_1;
  _Head_base<0,_const_std::pair<gold::Relobj*,_unsigned_int>&,_false> local_c8;
  _Head_base<0,_const_std::pair<gold::Relobj*,_unsigned_int>&,_false> local_c0;
  Output_segment *local_b8;
  uint local_b0;
  Target_aarch64<32,_false> *local_a8;
  uint local_a0;
  Section_id src_id_2;
  Section_id dst_id;
  string src_section_name;
  Section_id src_id;
  
  local_108 = (uint *)CONCAT44(in_register_00000084,src_indx);
  bVar35 = 0;
  shndx = (uint)src_obj;
  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (parameters->options_->icf_status_ == ICF_NONE) {
    src_section_name._M_dataplus._M_p = (pointer)&src_section_name.field_2;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&src_section_name,"");
  }
  else if (*(code **)(*(long *)target + 0x80) == Sized_relobj_file<32,_false>::do_section_name) {
    elfcpp::Elf_file<32,_false,_gold::Object>::section_name
              (&src_section_name,
               (Elf_file<32,_false,_gold::Object> *)
               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy,shndx);
  }
  else {
    (**(code **)(*(long *)target + 0x80))(&src_section_name,target,(ulong)src_obj & 0xffffffff);
  }
  _Var25._M_p = src_section_name._M_dataplus._M_p;
  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (parameters->options_->icf_status_ == ICF_NONE) {
LAB_003095e3:
    bVar32 = false;
    local_168 = (Reloc_addend_size_info *)0x0;
    local_140 = (Offset_info *)0x0;
    local_160 = (Addend_info *)0x0;
    local_150 = (Symbol_info *)0x0;
    local_158 = (mapped_type *)0x0;
  }
  else {
    pcVar20 = (pointer)0xffffffffffffffff;
    src_id.first = (Relobj *)&stack0xffffffffffffffb8;
    uVar29 = 0;
    uVar33 = src_section_name._M_dataplus._M_p == (pointer)0x0;
    if (!(bool)uVar33) {
      sVar15 = strlen(src_section_name._M_dataplus._M_p);
      pcVar20 = _Var25._M_p + sVar15;
    }
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>
              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,
               _Var25._M_p,pcVar20);
    lVar18 = 5;
    pbVar23 = (byte *)".text";
    pRVar26 = src_id.first;
    do {
      if (lVar18 == 0) break;
      lVar18 = lVar18 + -1;
      bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;
      uVar29 = *pbVar23 < bVar19;
      uVar33 = *pbVar23 == bVar19;
      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;
      pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);
    } while ((bool)uVar33);
    bVar32 = false;
    bVar30 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;
    if (!bVar30) {
      lVar18 = 0xf;
      pbVar23 = (byte *)".gnu.linkonce.t";
      pRVar26 = src_id.first;
      do {
        if (lVar18 == 0) break;
        lVar18 = lVar18 + -1;
        bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;
        bVar32 = *pbVar23 < bVar19;
        bVar30 = *pbVar23 == bVar19;
        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;
        pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);
      } while (bVar30);
      if ((!bVar32 && !bVar30) != bVar32) {
        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {
          operator_delete(src_id.first);
        }
        goto LAB_003095e3;
      }
    }
    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {
      operator_delete(src_id.first);
    }
    src_id.second = shndx;
    src_id.first = (Relobj *)target;
    local_158 = std::__detail::
                _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>
                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>
                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id);
    local_150 = &local_158->symbol_info;
    local_140 = &local_158->offset_info;
    local_160 = &local_158->addend_info;
    local_168 = &local_158->reloc_addend_size_info;
    bVar32 = true;
  }
  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->icf_status_ == ICF_SAFE) &&
     (cVar12 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar12 != '\0')) {
    pcVar11 = *(code **)(*(long *)param_2 + 0x10);
    if (pcVar11 != Target::section_may_have_icf_unsafe_pointers) {
                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */
      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00309642;
    }
    pcVar11 = *(code **)(*(long *)param_2 + 0x98);
    bVar30 = pcVar11 < Target::do_section_may_have_icf_unsafe_pointers;
    bVar34 = pcVar11 == Target::do_section_may_have_icf_unsafe_pointers;
    if (!bVar34) {
      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00309642;
    }
    lVar18 = 0xc;
    pbVar23 = (byte *)".rodata._ZTV";
    _Var25 = src_section_name._M_dataplus;
    do {
      if (lVar18 == 0) break;
      lVar18 = lVar18 + -1;
      bVar30 = *pbVar23 < (byte)*_Var25._M_p;
      bVar34 = *pbVar23 == *_Var25._M_p;
      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;
      _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);
    } while (bVar34);
    bVar31 = false;
    bVar30 = (!bVar30 && !bVar34) == bVar30;
    if (!bVar30) {
      lVar18 = 0x11;
      pbVar23 = (byte *)".data.rel.ro._ZTV";
      _Var25 = src_section_name._M_dataplus;
      do {
        if (lVar18 == 0) break;
        lVar18 = lVar18 + -1;
        bVar31 = *pbVar23 < (byte)*_Var25._M_p;
        bVar30 = *pbVar23 == *_Var25._M_p;
        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;
        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);
      } while (bVar30);
      bVar34 = false;
      bVar30 = (!bVar31 && !bVar30) == bVar31;
      if (!bVar30) {
        lVar18 = 0xc;
        pbVar23 = (byte *)".rodata._ZTC";
        _Var25 = src_section_name._M_dataplus;
        do {
          if (lVar18 == 0) break;
          lVar18 = lVar18 + -1;
          bVar34 = *pbVar23 < (byte)*_Var25._M_p;
          bVar30 = *pbVar23 == *_Var25._M_p;
          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;
          _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);
        } while (bVar30);
        bVar31 = false;
        bVar30 = (!bVar34 && !bVar30) == bVar34;
        if (!bVar30) {
          lVar18 = 0x11;
          pbVar23 = (byte *)".data.rel.ro._ZTC";
          _Var25 = src_section_name._M_dataplus;
          do {
            if (lVar18 == 0) break;
            lVar18 = lVar18 + -1;
            bVar31 = *pbVar23 < (byte)*_Var25._M_p;
            bVar30 = *pbVar23 == *_Var25._M_p;
            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;
            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);
          } while (bVar30);
          bVar34 = false;
          bVar30 = (!bVar31 && !bVar30) == bVar31;
          if (!bVar30) {
            lVar18 = 9;
            pbVar23 = (byte *)".eh_frame";
            _Var25 = src_section_name._M_dataplus;
            do {
              if (lVar18 == 0) break;
              lVar18 = lVar18 + -1;
              bVar34 = *pbVar23 < (byte)*_Var25._M_p;
              bVar30 = *pbVar23 == *_Var25._M_p;
              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;
              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);
            } while (bVar30);
            local_12d = (!bVar34 && !bVar30) != bVar34;
            goto LAB_00309642;
          }
        }
      }
    }
  }
  local_12d = '\0';
LAB_00309642:
  if (prelocs != (uchar *)0x0) {
    local_138 = (_func_int_varargs **)0x0;
    local_100 = (uchar *)0x0;
    do {
      uVar4 = local_108[2];
      uVar28 = local_108[1] >> 8;
      if (uVar28 < reloc_count) {
        if (param_8 == (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        uVar22 = uVar28 << 4;
        uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);
        uVar27 = (ulong)uVar3;
        if (uVar3 < 0xff00) {
LAB_003097e5:
          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +
                               (ulong)uVar22 + 4);
          pRVar26 = (Relobj *)(ulong)local_124;
          local_124 = uVar4 + local_124;
          if (bVar32) {
            src_id.second = (uint)uVar27;
            src_id.first = (Relobj *)target;
            std::
            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);
            bVar30 = true;
            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)
                == 3) goto LAB_0030982d;
LAB_003096e8:
            src_id.first = (Relobj *)0x0;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (local_150,(Symbol **)&src_id);
            goto LAB_00309703;
          }
        }
        else {
          if (uVar3 == 0xffff) {
            this = target->got_tlsdesc_;
            if (this == (Output_data_got<32,_false> *)0x0) {
              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);
              target->got_tlsdesc_ = this;
            }
            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);
            uVar27 = (ulong)uVar28;
            goto LAB_003097e5;
          }
          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +
                               (ulong)uVar22 + 4);
          pRVar26 = (Relobj *)(ulong)local_124;
          local_124 = uVar4 + local_124;
          if (!bVar32) goto LAB_00309772;
          src_id.first = (Relobj *)0x0;
          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;
                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */
          std::
          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);
          bVar30 = false;
          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=
              3) goto LAB_003096e8;
LAB_0030982d:
          src_id.first = (Relobj *)0xffffffffffffffff;
          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                    (local_150,(Symbol **)&src_id);
LAB_00309703:
          src_id.first = pRVar26;
          src_id._8_8_ = (long)(int)uVar4;
          std::
          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
          ::emplace_back<std::pair<long_long_int,_long_long_int>_>
                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);
          src_id.first = (Relobj *)(ulong)*local_108;
          iVar5._M_current =
               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>
               )._M_impl._M_finish;
          if (iVar5._M_current ==
              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)
              ._M_impl._M_end_of_storage) {
            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::
            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);
          }
          else {
            *iVar5._M_current = (ulong)src_id.first;
            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).
            _M_impl._M_finish = iVar5._M_current + 1;
          }
          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (local_168,(uint *)&dst_id);
          if (!bVar30) goto LAB_00309772;
        }
        local_110 = (Output_segment *)target;
        if ((local_12d == '\0') ||
           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1
           )) {
LAB_003098d8:
          if (shndx != (uint)uVar27) goto LAB_003098ec;
        }
        else {
          pGVar13 = parameters->options_;
          if (pGVar13 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          if ((pGVar13->shared_).value != false) {
            local_a0 = (uint)*(ushort *)
                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);
            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;
            local_a8 = target;
            std::
            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
            ::
            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);
            goto LAB_003098d8;
          }
          if (shndx == (uint)uVar27) goto LAB_00309772;
LAB_00309900:
          if ((pGVar13->gc_sections_).value != false) {
            dst_id.second = (uint)uVar27;
            pGVar6 = symtab->gc_;
            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
            dst_id.first = (Relobj *)local_110;
            p_Var17 = &p_Var1->_M_header;
            cVar14._M_node = &p_Var1->_M_header;
            src_id_2.first = (Relobj *)target;
            src_id_2.second = shndx;
            if (p_Var7 == (_Base_ptr)0x0) {
LAB_003099a8:
              local_c8._M_head_impl = &src_id_2;
              cVar14._M_node =
                   (_Base_ptr)
                   std::
                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                   ::
                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>
                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,
                              (piecewise_construct_t *)&std::piecewise_construct,
                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,
                              &local_ea);
            }
            else {
              do {
                while ((cVar14._M_node = p_Var7,
                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||
                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&
                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {
                  pp_Var2 = &(cVar14._M_node)->_M_right;
                  cVar14._M_node = p_Var17;
                  p_Var7 = *pp_Var2;
                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;
                }
                p_Var17 = cVar14._M_node;
                p_Var7 = (cVar14._M_node)->_M_left;
              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);
LAB_00309982:
              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||
                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||
                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&
                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;
            }
            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;
            std::
            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
            ::
            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);
            pTVar8 = parameters->target_;
            if (pTVar8 == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");
            }
            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {
              (*pTVar8->_vptr_Target[0x41])
                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,
                         (ulong)local_124);
            }
            if (local_138 != (_func_int_varargs **)0x0) {
              pGVar6 = symtab->gc_;
              src_id.first = (Relobj *)&stack0xffffffffffffffb8;
              sVar15 = strlen((char *)local_138);
              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
              _M_construct<char_const*>
                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                         &src_id,local_138,(byte *)((long)local_138 + sVar15));
              iVar16 = std::
                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                       ::find(&(pGVar6->cident_sections_)._M_t,
                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                              &src_id);
              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {
                operator_delete(src_id.first);
              }
              pGVar6 = symtab->gc_;
              if ((_Rb_tree_header *)iVar16._M_node !=
                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {
                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                         _M_parent;
                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
                src_id.second = shndx;
                p_Var17 = &p_Var1->_M_header;
                cVar14._M_node = &p_Var1->_M_header;
                if (p_Var7 == (_Base_ptr)0x0) {
LAB_00309ea0:
                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;
                  src_id.first = (Relobj *)target;
                  cVar14._M_node =
                       (_Base_ptr)
                       std::
                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>
                       ::
                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>
                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,
                                  (piecewise_construct_t *)&std::piecewise_construct,
                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,
                                  &local_e9);
                }
                else {
                  do {
                    while ((cVar14._M_node = p_Var7,
                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||
                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&
                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {
                      pp_Var2 = &(cVar14._M_node)->_M_right;
                      cVar14._M_node = p_Var17;
                      p_Var7 = *pp_Var2;
                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;
                    }
                    p_Var17 = cVar14._M_node;
                    p_Var7 = (cVar14._M_node)->_M_left;
                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);
LAB_00309b02:
                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||
                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||
                     ((src_id.first = (Relobj *)target,
                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&
                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;
                }
                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;
                    p_Var9 = *(_Base_ptr *)p_Var9) {
                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;
                  std::
                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                  ::
                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar28 < *(uint *)&target[1].field_0x10) {
          dst_id.first = (Relobj *)0x0;
LAB_00309db8:
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);
        if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");
        }
        dst_id.first = (Relobj *)
                       (&((target[1].got_)->super_Output_data_got<32,_false>).
                         super_Output_data_got_base.super_Output_section_data_build.
                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];
        if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;
        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {
          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);
        }
        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {
          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;
          pRVar26 = (Relobj *)(ulong)local_124;
          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)
                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;
          local_124 = uVar4 + local_124;
          if (((ulong)local_110->output_lists_[2].
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;
          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;
          uVar27 = (ulong)uVar28;
          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;
          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;
          uVar29 = bVar19 < 2;
          uVar33 = bVar19 == 2;
          bVar19 = bVar21;
          if ((bool)uVar33) {
            uVar29 = 0;
            uVar33 = local_12d == '\0';
            if (!(bool)uVar33) {
              uVar33 = bVar21 == 0;
              if ((bool)uVar33) {
LAB_00309f71:
                uVar29 = 0;
                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;
                local_b8 = local_110;
                local_b0 = uVar28;
                std::
                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                ::
                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);
                bVar19 = bVar21;
              }
              else {
                if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
                }
                bVar30 = (parameters->options_->shared_).value;
                uVar29 = 0;
                uVar33 = bVar30 == false;
                if (!(bool)uVar33) {
                  uVar29 = 0;
                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;
                  bVar19 = bVar30;
                  if (!(bool)uVar33) goto LAB_00309f71;
                }
              }
            }
          }
        }
        else {
          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;
          pRVar26 = (Relobj *)(ulong)local_124;
          local_124 = uVar4 + local_124;
LAB_00309d1e:
          local_110 = (Output_segment *)0x0;
          uVar29 = 0;
          uVar27 = 0;
          uVar33 = 1;
          bVar19 = 0;
        }
        pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;
        lVar18 = 8;
        pbVar23 = (byte *)"__start_";
        pp_Var24 = pp_Var10;
        do {
          if (lVar18 == 0) break;
          lVar18 = lVar18 + -1;
          uVar29 = *pbVar23 < *(byte *)pp_Var24;
          uVar33 = *pbVar23 == *(byte *)pp_Var24;
          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;
          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);
        } while ((bool)uVar33);
        bVar30 = false;
        bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;
        if (bVar34) {
          pp_Var10 = pp_Var10 + 1;
        }
        else {
          lVar18 = 7;
          pbVar23 = (byte *)"__stop_";
          pp_Var24 = pp_Var10;
          do {
            if (lVar18 == 0) break;
            lVar18 = lVar18 + -1;
            bVar30 = *pbVar23 < *(byte *)pp_Var24;
            bVar34 = *pbVar23 == *(byte *)pp_Var24;
            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;
            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);
          } while (bVar34);
          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);
          if ((!bVar30 && !bVar34) != bVar30) {
            pp_Var10 = local_138;
          }
        }
        local_138 = pp_Var10;
        if (bVar32) {
          if (bVar19 == 0) {
            src_id.first = (Relobj *)0x0;
            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;
            std::
            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);
          }
          else {
            src_id.second = (uint)uVar27;
            src_id.first = (Relobj *)local_110;
            std::
            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>
                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);
          }
          __position._M_current =
               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
               _M_impl._M_finish;
          if (__position._M_current ==
              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl
              ._M_end_of_storage) {
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);
          }
          else {
            *__position._M_current = (Symbol *)dst_id.first;
            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = __position._M_current + 1;
          }
          src_id.first = pRVar26;
          src_id._8_8_ = (long)(int)uVar4;
          std::
          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>
          ::emplace_back<std::pair<long_long_int,_long_long_int>_>
                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);
          src_id.first = (Relobj *)(ulong)*local_108;
          iVar5._M_current =
               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>
               )._M_impl._M_finish;
          if (iVar5._M_current ==
              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)
              ._M_impl._M_end_of_storage) {
            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::
            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);
          }
          else {
            *iVar5._M_current = (ulong)src_id.first;
            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).
            _M_impl._M_finish = iVar5._M_current + 1;
          }
          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (local_168,(uint *)&src_id_2);
        }
        if (bVar19 != 0) {
LAB_003098ec:
          pGVar13 = parameters->options_;
          if (pGVar13 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          goto LAB_00309900;
        }
      }
LAB_00309772:
      local_100 = local_100 + 1;
      local_108 = local_108 + 3;
    } while (prelocs != local_100);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)src_section_name._M_dataplus._M_p != &src_section_name.field_2) {
    operator_delete(src_section_name._M_dataplus._M_p);
  }
  return;
}



void FUN_00309530(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,
                 ulong param_7,long param_8)

{
  long *plVar1;
  byte bVar2;
  ushort uVar3;
  uint uVar4;
  undefined8 *puVar5;
  code *pcVar6;
  long lVar7;
  char cVar8;
  uint uVar9;
  long lVar10;
  long lVar11;
  size_t sVar12;
  long lVar13;
  long lVar14;
  byte *pbVar15;
  byte bVar16;
  byte bVar17;
  long lVar18;
  byte *pbVar19;
  byte *pbVar20;
  byte *pbVar21;
  uint uVar22;
  ulong uVar23;
  undefined1 uVar24;
  bool bVar25;
  bool bVar26;
  bool bVar27;
  undefined1 uVar28;
  bool bVar29;
  byte bVar30;
  long local_168;
  long local_160;
  long local_158;
  long local_150;
  long local_140;
  byte *local_138;
  char local_12d;
  int local_124;
  byte *local_110;
  uint *local_108;
  long local_100;
  undefined1 local_ea;
  undefined1 local_e9;
  long local_e8;
  long local_e0;
  long local_d8;
  long local_d0;
  byte **local_c8;
  byte **local_c0;
  byte *local_b8;
  uint local_b0;
  byte *local_a8;
  uint local_a0;
  byte *local_98;
  uint local_90;
  byte *local_88;
  uint local_80;
  byte *local_78 [2];
  byte local_68 [16];
  byte *local_58;
  undefined8 local_50;
  byte local_48 [24];
  
  bVar30 = 0;
  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {
    local_78[0] = local_68;
    FUN_001a61c0(local_78,"");
  }
  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {
    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);
  }
  else {
    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);
  }
  pbVar20 = local_78[0];
  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {
LAB_003095e3:
    bVar27 = false;
    local_168 = 0;
    local_140 = 0;
    local_160 = 0;
    local_150 = 0;
    local_158 = 0;
  }
  else {
    pbVar15 = (byte *)0xffffffffffffffff;
    local_58 = local_48;
    uVar24 = 0;
    uVar28 = local_78[0] == (byte *)0x0;
    if (!(bool)uVar28) {
      sVar12 = strlen((char *)local_78[0]);
      pbVar15 = pbVar20 + sVar12;
    }
    FUN_001a61c0(&local_58,pbVar20,pbVar15);
    lVar18 = 5;
    pbVar20 = (byte *)".text";
    pbVar15 = local_58;
    do {
      if (lVar18 == 0) break;
      lVar18 = lVar18 + -1;
      uVar24 = *pbVar20 < *pbVar15;
      uVar28 = *pbVar20 == *pbVar15;
      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
    } while ((bool)uVar28);
    bVar27 = false;
    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;
    if (!bVar25) {
      lVar18 = 0xf;
      pbVar20 = (byte *)".gnu.linkonce.t";
      pbVar15 = local_58;
      do {
        if (lVar18 == 0) break;
        lVar18 = lVar18 + -1;
        bVar27 = *pbVar20 < *pbVar15;
        bVar25 = *pbVar20 == *pbVar15;
        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
      } while (bVar25);
      if ((!bVar27 && !bVar25) != bVar27) {
        if (local_58 != local_48) {
          FUN_0049e330(local_58);
        }
        goto LAB_003095e3;
      }
    }
    if (local_58 != local_48) {
      FUN_0049e330(local_58);
    }
    local_50 = CONCAT44(local_50._4_4_,param_4);
    local_58 = param_3;
    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);
    local_150 = local_158 + 0x18;
    local_140 = local_158 + 0x48;
    local_160 = local_158 + 0x30;
    local_168 = local_158 + 0x60;
    bVar27 = true;
  }
  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/parameters.h",0x5c,"options");
  }
  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&
     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {
    pcVar6 = *(code **)(*param_2 + 0x10);
    if (pcVar6 != FUN_001a5310) {
                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */
      local_12d = (*pcVar6)(param_2,local_78[0]);
      goto LAB_00309642;
    }
    pcVar6 = *(code **)(*param_2 + 0x98);
    bVar25 = pcVar6 < FUN_001a53d0;
    bVar29 = pcVar6 == FUN_001a53d0;
    if (!bVar29) {
      local_12d = (*pcVar6)(param_2,local_78[0]);
      goto LAB_00309642;
    }
    lVar18 = 0xc;
    pbVar20 = (byte *)".rodata._ZTV";
    pbVar15 = local_78[0];
    do {
      if (lVar18 == 0) break;
      lVar18 = lVar18 + -1;
      bVar25 = *pbVar20 < *pbVar15;
      bVar29 = *pbVar20 == *pbVar15;
      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
    } while (bVar29);
    bVar26 = false;
    bVar25 = (!bVar25 && !bVar29) == bVar25;
    if (!bVar25) {
      lVar18 = 0x11;
      pbVar20 = (byte *)".data.rel.ro._ZTV";
      pbVar15 = local_78[0];
      do {
        if (lVar18 == 0) break;
        lVar18 = lVar18 + -1;
        bVar26 = *pbVar20 < *pbVar15;
        bVar25 = *pbVar20 == *pbVar15;
        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
      } while (bVar25);
      bVar29 = false;
      bVar25 = (!bVar26 && !bVar25) == bVar26;
      if (!bVar25) {
        lVar18 = 0xc;
        pbVar20 = (byte *)".rodata._ZTC";
        pbVar15 = local_78[0];
        do {
          if (lVar18 == 0) break;
          lVar18 = lVar18 + -1;
          bVar29 = *pbVar20 < *pbVar15;
          bVar25 = *pbVar20 == *pbVar15;
          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
        } while (bVar25);
        bVar26 = false;
        bVar25 = (!bVar29 && !bVar25) == bVar29;
        if (!bVar25) {
          lVar18 = 0x11;
          pbVar20 = (byte *)".data.rel.ro._ZTC";
          pbVar15 = local_78[0];
          do {
            if (lVar18 == 0) break;
            lVar18 = lVar18 + -1;
            bVar26 = *pbVar20 < *pbVar15;
            bVar25 = *pbVar20 == *pbVar15;
            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
          } while (bVar25);
          bVar29 = false;
          bVar25 = (!bVar26 && !bVar25) == bVar26;
          if (!bVar25) {
            lVar18 = 9;
            pbVar20 = (byte *)".eh_frame";
            pbVar15 = local_78[0];
            do {
              if (lVar18 == 0) break;
              lVar18 = lVar18 + -1;
              bVar29 = *pbVar20 < *pbVar15;
              bVar25 = *pbVar20 == *pbVar15;
              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
            } while (bVar25);
            local_12d = (!bVar29 && !bVar25) != bVar29;
            goto LAB_00309642;
          }
        }
      }
    }
  }
  local_12d = '\0';
LAB_00309642:
  if (param_6 != 0) {
    local_138 = (byte *)0x0;
    local_100 = 0;
    local_108 = param_5;
    do {
      uVar4 = local_108[2];
      uVar22 = local_108[1] >> 8;
      if (uVar22 < param_7) {
        if (param_8 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        lVar18 = (ulong)(uVar22 << 4) + param_8;
        uVar3 = *(ushort *)(lVar18 + 0xe);
        uVar9 = (uint)uVar3;
        if (uVar3 < 0xff00) {
LAB_003097e5:
          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);
          local_124 = uVar4 + *(uint *)(lVar18 + 4);
          if (bVar27) {
            local_50 = CONCAT44(local_50._4_4_,uVar9);
            local_58 = param_3;
            FUN_001a7180(local_158,&local_58);
            bVar25 = true;
            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;
LAB_003096e8:
            local_58 = (byte *)0x0;
            FUN_001a7300(local_150,&local_58);
            goto LAB_00309703;
          }
        }
        else {
          if (uVar3 == 0xffff) {
            lVar13 = *(long *)(param_3 + 0x40);
            if (lVar13 == 0) {
              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);
              *(long *)(param_3 + 0x40) = lVar13;
            }
            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);
            goto LAB_003097e5;
          }
          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);
          local_124 = uVar4 + *(uint *)(lVar18 + 4);
          if (!bVar27) goto LAB_00309772;
          local_58 = (byte *)0x0;
          local_50 = local_50 & 0xffffffff00000000;
                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */
          FUN_001a7180(local_158,&local_58);
          bVar25 = false;
          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;
LAB_0030982d:
          local_58 = (byte *)0xffffffffffffffff;
          FUN_001a7300(local_150,&local_58);
LAB_00309703:
          local_58 = pbVar20;
          local_50 = (long)(int)uVar4;
          FUN_001a74a0(local_160,&local_58);
          local_58 = (byte *)(ulong)*local_108;
          puVar5 = *(undefined8 **)(local_140 + 8);
          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {
            FUN_001a6070(local_140,puVar5,&local_58);
          }
          else {
            *puVar5 = local_58;
            *(undefined8 **)(local_140 + 8) = puVar5 + 1;
          }
          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);
          FUN_001a7630(local_168,&local_88);
          if (!bVar25) goto LAB_00309772;
        }
        local_110 = param_3;
        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {
LAB_003098d8:
          if (param_4 != uVar9) goto LAB_003098ec;
        }
        else {
          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);
          if (lVar13 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/parameters.h",0x5c,"options");
          }
          if (*(char *)(lVar13 + 0x2a61) != '\0') {
            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);
            local_e8 = *(long *)(param_1 + 0x298) + 0x68;
            local_a8 = param_3;
            FUN_001a7850(local_e8,&local_a8,&local_e8,1);
            goto LAB_003098d8;
          }
          if (param_4 == uVar9) goto LAB_00309772;
LAB_00309900:
          if (*(char *)(lVar13 + 0x2809) != '\0') {
            lVar13 = *(long *)(param_1 + 0x290);
            lVar18 = lVar13 + 0x28;
            local_88 = local_110;
            lVar10 = lVar18;
            lVar11 = lVar18;
            lVar14 = *(long *)(lVar13 + 0x30);
            local_98 = param_3;
            local_90 = param_4;
            local_80 = uVar9;
            if (*(long *)(lVar13 + 0x30) == 0) {
LAB_003099a8:
              local_c8 = &local_98;
              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);
            }
            else {
              do {
                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||
                       ((param_3 == *(byte **)(lVar11 + 0x20) &&
                        (*(uint *)(lVar11 + 0x28) < param_4))))) {
                  plVar1 = (long *)(lVar11 + 0x18);
                  lVar11 = lVar10;
                  lVar14 = *plVar1;
                  if (*plVar1 == 0) goto LAB_00309982;
                }
                lVar10 = lVar11;
                lVar14 = *(long *)(lVar11 + 0x10);
              } while (*(long *)(lVar11 + 0x10) != 0);
LAB_00309982:
              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||
                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))
              goto LAB_003099a8;
            }
            local_d0 = lVar11 + 0x30;
            FUN_001a78f0(local_d0,&local_88,&local_d0,1);
            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);
            if (plVar1 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");
            }
            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {
              (**(code **)(*plVar1 + 0x208))
                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);
            }
            if (local_138 != (byte *)0x0) {
              lVar18 = *(long *)(param_1 + 0x290);
              local_58 = local_48;
              sVar12 = strlen((char *)local_138);
              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);
              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);
              if (local_58 != local_48) {
                FUN_0049e330();
              }
              lVar13 = *(long *)(param_1 + 0x290);
              if (lVar18 != lVar13 + 0x90) {
                lVar10 = lVar13 + 0x28;
                local_50 = CONCAT44(local_50._4_4_,param_4);
                lVar11 = lVar10;
                lVar14 = lVar10;
                lVar7 = *(long *)(lVar13 + 0x30);
                if (*(long *)(lVar13 + 0x30) == 0) {
LAB_00309ea0:
                  local_c0 = &local_58;
                  local_58 = param_3;
                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);
                }
                else {
                  do {
                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||
                           ((param_3 == *(byte **)(lVar14 + 0x20) &&
                            (*(uint *)(lVar14 + 0x28) < param_4))))) {
                      plVar1 = (long *)(lVar14 + 0x18);
                      lVar14 = lVar11;
                      lVar7 = *plVar1;
                      if (*plVar1 == 0) goto LAB_00309b02;
                    }
                    lVar11 = lVar14;
                    lVar7 = *(long *)(lVar14 + 0x10);
                  } while (*(long *)(lVar14 + 0x10) != 0);
LAB_00309b02:
                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||
                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&
                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;
                }
                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;
                    puVar5 = (undefined8 *)*puVar5) {
                  local_d8 = lVar14 + 0x30;
                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar22 < *(uint *)(param_3 + 0x120)) {
          local_88 = (byte *)0x0;
LAB_00309db8:
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));
        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");
        }
        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);
        if (local_88 == (byte *)0x0) goto LAB_00309db8;
        if ((local_88[0x3a] & 0x10) != 0) {
          local_88 = (byte *)FUN_00443570(param_1,local_88);
        }
        if ((local_88[0x3a] & 7) == 0) {
          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);
          local_110 = *(byte **)(local_88 + 0x10);
          local_124 = uVar4 + *(uint *)(local_88 + 0x40);
          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;
          uVar9 = *(uint *)(local_88 + 0x18);
          bVar16 = local_88[0x3b] >> 5 & 1;
          uVar24 = (local_88[0x38] & 0xf) < 2;
          uVar28 = (local_88[0x38] & 0xf) == 2;
          bVar17 = bVar16;
          if ((bool)uVar28) {
            uVar24 = 0;
            uVar28 = local_12d == '\0';
            if (!(bool)uVar28) {
              uVar28 = bVar16 == 0;
              if ((bool)uVar28) {
LAB_00309f71:
                uVar24 = 0;
                local_e0 = *(long *)(param_1 + 0x298) + 0x68;
                local_b8 = local_110;
                local_b0 = uVar9;
                FUN_001a7850(local_e0,&local_b8,&local_e0,1);
                bVar17 = bVar16;
              }
              else {
                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");
                }
                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);
                uVar24 = 0;
                uVar28 = bVar2 == 0;
                if (!(bool)uVar28) {
                  uVar24 = 0;
                  uVar28 = (local_88[0x39] & 3) == 0;
                  bVar17 = bVar2;
                  if (!(bool)uVar28) goto LAB_00309f71;
                }
              }
            }
          }
        }
        else {
          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);
          local_124 = uVar4 + *(uint *)(local_88 + 0x40);
LAB_00309d1e:
          local_110 = (byte *)0x0;
          uVar24 = 0;
          uVar9 = 0;
          uVar28 = 1;
          bVar17 = 0;
        }
        pbVar15 = *(byte **)local_88;
        lVar18 = 8;
        pbVar19 = (byte *)"__start_";
        pbVar21 = pbVar15;
        do {
          if (lVar18 == 0) break;
          lVar18 = lVar18 + -1;
          uVar24 = *pbVar19 < *pbVar21;
          uVar28 = *pbVar19 == *pbVar21;
          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;
          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;
        } while ((bool)uVar28);
        bVar25 = false;
        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;
        if (bVar29) {
          pbVar15 = pbVar15 + 8;
        }
        else {
          lVar18 = 7;
          pbVar19 = (byte *)"__stop_";
          pbVar21 = pbVar15;
          do {
            if (lVar18 == 0) break;
            lVar18 = lVar18 + -1;
            bVar25 = *pbVar19 < *pbVar21;
            bVar29 = *pbVar19 == *pbVar21;
            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;
            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;
          } while (bVar29);
          pbVar15 = pbVar15 + 7;
          if ((!bVar25 && !bVar29) != bVar25) {
            pbVar15 = local_138;
          }
        }
        local_138 = pbVar15;
        if (bVar27) {
          if (bVar17 == 0) {
            local_58 = (byte *)0x0;
            local_50 = (ulong)local_50._4_4_ << 0x20;
            FUN_001a7180(local_158,&local_58);
          }
          else {
            local_50 = CONCAT44(local_50._4_4_,uVar9);
            local_58 = local_110;
            FUN_001a7180(local_158,&local_58);
          }
          puVar5 = *(undefined8 **)(local_150 + 8);
          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {
            FUN_001a5d30(local_150,puVar5,&local_88);
          }
          else {
            *puVar5 = local_88;
            *(undefined8 **)(local_150 + 8) = puVar5 + 1;
          }
          local_58 = pbVar20;
          local_50 = (long)(int)uVar4;
          FUN_001a74a0(local_160,&local_58);
          local_58 = (byte *)(ulong)*local_108;
          puVar5 = *(undefined8 **)(local_140 + 8);
          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {
            FUN_001a6070(local_140,puVar5,&local_58);
          }
          else {
            *puVar5 = local_58;
            *(undefined8 **)(local_140 + 8) = puVar5 + 1;
          }
          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);
          FUN_001a7630(local_168,&local_98);
        }
        if (bVar17 != 0) {
LAB_003098ec:
          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);
          if (lVar13 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/parameters.h",0x5c,"options");
          }
          goto LAB_00309900;
        }
      }
LAB_00309772:
      local_100 = local_100 + 1;
      local_108 = local_108 + 3;
    } while (param_6 != local_100);
  }
  if (local_78[0] != local_68) {
    FUN_0049e330();
  }
  return;
}


PUSH RBP
MOV RBP,RSP
PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBX
SUB RSP,0x158
MOV RAX,qword ptr [0x0067cb08]
MOV qword ptr [RBP + -0x140],RDI
MOV dword ptr [RBP + -0x124],ECX
MOV RAX,qword ptr [RAX + 0x10]
MOV qword ptr [RBP + -0x100],R8
MOV qword ptr [RBP + -0x118],R9
TEST RAX,RAX
JZ 0x0030a302
MOV R12,RSI
MOV ESI,dword ptr [RAX + 0x9050]
MOV R15,RDX
TEST ESI,ESI
JZ 0x0030a1cf
MOV RAX,qword ptr [RDX]
LEA RDX,[0x22c0c0]
MOV RAX,qword ptr [RAX + 0x80]
CMP RAX,RDX
JNZ 0x0030a1fd
LEA RAX,[RBP + -0x70]
MOV EDX,dword ptr [RBP + -0x124]
LEA RSI,[R15 + 0xf8]
MOV RDI,RAX
MOV qword ptr [RBP + -0x170],RAX
CALL 0x0022bf40
MOV RAX,qword ptr [0x0067cb08]
MOV RDX,qword ptr [RAX + 0x10]
TEST RDX,RDX
JZ 0x0030a2a2
MOV ECX,dword ptr [RDX + 0x9050]
TEST ECX,ECX
JNZ 0x0030a0c0
MOV byte ptr [RBP + -0x11d],0x0
MOV qword ptr [RBP + -0x160],0x0
MOV qword ptr [RBP + -0x138],0x0
MOV qword ptr [RBP + -0x158],0x0
MOV qword ptr [RBP + -0x148],0x0
MOV qword ptr [RBP + -0x150],0x0
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x0030a2ea
CMP dword ptr [RAX + 0x9050],0x2
JZ 0x00309fce
MOV byte ptr [RBP + -0x125],0x0
CMP qword ptr [RBP + -0x118],0x0
JZ 0x00309f10
MOV qword ptr [RBP + -0x130],0x0
LEA RAX,[RBP + -0x50]
MOV qword ptr [RBP + -0x110],RAX
ADD RAX,0x10
MOV qword ptr [RBP + -0xf8],0x0
MOV qword ptr [RBP + -0x168],RAX
JMP 0x00309796
CMP R13D,0xffff
JZ 0x00309d70
MOV R14D,dword ptr [RBX + 0x4]
CMP byte ptr [RBP + -0x11d],0x0
LEA EAX,[R12 + R14*0x1]
MOV dword ptr [RBP + -0x11c],EAX
JZ 0x00309772
MOV RSI,qword ptr [RBP + -0x110]
MOV RDI,qword ptr [RBP + -0x150]
MOV qword ptr [RBP + -0x50],0x0
MOV dword ptr [RBP + -0x48],0x0
CALL 0x001a7180
MOVZX EAX,byte ptr [RBX + 0xc]
MOV byte ptr [RBP + -0x108],0x0
AND EAX,0xf
CMP AL,0x3
JZ 0x0030982d
MOV RSI,qword ptr [RBP + -0x110]
MOV RDI,qword ptr [RBP + -0x148]
MOV qword ptr [RBP + -0x50],0x0
CALL 0x001a7300
MOV RSI,qword ptr [RBP + -0x110]
MOV RDI,qword ptr [RBP + -0x158]
MOV EAX,R14D
MOV qword ptr [RBP + -0x48],R12
MOV qword ptr [RBP + -0x50],RAX
CALL 0x001a74a0
MOV RAX,qword ptr [RBP + -0x100]
MOV RDI,qword ptr [RBP + -0x138]
MOV EAX,dword ptr [RAX]
MOV RSI,qword ptr [RDI + 0x8]
MOV qword ptr [RBP + -0x50],RAX
CMP RSI,qword ptr [RDI + 0x10]
JZ 0x00309e00
MOV qword ptr [RSI],RAX
ADD RSI,0x8
MOV qword ptr [RDI + 0x8],RSI
MOV RDI,qword ptr [RBP + -0x160]
LEA RSI,[RBP + -0x80]
MOV dword ptr [RBP + -0x80],0x0
CALL 0x001a7630
CMP byte ptr [RBP + -0x108],0x0
JNZ 0x00309850
ADD qword ptr [RBP + -0xf8],0x1
MOV RAX,qword ptr [RBP + -0xf8]
ADD qword ptr [RBP + -0x100],0xc
CMP qword ptr [RBP + -0x118],RAX
JZ 0x00309f10
MOV RAX,qword ptr [RBP + -0x100]
MOV ECX,dword ptr [RAX + 0x4]
MOVSXD R12,dword ptr [RAX + 0x8]
MOV R14D,ECX
MOV dword ptr [RBP + -0x108],ECX
SHR R14D,0x8
MOV EAX,R14D
CMP RAX,qword ptr [RBP + 0x10]
JNC 0x00309b70
CMP qword ptr [RBP + 0x18],0x0
JZ 0x0030a242
MOV EBX,R14D
SHL EBX,0x4
ADD RBX,qword ptr [RBP + 0x18]
MOVZX R13D,word ptr [RBX + 0xe]
CMP R13D,0xfeff
JA 0x00309688
MOV R14D,dword ptr [RBX + 0x4]
CMP byte ptr [RBP + -0x11d],0x0
LEA EAX,[R12 + R14*0x1]
MOV dword ptr [RBP + -0x11c],EAX
JZ 0x00309850
MOV RSI,qword ptr [RBP + -0x110]
MOV RDI,qword ptr [RBP + -0x150]
MOV qword ptr [RBP + -0x50],R15
MOV dword ptr [RBP + -0x48],R13D
CALL 0x001a7180
MOVZX EAX,byte ptr [RBX + 0xc]
MOV byte ptr [RBP + -0x108],0x1
AND EAX,0xf
CMP AL,0x3
JNZ 0x003096e8
MOV RSI,qword ptr [RBP + -0x110]
MOV RDI,qword ptr [RBP + -0x148]
MOV qword ptr [RBP + -0x50],-0x1
CALL 0x001a7300
JMP 0x00309703
CMP byte ptr [RBP + -0x125],0x0
JZ 0x003098d8
MOVZX EAX,byte ptr [RBX + 0xc]
AND EAX,0xf
CMP AL,0x1
JZ 0x003098d8
MOV RAX,qword ptr [0x0067cb08]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x0030a2ba
CMP byte ptr [RAX + 0x2a61],0x0
JZ 0x00309e20
MOV RAX,qword ptr [RBP + -0x140]
LEA RDX,[RBP + -0xe0]
LEA RSI,[RBP + -0xa0]
MOV ECX,0x1
MOV qword ptr [RBP + -0xa0],R15
MOV RAX,qword ptr [RAX + 0x298]
MOV qword ptr [RBP + -0x108],RAX
MOVZX EAX,word ptr [RBX + 0xe]
MOV dword ptr [RBP + -0x98],EAX
MOV RAX,qword ptr [RBP + -0x108]
LEA RDI,[RAX + 0x68]
MOV qword ptr [RBP + -0xe0],RDI
CALL 0x001a7850
NOP dword ptr [RAX]
CMP dword ptr [RBP + -0x124],R13D
JZ 0x00309772
MOV qword ptr [RBP + -0x108],R15
MOV RAX,qword ptr [0x0067cb08]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x0030a25a
CMP byte ptr [RAX + 0x2809],0x0
JZ 0x00309772
MOV RAX,qword ptr [RBP + -0x140]
MOV ESI,dword ptr [RBP + -0x124]
MOV qword ptr [RBP + -0x90],R15
MOV dword ptr [RBP + -0x78],R13D
MOV RDI,qword ptr [RAX + 0x290]
MOV RAX,qword ptr [RBP + -0x108]
MOV dword ptr [RBP + -0x88],ESI
MOV RDX,qword ptr [RDI + 0x30]
LEA RCX,[RDI + 0x28]
MOV qword ptr [RBP + -0x80],RAX
MOV RAX,RCX
TEST RDX,RDX
JZ 0x003099a8
MOV RBX,qword ptr [RBP + -0x100]
JMP 0x00309973
JNZ 0x00309967
CMP ESI,dword ptr [RDX + 0x28]
JA 0x00309979
MOV RAX,RDX
MOV RDX,qword ptr [RDX + 0x10]
TEST RDX,RDX
JZ 0x00309982
CMP R15,qword ptr [RDX + 0x20]
JBE 0x00309960
MOV RDX,qword ptr [RDX + 0x18]
TEST RDX,RDX
JNZ 0x00309973
MOV qword ptr [RBP + -0x100],RBX
CMP RAX,RCX
JZ 0x003099a8
CMP R15,qword ptr [RAX + 0x20]
JC 0x003099a8
JNZ 0x003099d7
MOV EBX,dword ptr [RBP + -0x124]
CMP EBX,dword ptr [RAX + 0x28]
JNC 0x003099d7
NOP dword ptr [RAX]
LEA RDX,[RBP + -0x90]
ADD RDI,0x20
MOV RSI,RAX
MOV qword ptr [RBP + -0xc0],RDX
LEA RCX,[RBP + -0xc0]
LEA R8,[RBP + -0xe2]
LEA RDX,[0x567620]
CALL 0x001a64f0
LEA RDI,[RAX + 0x30]
LEA RSI,[RBP + -0x80]
MOV ECX,0x1
LEA RDX,[RBP + -0xc8]
MOV qword ptr [RBP + -0xc8],RDI
CALL 0x001a78f0
MOV RAX,qword ptr [0x0067cb08]
MOV RDI,qword ptr [RAX + 0x18]
TEST RDI,RDI
JZ 0x0030a28a
MOV RAX,qword ptr [RDI]
LEA RBX,[0x1a4ba0]
MOV RAX,qword ptr [RAX + 0x208]
CMP RAX,RBX
JNZ 0x00309e40
MOV R14,qword ptr [RBP + -0x130]
TEST R14,R14
JZ 0x00309772
MOV RDI,qword ptr [RBP + -0x140]
MOV R13,qword ptr [RBP + -0x168]
MOV RBX,qword ptr [RDI + 0x290]
MOV RDI,R14
MOV qword ptr [RBP + -0x50],R13
CALL 0x00177490
MOV RSI,R14
LEA RDX,[R14 + RAX*0x1]
MOV R14,qword ptr [RBP + -0x110]
MOV RDI,R14
CALL 0x001a61c0
LEA RDI,[RBX + 0x88]
MOV RSI,R14
CALL 0x001c4d80
MOV RDI,qword ptr [RBP + -0x50]
MOV RBX,RAX
CMP RDI,R13
JZ 0x00309a8c
CALL 0x0049e330
MOV RAX,qword ptr [RBP + -0x140]
MOV RDI,qword ptr [RAX + 0x290]
LEA RAX,[RDI + 0x90]
CMP RBX,RAX
JZ 0x00309772
MOV ESI,dword ptr [RBP + -0x124]
MOV RDX,qword ptr [RDI + 0x30]
LEA RCX,[RDI + 0x28]
MOV qword ptr [RBP + -0x50],R15
MOV RAX,RCX
MOV dword ptr [RBP + -0x48],ESI
TEST RDX,RDX
JZ 0x00309ea0
MOV R10,qword ptr [RBP + -0x100]
MOV R11,R10
JMP 0x00309af3
JNZ 0x00309ae7
CMP ESI,dword ptr [RDX + 0x28]
JA 0x00309af9
MOV RAX,RDX
MOV RDX,qword ptr [RDX + 0x10]
TEST RDX,RDX
JZ 0x00309b02
CMP R15,qword ptr [RDX + 0x20]
JBE 0x00309ae0
MOV RDX,qword ptr [RDX + 0x18]
TEST RDX,RDX
JNZ 0x00309af3
MOV qword ptr [RBP + -0x100],R11
CMP RAX,RCX
JZ 0x00309ea0
CMP R15,qword ptr [RAX + 0x20]
JC 0x00309ea0
JZ 0x00309e88
MOV RBX,qword ptr [RBX + 0x50]
LEA R12,[RAX + 0x30]
LEA R13,[RBP + -0xd0]
TEST RBX,RBX
JZ 0x00309772
NOP word ptr [RAX + RAX*0x1]
LEA RSI,[RBX + 0x8]
MOV ECX,0x1
MOV RDX,R13
MOV RDI,R12
MOV qword ptr [RBP + -0xd0],R12
CALL 0x001a78f0
MOV RBX,qword ptr [RBX]
TEST RBX,RBX
JNZ 0x00309b40
JMP 0x00309772
MOV EAX,dword ptr [R15 + 0x120]
CMP R14D,EAX
JC 0x00309db0
SUB R14D,EAX
MOV RDX,qword ptr [R15 + 0x130]
MOV RAX,qword ptr [R15 + 0x138]
SUB RAX,RDX
SAR RAX,0x3
CMP R14,RAX
JNC 0x0030a272
MOV RAX,qword ptr [RDX + R14*0x8]
MOV qword ptr [RBP + -0x80],RAX
TEST RAX,RAX
JZ 0x00309db8
TEST byte ptr [RAX + 0x3a],0x10
JNZ 0x00309d90
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x00309d10
MOV R14D,dword ptr [RAX + 0x40]
MOV RBX,qword ptr [RAX + 0x10]
LEA ESI,[R12 + R14*0x1]
MOV qword ptr [RBP + -0x108],RBX
MOV dword ptr [RBP + -0x11c],ESI
TEST byte ptr [RBX + 0x3c],0x1
JNZ 0x00309d1e
MOVZX EBX,byte ptr [RAX + 0x3b]
MOVZX EDX,byte ptr [RAX + 0x38]
MOV R13D,dword ptr [RAX + 0x18]
SHR BL,0x5
AND EDX,0xf
AND EBX,0x1
CMP DL,0x2
JNZ 0x00309c10
CMP byte ptr [RBP + -0x125],0x0
JNZ 0x00309f40
MOV RAX,qword ptr [RAX]
MOV ECX,0x8
LEA RSI,[0x5335ef]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x00309d38
ADD RAX,0x8
MOV qword ptr [RBP + -0x130],RAX
CMP byte ptr [RBP + -0x11d],0x0
JZ 0x00309d01
TEST BL,BL
JNZ 0x00309dd0
MOV RSI,qword ptr [RBP + -0x110]
MOV RDI,qword ptr [RBP + -0x150]
MOV qword ptr [RBP + -0x50],0x0
MOV dword ptr [RBP + -0x48],0x0
CALL 0x001a7180
MOV RCX,qword ptr [RBP + -0x148]
MOV RSI,qword ptr [RCX + 0x8]
CMP RSI,qword ptr [RCX + 0x10]
JZ 0x00309ed8
MOV RAX,qword ptr [RBP + -0x80]
ADD RSI,0x8
MOV qword ptr [RSI + -0x8],RAX
MOV qword ptr [RCX + 0x8],RSI
MOV RSI,qword ptr [RBP + -0x110]
MOV RDI,qword ptr [RBP + -0x158]
MOV EAX,R14D
MOV qword ptr [RBP + -0x48],R12
MOV qword ptr [RBP + -0x50],RAX
CALL 0x001a74a0
MOV RAX,qword ptr [RBP + -0x100]
MOV RDX,qword ptr [RBP + -0x138]
MOV EAX,dword ptr [RAX]
MOV RSI,qword ptr [RDX + 0x8]
MOV qword ptr [RBP + -0x50],RAX
CMP RSI,qword ptr [RDX + 0x10]
JZ 0x00309ef0
MOV qword ptr [RSI],RAX
ADD RSI,0x8
MOV qword ptr [RDX + 0x8],RSI
MOV RDI,qword ptr [RBP + -0x160]
LEA RSI,[RBP + -0x90]
MOV dword ptr [RBP + -0x90],0x0
CALL 0x001a7630
TEST BL,BL
JNZ 0x003098ec
JMP 0x00309772
MOV R14D,dword ptr [RAX + 0x40]
LEA EBX,[R12 + R14*0x1]
MOV dword ptr [RBP + -0x11c],EBX
MOV qword ptr [RBP + -0x108],0x0
XOR EBX,EBX
XOR R13D,R13D
JMP 0x00309c10
MOV RDI,RAX
MOV ECX,0x7
LEA RSI,[0x5335f8]
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
ADD RAX,0x7
TEST DL,DL
CMOVNZ RAX,qword ptr [RBP + -0x130]
MOV qword ptr [RBP + -0x130],RAX
JMP 0x00309c3d
MOV RDI,qword ptr [R15 + 0x40]
TEST RDI,RDI
JZ 0x00309e70
MOV EDX,R14D
MOV RSI,R15
CALL 0x00392c60
MOV R13D,EAX
JMP 0x003097e5
MOV RDI,qword ptr [RBP + -0x140]
MOV RSI,RAX
CALL 0x00443570
MOV qword ptr [RBP + -0x80],RAX
JMP 0x00309bbc
MOV qword ptr [RBP + -0x80],0x0
LEA RDX,[0x5649b0]
MOV ESI,0x11c
LEA RDI,[0x5335df]
CALL 0x00352af0
MOV RAX,qword ptr [RBP + -0x108]
MOV RSI,qword ptr [RBP + -0x110]
MOV dword ptr [RBP + -0x48],R13D
MOV RDI,qword ptr [RBP + -0x150]
MOV qword ptr [RBP + -0x50],RAX
CALL 0x001a7180
JMP 0x00309c74
MOV RDX,qword ptr [RBP + -0x110]
MOV RDI,qword ptr [RBP + -0x138]
CALL 0x001a6070
JMP 0x0030974e
CMP dword ptr [RBP + -0x124],R13D
JZ 0x00309772
MOV qword ptr [RBP + -0x108],R15
JMP 0x00309900
MOV ECX,dword ptr [RBP + -0x11c]
SUB RSP,0x8
MOV R9D,R13D
MOV RDX,R15
MOV R8,qword ptr [RBP + -0x108]
MOV RSI,qword ptr [RBP + -0x140]
PUSH RCX
MOV ECX,dword ptr [RBP + -0x124]
CALL RAX
POP RAX
POP RDX
JMP 0x00309a25
MOV RAX,qword ptr [R15]
MOV RDI,R15
CALL qword ptr [RAX + 0xd8]
MOV RDI,RAX
MOV qword ptr [R15 + 0x40],RAX
JMP 0x00309d7d
MOV ESI,dword ptr [RBP + -0x124]
CMP ESI,dword ptr [RAX + 0x28]
JNC 0x00309b22
NOP word ptr [RAX + RAX*0x1]
MOV RCX,qword ptr [RBP + -0x110]
ADD RDI,0x20
MOV RSI,RAX
LEA R8,[RBP + -0xe1]
LEA RDX,[0x567620]
MOV qword ptr [RBP + -0xb8],RCX
LEA RCX,[RBP + -0xb8]
CALL 0x001a64f0
JMP 0x00309b22
MOV RDI,qword ptr [RBP + -0x148]
LEA RDX,[RBP + -0x80]
CALL 0x001a5d30
JMP 0x00309c99
MOV RDX,qword ptr [RBP + -0x110]
MOV RDI,qword ptr [RBP + -0x138]
CALL 0x001a6070
JMP 0x00309ce4
MOV RAX,qword ptr [RBP + -0x170]
MOV RDI,qword ptr [RBP + -0x70]
ADD RAX,0x10
CMP RDI,RAX
JZ 0x00309f29
CALL 0x0049e330
LEA RSP,[RBP + -0x28]
POP RBX
POP R12
POP R13
POP R14
POP R15
POP RBP
RET
TEST BL,BL
JZ 0x00309f71
MOV RDX,qword ptr [0x0067cb08]
MOV RDX,qword ptr [RDX + 0x10]
TEST RDX,RDX
JZ 0x0030a2d2
MOVZX EDX,byte ptr [RDX + 0x2a61]
TEST DL,DL
JZ 0x00309c10
TEST byte ptr [RAX + 0x39],0x3
JZ 0x0030a1f6
MOV RAX,qword ptr [RBP + -0x140]
LEA RDX,[RBP + -0xd8]
LEA RSI,[RBP + -0xb0]
MOV ECX,0x1
MOV dword ptr [RBP + -0xa8],R13D
MOV RAX,qword ptr [RAX + 0x298]
MOV qword ptr [RBP + -0x178],RAX
MOV RAX,qword ptr [RBP + -0x108]
MOV qword ptr [RBP + -0xb0],RAX
MOV RAX,qword ptr [RBP + -0x178]
LEA RDI,[RAX + 0x68]
MOV qword ptr [RBP + -0xd8],RDI
CALL 0x001a7850
MOV RAX,qword ptr [RBP + -0x80]
JMP 0x00309c10
MOV RAX,qword ptr [R12]
MOV RDI,R12
CALL qword ptr [RAX + 0x90]
TEST AL,AL
JZ 0x0030963b
MOV RDX,qword ptr [R12]
LEA RSI,[0x1a5310]
MOV RAX,qword ptr [RBP + -0x70]
MOV RCX,qword ptr [RDX + 0x10]
CMP RCX,RSI
JNZ 0x0030a218
MOV RDX,qword ptr [RDX + 0x98]
LEA RCX,[0x1a53d0]
CMP RDX,RCX
JNZ 0x0030a22b
MOV ECX,0xc
LEA RSI,[0x535e91]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0030963b
MOV ECX,0x11
LEA RSI,[0x535e9e]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0030963b
MOV ECX,0xc
LEA RSI,[0x535eb0]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0030963b
MOV ECX,0x11
LEA RSI,[0x535ebd]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0030963b
MOV RDI,RAX
MOV ECX,0x9
LEA RSI,[0x535ecf]
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
SETNZ byte ptr [RBP + -0x125]
JMP 0x00309642
LEA RBX,[RBP + -0x50]
MOV R13,qword ptr [RBP + -0x70]
MOV RDX,-0x1
LEA RAX,[RBX + 0x10]
MOV qword ptr [RBP + -0x50],RAX
TEST R13,R13
JZ 0x0030a0e9
MOV RDI,R13
CALL 0x00177490
LEA RDX,[R13 + RAX*0x1]
MOV RSI,R13
MOV RDI,RBX
CALL 0x001a61c0
MOV RAX,qword ptr [RBP + -0x50]
MOV ECX,0x5
LEA RSI,[0x5335c9]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0030a14b
MOV ECX,0xf
LEA RSI,[0x5335cf]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0030a14b
ADD RBX,0x10
CMP RAX,RBX
JZ 0x0030a13f
MOV RDI,RAX
CALL 0x0049e330
MOV RAX,qword ptr [0x0067cb08]
JMP 0x003095e3
LEA RDX,[RBX + 0x10]
CMP RAX,RDX
JNZ 0x0030a235
MOV EAX,dword ptr [RBP + -0x124]
MOV RSI,RBX
MOV qword ptr [RBP + -0x50],R15
MOV dword ptr [RBP + -0x48],EAX
MOV RAX,qword ptr [RBP + -0x140]
MOV RAX,qword ptr [RAX + 0x298]
LEA RDI,[RAX + 0xa8]
MOV qword ptr [RBP + -0xf8],RAX
CALL 0x001a7bd0
LEA RBX,[RAX + 0x18]
LEA RSI,[RAX + 0x48]
MOV qword ptr [RBP + -0x150],RAX
MOV qword ptr [RBP + -0x148],RBX
LEA RBX,[RAX + 0x30]
ADD RAX,0x60
MOV qword ptr [RBP + -0x160],RAX
MOV RAX,qword ptr [0x0067cb08]
MOV qword ptr [RBP + -0x158],RBX
MOV qword ptr [RBP + -0x138],RSI
MOV byte ptr [RBP + -0x11d],0x1
JMP 0x00309621
LEA RDI,[RBP + -0x70]
LEA RDX,[0x5861f6]
LEA RAX,[RDI + 0x10]
MOV RSI,RDX
MOV qword ptr [RBP + -0x170],RDI
MOV qword ptr [RBP + -0x70],RAX
CALL 0x001a61c0
JMP 0x003095c1
MOV EBX,EDX
JMP 0x00309c10
LEA RDI,[RBP + -0x70]
MOV EDX,dword ptr [RBP + -0x124]
MOV RSI,R15
MOV qword ptr [RBP + -0x170],RDI
CALL RAX
JMP 0x003095c1
MOV RSI,RAX
MOV RDI,R12
CALL RCX
MOV byte ptr [RBP + -0x125],AL
JMP 0x00309642
MOV RSI,RAX
MOV RDI,R12
CALL RDX
JMP 0x0030a220
MOV RDI,RAX
CALL 0x0049e330
JMP 0x0030a158
LEA RDX,[0x5649b0]
MOV ESI,0xea
LEA RDI,[0x5335df]
CALL 0x00352af0
LEA RDX,[0x5664e8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x564c98]
MOV ESI,0x8ad
LEA RDI,[0x5333ac]
CALL 0x00352af0
LEA RDX,[0x564cf8]
MOV ESI,0x73
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x5664e8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x5664e8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x5664e8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x5664e8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x5664e8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
(translation_unit "void FUN_00309530(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)\n\n{\n  long *plVar1;\n  byte bVar2;\n  ushort uVar3;\n  uint uVar4;\n  undefined8 *puVar5;\n  code *pcVar6;\n  long lVar7;\n  char cVar8;\n  uint uVar9;\n  long lVar10;\n  long lVar11;\n  size_t sVar12;\n  long lVar13;\n  long lVar14;\n  byte *pbVar15;\n  byte bVar16;\n  byte bVar17;\n  long lVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  uint uVar22;\n  ulong uVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  byte bVar30;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_150;\n  long local_140;\n  byte *local_138;\n  char local_12d;\n  int local_124;\n  byte *local_110;\n  uint *local_108;\n  long local_100;\n  undefined1 local_ea;\n  undefined1 local_e9;\n  long local_e8;\n  long local_e0;\n  long local_d8;\n  long local_d0;\n  byte **local_c8;\n  byte **local_c0;\n  byte *local_b8;\n  uint local_b0;\n  byte *local_a8;\n  uint local_a0;\n  byte *local_98;\n  uint local_90;\n  byte *local_88;\n  uint local_80;\n  byte *local_78 [2];\n  byte local_68 [16];\n  byte *local_58;\n  undefined8 local_50;\n  byte local_48 [24];\n  \n  bVar30 = 0;\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar20 = local_78[0];\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }\n  local_12d = '\0';\nLAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}\n\n" (function_definition "void FUN_00309530(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)\n\n{\n  long *plVar1;\n  byte bVar2;\n  ushort uVar3;\n  uint uVar4;\n  undefined8 *puVar5;\n  code *pcVar6;\n  long lVar7;\n  char cVar8;\n  uint uVar9;\n  long lVar10;\n  long lVar11;\n  size_t sVar12;\n  long lVar13;\n  long lVar14;\n  byte *pbVar15;\n  byte bVar16;\n  byte bVar17;\n  long lVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  uint uVar22;\n  ulong uVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  byte bVar30;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_150;\n  long local_140;\n  byte *local_138;\n  char local_12d;\n  int local_124;\n  byte *local_110;\n  uint *local_108;\n  long local_100;\n  undefined1 local_ea;\n  undefined1 local_e9;\n  long local_e8;\n  long local_e0;\n  long local_d8;\n  long local_d0;\n  byte **local_c8;\n  byte **local_c0;\n  byte *local_b8;\n  uint local_b0;\n  byte *local_a8;\n  uint local_a0;\n  byte *local_98;\n  uint local_90;\n  byte *local_88;\n  uint local_80;\n  byte *local_78 [2];\n  byte local_68 [16];\n  byte *local_58;\n  undefined8 local_50;\n  byte local_48 [24];\n  \n  bVar30 = 0;\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar20 = local_78[0];\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }\n  local_12d = '\0';\nLAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00309530(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" identifier (parameter_list "(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_7" type_identifier identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long *plVar1;\n  byte bVar2;\n  ushort uVar3;\n  uint uVar4;\n  undefined8 *puVar5;\n  code *pcVar6;\n  long lVar7;\n  char cVar8;\n  uint uVar9;\n  long lVar10;\n  long lVar11;\n  size_t sVar12;\n  long lVar13;\n  long lVar14;\n  byte *pbVar15;\n  byte bVar16;\n  byte bVar17;\n  long lVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  uint uVar22;\n  ulong uVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  byte bVar30;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_150;\n  long local_140;\n  byte *local_138;\n  char local_12d;\n  int local_124;\n  byte *local_110;\n  uint *local_108;\n  long local_100;\n  undefined1 local_ea;\n  undefined1 local_e9;\n  long local_e8;\n  long local_e0;\n  long local_d8;\n  long local_d0;\n  byte **local_c8;\n  byte **local_c0;\n  byte *local_b8;\n  uint local_b0;\n  byte *local_a8;\n  uint local_a0;\n  byte *local_98;\n  uint local_90;\n  byte *local_88;\n  uint local_80;\n  byte *local_78 [2];\n  byte local_68 [16];\n  byte *local_58;\n  undefined8 local_50;\n  byte local_48 [24];\n  \n  bVar30 = 0;\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar20 = local_78[0];\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }\n  local_12d = '\0';\nLAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "undefined1 uVar28;" type_identifier identifier ;) (declaration "bool bVar29;" primitive_type identifier ;) (declaration "byte bVar30;" type_identifier identifier ;) (declaration "long local_168;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_160;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_158;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_150;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_140;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *local_138;" type_identifier (pointer_declarator "*local_138" * identifier) ;) (declaration "char local_12d;" primitive_type identifier ;) (declaration "int local_124;" primitive_type identifier ;) (declaration "byte *local_110;" type_identifier (pointer_declarator "*local_110" * identifier) ;) (declaration "uint *local_108;" type_identifier (pointer_declarator "*local_108" * identifier) ;) (declaration "long local_100;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_ea;" type_identifier identifier ;) (declaration "undefined1 local_e9;" type_identifier identifier ;) (declaration "long local_e8;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_e0;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_d8;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_d0;" (sized_type_specifier "long" long) identifier ;) (declaration "byte **local_c8;" type_identifier (pointer_declarator "**local_c8" * (pointer_declarator "*local_c8" * identifier)) ;) (declaration "byte **local_c0;" type_identifier (pointer_declarator "**local_c0" * (pointer_declarator "*local_c0" * identifier)) ;) (declaration "byte *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "byte *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "byte *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "byte *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "byte *local_78 [2];" type_identifier (pointer_declarator "*local_78 [2]" * (array_declarator "local_78 [2]" identifier [ number_literal ])) ;) (declaration "byte local_68 [16];" type_identifier (array_declarator "local_68 [16]" identifier [ number_literal ]) ;) (declaration "byte *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "byte local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "bVar30 = 0;" (assignment_expression "bVar30 = 0" identifier = number_literal) ;) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" if (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }" { (expression_statement "local_78[0] = local_68;" (assignment_expression "local_78[0] = local_68" (subscript_expression "local_78[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_001a61c0(local_78,"");" (call_expression "FUN_001a61c0(local_78,"")" identifier (argument_list "(local_78,"")" ( identifier , (string_literal """" " ") ))) ;) }) (else_clause "else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" else (if_statement "if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" if (parenthesized_expression "(*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0)" ( (binary_expression "*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0" (pointer_expression "*(code **)(*(long *)param_3 + 0x80)" * (cast_expression "(code **)(*(long *)param_3 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_3 + 0x80)" ( (binary_expression "*(long *)param_3 + 0x80" (pointer_expression "*(long *)param_3" * (cast_expression "(long *)param_3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) )) (compound_statement "{\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }" { (expression_statement "FUN_0022bf40(local_78,param_3 + 0xf8,param_4);" (call_expression "FUN_0022bf40(local_78,param_3 + 0xf8,param_4)" identifier (argument_list "(local_78,param_3 + 0xf8,param_4)" ( identifier , (binary_expression "param_3 + 0xf8" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" else (compound_statement "{\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" { (expression_statement "(**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);" (call_expression "(**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4)" (parenthesized_expression "(**(code **)(*(long *)param_3 + 0x80))" ( (pointer_expression "**(code **)(*(long *)param_3 + 0x80)" * (pointer_expression "*(code **)(*(long *)param_3 + 0x80)" * (cast_expression "(code **)(*(long *)param_3 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_3 + 0x80)" ( (binary_expression "*(long *)param_3 + 0x80" (pointer_expression "*(long *)param_3" * (cast_expression "(long *)param_3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(local_78,param_3,param_4)" ( identifier , identifier , identifier ))) ;) }))))) (expression_statement "pbVar20 = local_78[0];" (assignment_expression "pbVar20 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }" if (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }" { (labeled_statement "LAB_003095e3:\n    bVar27 = false;" statement_identifier : (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;)) (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" identifier = number_literal) ;) (expression_statement "local_140 = 0;" (assignment_expression "local_140 = 0" identifier = number_literal) ;) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (expression_statement "local_150 = 0;" (assignment_expression "local_150 = 0" identifier = number_literal) ;) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }" else (compound_statement "{\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }" { (expression_statement "pbVar15 = (byte *)0xffffffffffffffff;" (assignment_expression "pbVar15 = (byte *)0xffffffffffffffff" identifier = (cast_expression "(byte *)0xffffffffffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = local_48;" (assignment_expression "local_58 = local_48" identifier = identifier) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = local_78[0] == (byte *)0x0;" (assignment_expression "uVar28 = local_78[0] == (byte *)0x0" identifier = (binary_expression "local_78[0] == (byte *)0x0" (subscript_expression "local_78[0]" identifier [ number_literal ]) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }" if (parenthesized_expression "(!(bool)uVar28)" ( (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }" { (expression_statement "sVar12 = strlen((char *)local_78[0]);" (assignment_expression "sVar12 = strlen((char *)local_78[0])" identifier = (call_expression "strlen((char *)local_78[0])" identifier (argument_list "((char *)local_78[0])" ( (cast_expression "(char *)local_78[0]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_78[0]" identifier [ number_literal ])) )))) ;) (expression_statement "pbVar15 = pbVar20 + sVar12;" (assignment_expression "pbVar15 = pbVar20 + sVar12" identifier = (binary_expression "pbVar20 + sVar12" identifier + identifier)) ;) })) (expression_statement "FUN_001a61c0(&local_58,pbVar20,pbVar15);" (call_expression "FUN_001a61c0(&local_58,pbVar20,pbVar15)" identifier (argument_list "(&local_58,pbVar20,pbVar15)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "lVar18 = 5;" (assignment_expression "lVar18 = 5" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".text";" (assignment_expression "pbVar20 = (byte *)".text"" identifier = (cast_expression "(byte *)".text"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".text"" " string_content "))) ;) (expression_statement "pbVar15 = local_58;" (assignment_expression "pbVar15 = local_58" identifier = identifier) ;) (do_statement "do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);" do (compound_statement "{\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = *pbVar20 < *pbVar15;" (assignment_expression "uVar24 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "uVar28 = *pbVar20 == *pbVar15;" (assignment_expression "uVar28 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar28)" ( (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;) (expression_statement "bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;" (assignment_expression "bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" identifier = (binary_expression "(!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar28)" ( (binary_expression "!(bool)uVar24 && !(bool)uVar28" (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }" { (expression_statement "lVar18 = 0xf;" (assignment_expression "lVar18 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".gnu.linkonce.t";" (assignment_expression "pbVar20 = (byte *)".gnu.linkonce.t"" identifier = (cast_expression "(byte *)".gnu.linkonce.t"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.t"" " string_content "))) ;) (expression_statement "pbVar15 = local_58;" (assignment_expression "pbVar15 = local_58" identifier = identifier) ;) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);" do (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = *pbVar20 < *pbVar15;" (assignment_expression "bVar27 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }" if (parenthesized_expression "((!bVar27 && !bVar25) != bVar27)" ( (binary_expression "(!bVar27 && !bVar25) != bVar27" (parenthesized_expression "(!bVar27 && !bVar25)" ( (binary_expression "!bVar27 && !bVar25" (unary_expression "!bVar27" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }" { (if_statement "if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n          FUN_0049e330(local_58);\n        }" { (expression_statement "FUN_0049e330(local_58);" (call_expression "FUN_0049e330(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (goto_statement "goto LAB_003095e3;" goto statement_identifier ;) })) })) (if_statement "if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n      FUN_0049e330(local_58);\n    }" { (expression_statement "FUN_0049e330(local_58);" (call_expression "FUN_0049e330(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (expression_statement "local_50 = CONCAT44(local_50._4_4_,param_4);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,param_4)" identifier = (call_expression "CONCAT44(local_50._4_4_,param_4)" identifier (argument_list "(local_50._4_4_,param_4)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" identifier = identifier) ;) (expression_statement "local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);" (assignment_expression "local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" identifier = (call_expression "FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" identifier (argument_list "(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" ( (binary_expression "*(long *)(param_1 + 0x298) + 0xa8" (pointer_expression "*(long *)(param_1 + 0x298)" * (cast_expression "(long *)(param_1 + 0x298)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) + number_literal) , (pointer_expression "&local_58" & identifier) )))) ;) (expression_statement "local_150 = local_158 + 0x18;" (assignment_expression "local_150 = local_158 + 0x18" identifier = (binary_expression "local_158 + 0x18" identifier + number_literal)) ;) (expression_statement "local_140 = local_158 + 0x48;" (assignment_expression "local_140 = local_158 + 0x48" identifier = (binary_expression "local_158 + 0x48" identifier + number_literal)) ;) (expression_statement "local_160 = local_158 + 0x30;" (assignment_expression "local_160 = local_158 + 0x30" identifier = (binary_expression "local_158 + 0x30" identifier + number_literal)) ;) (expression_statement "local_168 = local_158 + 0x60;" (assignment_expression "local_168 = local_158 + 0x60" identifier = (binary_expression "local_158 + 0x60" identifier + number_literal)) ;) (expression_statement "bVar27 = true;" (assignment_expression "bVar27 = true" identifier = true) ;) }))) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0'))" ( (binary_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')" (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')" ( (comma_expression "cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0'" (assignment_expression "cVar8 = (**(code **)(*param_2 + 0x90))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x90))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x90))" ( (pointer_expression "**(code **)(*param_2 + 0x90)" * (pointer_expression "*(code **)(*param_2 + 0x90)" * (cast_expression "(code **)(*param_2 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x90)" ( (binary_expression "*param_2 + 0x90" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) , (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "pcVar6 = *(code **)(*param_2 + 0x10);" (assignment_expression "pcVar6 = *(code **)(*param_2 + 0x10)" identifier = (pointer_expression "*(code **)(*param_2 + 0x10)" * (cast_expression "(code **)(*param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar6 != FUN_001a5310) {\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" if (parenthesized_expression "(pcVar6 != FUN_001a5310)" ( (binary_expression "pcVar6 != FUN_001a5310" identifier != identifier) )) (compound_statement "{\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" { comment (expression_statement "local_12d = (*pcVar6)(param_2,local_78[0]);" (assignment_expression "local_12d = (*pcVar6)(param_2,local_78[0])" identifier = (call_expression "(*pcVar6)(param_2,local_78[0])" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00309642;" goto statement_identifier ;) })) (expression_statement "pcVar6 = *(code **)(*param_2 + 0x98);" (assignment_expression "pcVar6 = *(code **)(*param_2 + 0x98)" identifier = (pointer_expression "*(code **)(*param_2 + 0x98)" * (cast_expression "(code **)(*param_2 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x98)" ( (binary_expression "*param_2 + 0x98" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (expression_statement "bVar25 = pcVar6 < FUN_001a53d0;" (assignment_expression "bVar25 = pcVar6 < FUN_001a53d0" identifier = (binary_expression "pcVar6 < FUN_001a53d0" identifier < identifier)) ;) (expression_statement "bVar29 = pcVar6 == FUN_001a53d0;" (assignment_expression "bVar29 = pcVar6 == FUN_001a53d0" identifier = (binary_expression "pcVar6 == FUN_001a53d0" identifier == identifier)) ;) (if_statement "if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" if (parenthesized_expression "(!bVar29)" ( (unary_expression "!bVar29" ! identifier) )) (compound_statement "{\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" { (expression_statement "local_12d = (*pcVar6)(param_2,local_78[0]);" (assignment_expression "local_12d = (*pcVar6)(param_2,local_78[0])" identifier = (call_expression "(*pcVar6)(param_2,local_78[0])" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00309642;" goto statement_identifier ;) })) (expression_statement "lVar18 = 0xc;" (assignment_expression "lVar18 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".rodata._ZTV";" (assignment_expression "pbVar20 = (byte *)".rodata._ZTV"" identifier = (cast_expression "(byte *)".rodata._ZTV"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rodata._ZTV"" " string_content "))) ;) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);" do (compound_statement "{\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar20 < *pbVar15;" (assignment_expression "bVar25 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar29 = *pbVar20 == *pbVar15;" (assignment_expression "bVar29 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar25 = (!bVar25 && !bVar29) == bVar25;" (assignment_expression "bVar25 = (!bVar25 && !bVar29) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar29) == bVar25" (parenthesized_expression "(!bVar25 && !bVar29)" ( (binary_expression "!bVar25 && !bVar29" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }" { (expression_statement "lVar18 = 0x11;" (assignment_expression "lVar18 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".data.rel.ro._ZTV";" (assignment_expression "pbVar20 = (byte *)".data.rel.ro._ZTV"" identifier = (cast_expression "(byte *)".data.rel.ro._ZTV"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".data.rel.ro._ZTV"" " string_content "))) ;) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);" do (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar20 < *pbVar15;" (assignment_expression "bVar26 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;) (expression_statement "bVar25 = (!bVar26 && !bVar25) == bVar26;" (assignment_expression "bVar25 = (!bVar26 && !bVar25) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar25) == bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" ( (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }" { (expression_statement "lVar18 = 0xc;" (assignment_expression "lVar18 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".rodata._ZTC";" (assignment_expression "pbVar20 = (byte *)".rodata._ZTC"" identifier = (cast_expression "(byte *)".rodata._ZTC"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rodata._ZTC"" " string_content "))) ;) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);" do (compound_statement "{\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar20 < *pbVar15;" (assignment_expression "bVar29 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar25 = (!bVar29 && !bVar25) == bVar29;" (assignment_expression "bVar25 = (!bVar29 && !bVar25) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar25) == bVar29" (parenthesized_expression "(!bVar29 && !bVar25)" ( (binary_expression "!bVar29 && !bVar25" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }" { (expression_statement "lVar18 = 0x11;" (assignment_expression "lVar18 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".data.rel.ro._ZTC";" (assignment_expression "pbVar20 = (byte *)".data.rel.ro._ZTC"" identifier = (cast_expression "(byte *)".data.rel.ro._ZTC"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".data.rel.ro._ZTC"" " string_content "))) ;) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);" do (compound_statement "{\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar20 < *pbVar15;" (assignment_expression "bVar26 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;) (expression_statement "bVar25 = (!bVar26 && !bVar25) == bVar26;" (assignment_expression "bVar25 = (!bVar26 && !bVar25) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar25) == bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" ( (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }" { (expression_statement "lVar18 = 9;" (assignment_expression "lVar18 = 9" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".eh_frame";" (assignment_expression "pbVar20 = (byte *)".eh_frame"" identifier = (cast_expression "(byte *)".eh_frame"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".eh_frame"" " string_content "))) ;) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);" do (compound_statement "{\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar20 < *pbVar15;" (assignment_expression "bVar29 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "local_12d = (!bVar29 && !bVar25) != bVar29;" (assignment_expression "local_12d = (!bVar29 && !bVar25) != bVar29" identifier = (binary_expression "(!bVar29 && !bVar25) != bVar29" (parenthesized_expression "(!bVar29 && !bVar25)" ( (binary_expression "!bVar29 && !bVar25" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00309642;" goto statement_identifier ;) })) })) })) })) })) (expression_statement "local_12d = '\0';" (assignment_expression "local_12d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }" statement_identifier : (if_statement "if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }" if (parenthesized_expression "(param_6 != 0)" ( (binary_expression "param_6 != 0" identifier != number_literal) )) (compound_statement "{\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }" { (expression_statement "local_138 = (byte *)0x0;" (assignment_expression "local_138 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "local_108 = param_5;" (assignment_expression "local_108 = param_5" identifier = identifier) ;) (do_statement "do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);" do (compound_statement "{\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    }" { (expression_statement "uVar4 = local_108[2];" (assignment_expression "uVar4 = local_108[2]" identifier = (subscript_expression "local_108[2]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = local_108[1] >> 8;" (assignment_expression "uVar22 = local_108[1] >> 8" identifier = (binary_expression "local_108[1] >> 8" (subscript_expression "local_108[1]" identifier [ number_literal ]) >> number_literal)) ;) (if_statement "if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" if (parenthesized_expression "(uVar22 < param_7)" ( (binary_expression "uVar22 < param_7" identifier < identifier) )) (compound_statement "{\n        if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" { comment (expression_statement "FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");" (call_expression "FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs")" identifier (argument_list "("../../gold/gc.h",0xea,"gc_process_relocs")" ( (string_literal ""../../gold/gc.h"" " string_content ") , number_literal , (string_literal ""gc_process_relocs"" " string_content ") ))) ;) })) (expression_statement "lVar18 = (ulong)(uVar22 << 4) + param_8;" (assignment_expression "lVar18 = (ulong)(uVar22 << 4) + param_8" identifier = (binary_expression "(ulong)(uVar22 << 4) + param_8" (call_expression "(ulong)(uVar22 << 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar22 << 4)" ( (binary_expression "uVar22 << 4" identifier << number_literal) ))) + identifier)) ;) (expression_statement "uVar3 = *(ushort *)(lVar18 + 0xe);" (assignment_expression "uVar3 = *(ushort *)(lVar18 + 0xe)" identifier = (pointer_expression "*(ushort *)(lVar18 + 0xe)" * (cast_expression "(ushort *)(lVar18 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xe)" ( (binary_expression "lVar18 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = (uint)uVar3;" (assignment_expression "uVar9 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }" if (parenthesized_expression "(uVar3 < 0xff00)" ( (binary_expression "uVar3 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }" { (labeled_statement "LAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);" statement_identifier : (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(lVar18 + 4)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(lVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 4)" ( (binary_expression "lVar18 + 4" identifier + number_literal) ))))) ;)) (expression_statement "local_124 = uVar4 + *(uint *)(lVar18 + 4);" (assignment_expression "local_124 = uVar4 + *(uint *)(lVar18 + 4)" identifier = (binary_expression "uVar4 + *(uint *)(lVar18 + 4)" identifier + (pointer_expression "*(uint *)(lVar18 + 4)" * (cast_expression "(uint *)(lVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 4)" ( (binary_expression "lVar18 + 4" identifier + number_literal) )))))) ;) (if_statement "if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }" if (parenthesized_expression "(bVar27)" ( identifier )) (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }" { (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar9);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar9)" identifier = (call_expression "CONCAT44(local_50._4_4_,uVar9)" identifier (argument_list "(local_50._4_4_,uVar9)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" identifier = identifier) ;) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar25 = true;" (assignment_expression "bVar25 = true" identifier = true) ;) (if_statement "if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;" if (parenthesized_expression "((*(byte *)(lVar18 + 0xc) & 0xf) == 3)" ( (binary_expression "(*(byte *)(lVar18 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(lVar18 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar18 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar18 + 0xc)" * (cast_expression "(byte *)(lVar18 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xc)" ( (binary_expression "lVar18 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0030982d;" goto statement_identifier ;)) (labeled_statement "LAB_003096e8:\n            local_58 = (byte *)0x0;" statement_identifier : (expression_statement "local_58 = (byte *)0x0;" (assignment_expression "local_58 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "FUN_001a7300(local_150,&local_58);" (call_expression "FUN_001a7300(local_150,&local_58)" identifier (argument_list "(local_150,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (goto_statement "goto LAB_00309703;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }" else (compound_statement "{\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }" { (if_statement "if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }" if (parenthesized_expression "(uVar3 == 0xffff)" ( (binary_expression "uVar3 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }" { (expression_statement "lVar13 = *(long *)(param_3 + 0x40);" (assignment_expression "lVar13 = *(long *)(param_3 + 0x40)" identifier = (pointer_expression "*(long *)(param_3 + 0x40)" * (cast_expression "(long *)(param_3 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x40)" ( (binary_expression "param_3 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }" { (expression_statement "lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);" (assignment_expression "lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3)" identifier = (call_expression "(**(code **)(*(long *)param_3 + 0xd8))(param_3)" (parenthesized_expression "(**(code **)(*(long *)param_3 + 0xd8))" ( (pointer_expression "**(code **)(*(long *)param_3 + 0xd8)" * (pointer_expression "*(code **)(*(long *)param_3 + 0xd8)" * (cast_expression "(code **)(*(long *)param_3 + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_3 + 0xd8)" ( (binary_expression "*(long *)param_3 + 0xd8" (pointer_expression "*(long *)param_3" * (cast_expression "(long *)param_3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "*(long *)(param_3 + 0x40) = lVar13;" (assignment_expression "*(long *)(param_3 + 0x40) = lVar13" (pointer_expression "*(long *)(param_3 + 0x40)" * (cast_expression "(long *)(param_3 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x40)" ( (binary_expression "param_3 + 0x40" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar9 = FUN_00392c60(lVar13,param_3,uVar22);" (assignment_expression "uVar9 = FUN_00392c60(lVar13,param_3,uVar22)" identifier = (call_expression "FUN_00392c60(lVar13,param_3,uVar22)" identifier (argument_list "(lVar13,param_3,uVar22)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_003097e5;" goto statement_identifier ;) })) (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(lVar18 + 4)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(lVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 4)" ( (binary_expression "lVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_124 = uVar4 + *(uint *)(lVar18 + 4);" (assignment_expression "local_124 = uVar4 + *(uint *)(lVar18 + 4)" identifier = (binary_expression "uVar4 + *(uint *)(lVar18 + 4)" identifier + (pointer_expression "*(uint *)(lVar18 + 4)" * (cast_expression "(uint *)(lVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 4)" ( (binary_expression "lVar18 + 4" identifier + number_literal) )))))) ;) (if_statement "if (!bVar27) goto LAB_00309772;" if (parenthesized_expression "(!bVar27)" ( (unary_expression "!bVar27" ! identifier) )) (goto_statement "goto LAB_00309772;" goto statement_identifier ;)) (expression_statement "local_58 = (byte *)0x0;" (assignment_expression "local_58 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = local_50 & 0xffffffff00000000;" (assignment_expression "local_50 = local_50 & 0xffffffff00000000" identifier = (binary_expression "local_50 & 0xffffffff00000000" identifier & number_literal)) ;) comment (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (if_statement "if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;" if (parenthesized_expression "((*(byte *)(lVar18 + 0xc) & 0xf) != 3)" ( (binary_expression "(*(byte *)(lVar18 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(lVar18 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar18 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar18 + 0xc)" * (cast_expression "(byte *)(lVar18 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xc)" ( (binary_expression "lVar18 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003096e8;" goto statement_identifier ;)) (labeled_statement "LAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;" statement_identifier : (expression_statement "local_58 = (byte *)0xffffffffffffffff;" (assignment_expression "local_58 = (byte *)0xffffffffffffffff" identifier = (cast_expression "(byte *)0xffffffffffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "FUN_001a7300(local_150,&local_58);" (call_expression "FUN_001a7300(local_150,&local_58)" identifier (argument_list "(local_150,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (labeled_statement "LAB_00309703:\n          local_58 = pbVar20;" statement_identifier : (expression_statement "local_58 = pbVar20;" (assignment_expression "local_58 = pbVar20" identifier = identifier) ;)) (expression_statement "local_50 = (long)(int)uVar4;" (assignment_expression "local_50 = (long)(int)uVar4" identifier = (cast_expression "(long)(int)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_001a74a0(local_160,&local_58);" (call_expression "FUN_001a74a0(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "local_58 = (byte *)(ulong)*local_108;" (assignment_expression "local_58 = (byte *)(ulong)*local_108" identifier = (binary_expression "(byte *)(ulong)*local_108" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * identifier)) ;) (expression_statement "puVar5 = *(undefined8 **)(local_140 + 8);" (assignment_expression "puVar5 = *(undefined8 **)(local_140 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_140 + 8)" * (cast_expression "(undefined8 **)(local_140 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 8)" ( (binary_expression "local_140 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" if (parenthesized_expression "(puVar5 == *(undefined8 **)(local_140 + 0x10))" ( (binary_expression "puVar5 == *(undefined8 **)(local_140 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_140 + 0x10)" * (cast_expression "(undefined8 **)(local_140 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 0x10)" ( (binary_expression "local_140 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }" { (expression_statement "FUN_001a6070(local_140,puVar5,&local_58);" (call_expression "FUN_001a6070(local_140,puVar5,&local_58)" identifier (argument_list "(local_140,puVar5,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" else (compound_statement "{\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" { (expression_statement "*puVar5 = local_58;" (assignment_expression "*puVar5 = local_58" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_140 + 8) = puVar5 + 1;" (assignment_expression "*(undefined8 **)(local_140 + 8) = puVar5 + 1" (pointer_expression "*(undefined8 **)(local_140 + 8)" * (cast_expression "(undefined8 **)(local_140 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 8)" ( (binary_expression "local_140 + 8" identifier + number_literal) )))) = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);" (assignment_expression "local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000)" identifier = (cast_expression "(byte *)((ulong)local_88 & 0xffffffff00000000)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_88 & 0xffffffff00000000)" ( (binary_expression "(ulong)local_88 & 0xffffffff00000000" (cast_expression "(ulong)local_88" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "FUN_001a7630(local_168,&local_88);" (call_expression "FUN_001a7630(local_168,&local_88)" identifier (argument_list "(local_168,&local_88)" ( identifier , (pointer_expression "&local_88" & identifier) ))) ;) (if_statement "if (!bVar25) goto LAB_00309772;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_00309772;" goto statement_identifier ;)) }))) (expression_statement "local_110 = param_3;" (assignment_expression "local_110 = param_3" identifier = identifier) ;) (if_statement "if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1))" ( (binary_expression "(local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)" (parenthesized_expression "(local_12d == '\0')" ( (binary_expression "local_12d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((*(byte *)(lVar18 + 0xc) & 0xf) == 1)" ( (binary_expression "(*(byte *)(lVar18 + 0xc) & 0xf) == 1" (parenthesized_expression "(*(byte *)(lVar18 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar18 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar18 + 0xc)" * (cast_expression "(byte *)(lVar18 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xc)" ( (binary_expression "lVar18 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }" { (labeled_statement "LAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;" statement_identifier : (if_statement "if (param_4 != uVar9) goto LAB_003098ec;" if (parenthesized_expression "(param_4 != uVar9)" ( (binary_expression "param_4 != uVar9" identifier != identifier) )) (goto_statement "goto LAB_003098ec;" goto statement_identifier ;))) }) (else_clause "else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" { (expression_statement "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);" (assignment_expression "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }" if (parenthesized_expression "(*(char *)(lVar13 + 0x2a61) != '\0')" ( (binary_expression "*(char *)(lVar13 + 0x2a61) != '\0'" (pointer_expression "*(char *)(lVar13 + 0x2a61)" * (cast_expression "(char *)(lVar13 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x2a61)" ( (binary_expression "lVar13 + 0x2a61" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }" { (expression_statement "local_a0 = (uint)*(ushort *)(lVar18 + 0xe);" (assignment_expression "local_a0 = (uint)*(ushort *)(lVar18 + 0xe)" identifier = (binary_expression "(uint)*(ushort *)(lVar18 + 0xe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(lVar18 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xe)" ( (binary_expression "lVar18 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "local_e8 = *(long *)(param_1 + 0x298) + 0x68;" (assignment_expression "local_e8 = *(long *)(param_1 + 0x298) + 0x68" identifier = (binary_expression "*(long *)(param_1 + 0x298) + 0x68" (pointer_expression "*(long *)(param_1 + 0x298)" * (cast_expression "(long *)(param_1 + 0x298)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_a8 = param_3;" (assignment_expression "local_a8 = param_3" identifier = identifier) ;) (expression_statement "FUN_001a7850(local_e8,&local_a8,&local_e8,1);" (call_expression "FUN_001a7850(local_e8,&local_a8,&local_e8,1)" identifier (argument_list "(local_e8,&local_a8,&local_e8,1)" ( identifier , (pointer_expression "&local_a8" & identifier) , (pointer_expression "&local_e8" & identifier) , number_literal ))) ;) (goto_statement "goto LAB_003098d8;" goto statement_identifier ;) })) (if_statement "if (param_4 == uVar9) goto LAB_00309772;" if (parenthesized_expression "(param_4 == uVar9)" ( (binary_expression "param_4 == uVar9" identifier == identifier) )) (goto_statement "goto LAB_00309772;" goto statement_identifier ;)) (labeled_statement "LAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" statement_identifier : (if_statement "if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(lVar13 + 0x2809) != '\0')" ( (binary_expression "*(char *)(lVar13 + 0x2809) != '\0'" (pointer_expression "*(char *)(lVar13 + 0x2809)" * (cast_expression "(char *)(lVar13 + 0x2809)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x2809)" ( (binary_expression "lVar13 + 0x2809" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" { (expression_statement "lVar13 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar13 = *(long *)(param_1 + 0x290)" identifier = (pointer_expression "*(long *)(param_1 + 0x290)" * (cast_expression "(long *)(param_1 + 0x290)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x290)" ( (binary_expression "param_1 + 0x290" identifier + number_literal) ))))) ;) (expression_statement "lVar18 = lVar13 + 0x28;" (assignment_expression "lVar18 = lVar13 + 0x28" identifier = (binary_expression "lVar13 + 0x28" identifier + number_literal)) ;) (expression_statement "local_88 = local_110;" (assignment_expression "local_88 = local_110" identifier = identifier) ;) (expression_statement "lVar10 = lVar18;" (assignment_expression "lVar10 = lVar18" identifier = identifier) ;) (expression_statement "lVar11 = lVar18;" (assignment_expression "lVar11 = lVar18" identifier = identifier) ;) (expression_statement "lVar14 = *(long *)(lVar13 + 0x30);" (assignment_expression "lVar14 = *(long *)(lVar13 + 0x30)" identifier = (pointer_expression "*(long *)(lVar13 + 0x30)" * (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_98 = param_3;" (assignment_expression "local_98 = param_3" identifier = identifier) ;) (expression_statement "local_90 = param_4;" (assignment_expression "local_90 = param_4" identifier = identifier) ;) (expression_statement "local_80 = uVar9;" (assignment_expression "local_80 = uVar9" identifier = identifier) ;) (if_statement "if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }" if (parenthesized_expression "(*(long *)(lVar13 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar13 + 0x30) == 0" (pointer_expression "*(long *)(lVar13 + 0x30)" * (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }" { (labeled_statement "LAB_003099a8:\n              local_c8 = &local_98;" statement_identifier : (expression_statement "local_c8 = &local_98;" (assignment_expression "local_c8 = &local_98" identifier = (pointer_expression "&local_98" & identifier)) ;)) (expression_statement "lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);" (assignment_expression "lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea)" identifier = (call_expression "FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea)" identifier (argument_list "(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_00567620" & identifier) , (pointer_expression "&local_c8" & identifier) , (pointer_expression "&local_ea" & identifier) )))) ;) }) (else_clause "else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }" else (compound_statement "{\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }" { (do_statement "do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);" do (compound_statement "{\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              }" { (while_statement "while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }" while (parenthesized_expression "((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))))" ( (parenthesized_expression "(lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))" ( (comma_expression "lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))" (assignment_expression "lVar11 = lVar14" identifier = identifier) , (binary_expression "*(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))" (binary_expression "*(byte **)(lVar11 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar11 + 0x20)" * (cast_expression "(byte **)(lVar11 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) )))) < identifier) || (parenthesized_expression "((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))" ( (binary_expression "param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar11 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar11 + 0x20)" * (cast_expression "(byte **)(lVar11 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(lVar11 + 0x28) < param_4)" ( (binary_expression "*(uint *)(lVar11 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar11 + 0x28)" * (cast_expression "(uint *)(lVar11 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) )))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }" { (expression_statement "plVar1 = (long *)(lVar11 + 0x18);" (assignment_expression "plVar1 = (long *)(lVar11 + 0x18)" identifier = (cast_expression "(long *)(lVar11 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x18)" ( (binary_expression "lVar11 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar11 = lVar10;" (assignment_expression "lVar11 = lVar10" identifier = identifier) ;) (expression_statement "lVar14 = *plVar1;" (assignment_expression "lVar14 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (if_statement "if (*plVar1 == 0) goto LAB_00309982;" if (parenthesized_expression "(*plVar1 == 0)" ( (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_00309982;" goto statement_identifier ;)) })) (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" identifier = identifier) ;) (expression_statement "lVar14 = *(long *)(lVar11 + 0x10);" (assignment_expression "lVar14 = *(long *)(lVar11 + 0x10)" identifier = (pointer_expression "*(long *)(lVar11 + 0x10)" * (cast_expression "(long *)(lVar11 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x10)" ( (binary_expression "lVar11 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(lVar11 + 0x10) != 0)" ( (binary_expression "*(long *)(lVar11 + 0x10) != 0" (pointer_expression "*(long *)(lVar11 + 0x10)" * (cast_expression "(long *)(lVar11 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x10)" ( (binary_expression "lVar11 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;" statement_identifier : (if_statement "if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;" if (parenthesized_expression "(((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))" ( (binary_expression "((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28))))" (parenthesized_expression "((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20)))" ( (binary_expression "(lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))" (parenthesized_expression "(lVar11 == lVar18)" ( (binary_expression "lVar11 == lVar18" identifier == identifier) )) || (parenthesized_expression "(param_3 < *(byte **)(lVar11 + 0x20))" ( (binary_expression "param_3 < *(byte **)(lVar11 + 0x20)" identifier < (pointer_expression "*(byte **)(lVar11 + 0x20)" * (cast_expression "(byte **)(lVar11 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28))))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))" ( (binary_expression "param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar11 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar11 + 0x20)" * (cast_expression "(byte **)(lVar11 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(param_4 < *(uint *)(lVar11 + 0x28))" ( (binary_expression "param_4 < *(uint *)(lVar11 + 0x28)" identifier < (pointer_expression "*(uint *)(lVar11 + 0x28)" * (cast_expression "(uint *)(lVar11 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_003099a8;" goto statement_identifier ;))) }))) (expression_statement "local_d0 = lVar11 + 0x30;" (assignment_expression "local_d0 = lVar11 + 0x30" identifier = (binary_expression "lVar11 + 0x30" identifier + number_literal)) ;) (expression_statement "FUN_001a78f0(local_d0,&local_88,&local_d0,1);" (call_expression "FUN_001a78f0(local_d0,&local_88,&local_d0,1)" identifier (argument_list "(local_d0,&local_88,&local_d0,1)" ( identifier , (pointer_expression "&local_88" & identifier) , (pointer_expression "&local_d0" & identifier) , number_literal ))) ;) (expression_statement "plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);" (assignment_expression "plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0067cb08 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0067cb08 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x18)" ( (binary_expression "PTR_DAT_0067cb08 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar1 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }" if (parenthesized_expression "(plVar1 == (long *)0x0)" ( (binary_expression "plVar1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }" { comment (expression_statement "FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x73,"sized_target")" identifier (argument_list "("../../gold/parameters.h",0x73,"sized_target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""sized_target"" " string_content ") ))) ;) })) (if_statement "if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }" if (parenthesized_expression "(*(code **)(*plVar1 + 0x208) != FUN_001a4ba0)" ( (binary_expression "*(code **)(*plVar1 + 0x208) != FUN_001a4ba0" (pointer_expression "*(code **)(*plVar1 + 0x208)" * (cast_expression "(code **)(*plVar1 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar1 + 0x208)" ( (binary_expression "*plVar1 + 0x208" (pointer_expression "*plVar1" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }" { (expression_statement "(**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);" (call_expression "(**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124)" (parenthesized_expression "(**(code **)(*plVar1 + 0x208))" ( (pointer_expression "**(code **)(*plVar1 + 0x208)" * (pointer_expression "*(code **)(*plVar1 + 0x208)" * (cast_expression "(code **)(*plVar1 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar1 + 0x208)" ( (binary_expression "*plVar1 + 0x208" (pointer_expression "*plVar1" * identifier) + number_literal) ))))) )) (argument_list "(plVar1,param_1,param_3,param_4,local_110,uVar9,local_124)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }" if (parenthesized_expression "(local_138 != (byte *)0x0)" ( (binary_expression "local_138 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }" { (expression_statement "lVar18 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar18 = *(long *)(param_1 + 0x290)" identifier = (pointer_expression "*(long *)(param_1 + 0x290)" * (cast_expression "(long *)(param_1 + 0x290)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x290)" ( (binary_expression "param_1 + 0x290" identifier + number_literal) ))))) ;) (expression_statement "local_58 = local_48;" (assignment_expression "local_58 = local_48" identifier = identifier) ;) (expression_statement "sVar12 = strlen((char *)local_138);" (assignment_expression "sVar12 = strlen((char *)local_138)" identifier = (call_expression "strlen((char *)local_138)" identifier (argument_list "((char *)local_138)" ( (cast_expression "(char *)local_138" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "FUN_001a61c0(&local_58,local_138,local_138 + sVar12);" (call_expression "FUN_001a61c0(&local_58,local_138,local_138 + sVar12)" identifier (argument_list "(&local_58,local_138,local_138 + sVar12)" ( (pointer_expression "&local_58" & identifier) , identifier , (binary_expression "local_138 + sVar12" identifier + identifier) ))) ;) (expression_statement "lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);" (assignment_expression "lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58)" identifier = (call_expression "FUN_001c4d80(lVar18 + 0x88,&local_58)" identifier (argument_list "(lVar18 + 0x88,&local_58)" ( (binary_expression "lVar18 + 0x88" identifier + number_literal) , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (local_58 != local_48) {\n                FUN_0049e330();\n              }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n                FUN_0049e330();\n              }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar13 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar13 = *(long *)(param_1 + 0x290)" identifier = (pointer_expression "*(long *)(param_1 + 0x290)" * (cast_expression "(long *)(param_1 + 0x290)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x290)" ( (binary_expression "param_1 + 0x290" identifier + number_literal) ))))) ;) (if_statement "if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }" if (parenthesized_expression "(lVar18 != lVar13 + 0x90)" ( (binary_expression "lVar18 != lVar13 + 0x90" identifier != (binary_expression "lVar13 + 0x90" identifier + number_literal)) )) (compound_statement "{\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }" { (expression_statement "lVar10 = lVar13 + 0x28;" (assignment_expression "lVar10 = lVar13 + 0x28" identifier = (binary_expression "lVar13 + 0x28" identifier + number_literal)) ;) (expression_statement "local_50 = CONCAT44(local_50._4_4_,param_4);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,param_4)" identifier = (call_expression "CONCAT44(local_50._4_4_,param_4)" identifier (argument_list "(local_50._4_4_,param_4)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "lVar11 = lVar10;" (assignment_expression "lVar11 = lVar10" identifier = identifier) ;) (expression_statement "lVar14 = lVar10;" (assignment_expression "lVar14 = lVar10" identifier = identifier) ;) (expression_statement "lVar7 = *(long *)(lVar13 + 0x30);" (assignment_expression "lVar7 = *(long *)(lVar13 + 0x30)" identifier = (pointer_expression "*(long *)(lVar13 + 0x30)" * (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }" if (parenthesized_expression "(*(long *)(lVar13 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar13 + 0x30) == 0" (pointer_expression "*(long *)(lVar13 + 0x30)" * (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }" { (labeled_statement "LAB_00309ea0:\n                  local_c0 = &local_58;" statement_identifier : (expression_statement "local_c0 = &local_58;" (assignment_expression "local_c0 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;)) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" identifier = identifier) ;) (expression_statement "lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);" (assignment_expression "lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9)" identifier = (call_expression "FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9)" identifier (argument_list "(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_00567620" & identifier) , (pointer_expression "&local_c0" & identifier) , (pointer_expression "&local_e9" & identifier) )))) ;) }) (else_clause "else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }" else (compound_statement "{\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }" { (do_statement "do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);" do (compound_statement "{\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  }" { (while_statement "while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }" while (parenthesized_expression "((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))))" ( (parenthesized_expression "(lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))" ( (comma_expression "lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))" (assignment_expression "lVar14 = lVar7" identifier = identifier) , (binary_expression "*(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))" (binary_expression "*(byte **)(lVar14 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar14 + 0x20)" * (cast_expression "(byte **)(lVar14 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) )))) < identifier) || (parenthesized_expression "((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))" ( (binary_expression "param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar14 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar14 + 0x20)" * (cast_expression "(byte **)(lVar14 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(lVar14 + 0x28) < param_4)" ( (binary_expression "*(uint *)(lVar14 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar14 + 0x28)" * (cast_expression "(uint *)(lVar14 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x28)" ( (binary_expression "lVar14 + 0x28" identifier + number_literal) )))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }" { (expression_statement "plVar1 = (long *)(lVar14 + 0x18);" (assignment_expression "plVar1 = (long *)(lVar14 + 0x18)" identifier = (cast_expression "(long *)(lVar14 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x18)" ( (binary_expression "lVar14 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar14 = lVar11;" (assignment_expression "lVar14 = lVar11" identifier = identifier) ;) (expression_statement "lVar7 = *plVar1;" (assignment_expression "lVar7 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (if_statement "if (*plVar1 == 0) goto LAB_00309b02;" if (parenthesized_expression "(*plVar1 == 0)" ( (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_00309b02;" goto statement_identifier ;)) })) (expression_statement "lVar11 = lVar14;" (assignment_expression "lVar11 = lVar14" identifier = identifier) ;) (expression_statement "lVar7 = *(long *)(lVar14 + 0x10);" (assignment_expression "lVar7 = *(long *)(lVar14 + 0x10)" identifier = (pointer_expression "*(long *)(lVar14 + 0x10)" * (cast_expression "(long *)(lVar14 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x10)" ( (binary_expression "lVar14 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(lVar14 + 0x10) != 0)" ( (binary_expression "*(long *)(lVar14 + 0x10) != 0" (pointer_expression "*(long *)(lVar14 + 0x10)" * (cast_expression "(long *)(lVar14 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x10)" ( (binary_expression "lVar14 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;" statement_identifier : (if_statement "if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;" if (parenthesized_expression "(((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28)))))" ( (binary_expression "((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))" (parenthesized_expression "((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20)))" ( (binary_expression "(lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))" (parenthesized_expression "(lVar14 == lVar10)" ( (binary_expression "lVar14 == lVar10" identifier == identifier) )) || (parenthesized_expression "(param_3 < *(byte **)(lVar14 + 0x20))" ( (binary_expression "param_3 < *(byte **)(lVar14 + 0x20)" identifier < (pointer_expression "*(byte **)(lVar14 + 0x20)" * (cast_expression "(byte **)(lVar14 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))" ( (parenthesized_expression "(local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28)))" ( (comma_expression "local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))" (assignment_expression "local_58 = param_3" identifier = identifier) , (binary_expression "param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar14 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar14 + 0x20)" * (cast_expression "(byte **)(lVar14 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(param_4 < *(uint *)(lVar14 + 0x28))" ( (binary_expression "param_4 < *(uint *)(lVar14 + 0x28)" identifier < (pointer_expression "*(uint *)(lVar14 + 0x28)" * (cast_expression "(uint *)(lVar14 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x28)" ( (binary_expression "lVar14 + 0x28" identifier + number_literal) ))))) )))) )) ))) )) (goto_statement "goto LAB_00309ea0;" goto statement_identifier ;))) }))) (for_statement "for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }" for ( (assignment_expression "puVar5 = *(undefined8 **)(lVar18 + 0x50)" identifier = (pointer_expression "*(undefined8 **)(lVar18 + 0x50)" * (cast_expression "(undefined8 **)(lVar18 + 0x50)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar18 + 0x50)" ( (binary_expression "lVar18 + 0x50" identifier + number_literal) ))))) ; (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar5 = (undefined8 *)*puVar5" identifier = (cast_expression "(undefined8 *)*puVar5" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ) (compound_statement "{\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }" { (expression_statement "local_d8 = lVar14 + 0x30;" (assignment_expression "local_d8 = lVar14 + 0x30" identifier = (binary_expression "lVar14 + 0x30" identifier + number_literal)) ;) (expression_statement "FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);" (call_expression "FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1)" identifier (argument_list "(lVar14 + 0x30,puVar5 + 1,&local_d8,1)" ( (binary_expression "lVar14 + 0x30" identifier + number_literal) , (binary_expression "puVar5 + 1" identifier + number_literal) , (pointer_expression "&local_d8" & identifier) , number_literal ))) ;) })) })) })) }))) }))) }) (else_clause "else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" else (compound_statement "{\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" { (if_statement "if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" if (parenthesized_expression "(uVar22 < *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar22 < *(uint *)(param_3 + 0x120)" identifier < (pointer_expression "*(uint *)(param_3 + 0x120)" * (cast_expression "(uint *)(param_3 + 0x120)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x120)" ( (binary_expression "param_3 + 0x120" identifier + number_literal) ))))) )) (compound_statement "{\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" { (expression_statement "local_88 = (byte *)0x0;" (assignment_expression "local_88 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");" statement_identifier : comment (expression_statement "FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");" (call_expression "FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs")" identifier (argument_list "("../../gold/gc.h",0x11c,"gc_process_relocs")" ( (string_literal ""../../gold/gc.h"" " string_content ") , number_literal , (string_literal ""gc_process_relocs"" " string_content ") ))) ;)) })) (expression_statement "uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));" (assignment_expression "uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120))" identifier = (call_expression "(ulong)(uVar22 - *(uint *)(param_3 + 0x120))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar22 - *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar22 - *(uint *)(param_3 + 0x120)" identifier - (pointer_expression "*(uint *)(param_3 + 0x120)" * (cast_expression "(uint *)(param_3 + 0x120)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x120)" ( (binary_expression "param_3 + 0x120" identifier + number_literal) ))))) )))) ;) (if_statement "if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }" if (parenthesized_expression "((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23)" ( (binary_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23" (call_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3)" ( (binary_expression "*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3" (binary_expression "*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130)" (pointer_expression "*(long *)(param_3 + 0x138)" * (cast_expression "(long *)(param_3 + 0x138)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x138)" ( (binary_expression "param_3 + 0x138" identifier + number_literal) )))) - (pointer_expression "*(long *)(param_3 + 0x130)" * (cast_expression "(long *)(param_3 + 0x130)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x130)" ( (binary_expression "param_3 + 0x130" identifier + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }" { comment (expression_statement "FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");" (call_expression "FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol")" identifier (argument_list "("../../gold/object.h",0x8ad,"global_symbol")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""global_symbol"" " string_content ") ))) ;) })) (expression_statement "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);" (assignment_expression "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8)" identifier = (pointer_expression "*(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8)" * (cast_expression "(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_3 + 0x130) + uVar23 * 8)" ( (binary_expression "*(long *)(param_3 + 0x130) + uVar23 * 8" (pointer_expression "*(long *)(param_3 + 0x130)" * (cast_expression "(long *)(param_3 + 0x130)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x130)" ( (binary_expression "param_3 + 0x130" identifier + number_literal) )))) + (binary_expression "uVar23 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (local_88 == (byte *)0x0) goto LAB_00309db8;" if (parenthesized_expression "(local_88 == (byte *)0x0)" ( (binary_expression "local_88 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00309db8;" goto statement_identifier ;)) (if_statement "if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }" if (parenthesized_expression "((local_88[0x3a] & 0x10) != 0)" ( (binary_expression "(local_88[0x3a] & 0x10) != 0" (parenthesized_expression "(local_88[0x3a] & 0x10)" ( (binary_expression "local_88[0x3a] & 0x10" (subscript_expression "local_88[0x3a]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }" { (expression_statement "local_88 = (byte *)FUN_00443570(param_1,local_88);" (assignment_expression "local_88 = (byte *)FUN_00443570(param_1,local_88)" identifier = (cast_expression "(byte *)FUN_00443570(param_1,local_88)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00443570(param_1,local_88)" identifier (argument_list "(param_1,local_88)" ( identifier , identifier ))))) ;) })) (if_statement "if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }" if (parenthesized_expression "((local_88[0x3a] & 7) == 0)" ( (binary_expression "(local_88[0x3a] & 7) == 0" (parenthesized_expression "(local_88[0x3a] & 7)" ( (binary_expression "local_88[0x3a] & 7" (subscript_expression "local_88[0x3a]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_110 = *(byte **)(local_88 + 0x10);" (assignment_expression "local_110 = *(byte **)(local_88 + 0x10)" identifier = (pointer_expression "*(byte **)(local_88 + 0x10)" * (cast_expression "(byte **)(local_88 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_88 + 0x10)" ( (binary_expression "local_88 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_124 = uVar4 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_124 = uVar4 + *(uint *)(local_88 + 0x40)" identifier = (binary_expression "uVar4 + *(uint *)(local_88 + 0x40)" identifier + (pointer_expression "*(uint *)(local_88 + 0x40)" * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) )))))) ;) (if_statement "if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;" if (parenthesized_expression "((local_110[0x3c] & 1) != 0)" ( (binary_expression "(local_110[0x3c] & 1) != 0" (parenthesized_expression "(local_110[0x3c] & 1)" ( (binary_expression "local_110[0x3c] & 1" (subscript_expression "local_110[0x3c]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00309d1e;" goto statement_identifier ;)) (expression_statement "uVar9 = *(uint *)(local_88 + 0x18);" (assignment_expression "uVar9 = *(uint *)(local_88 + 0x18)" identifier = (pointer_expression "*(uint *)(local_88 + 0x18)" * (cast_expression "(uint *)(local_88 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x18)" ( (binary_expression "local_88 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "bVar16 = local_88[0x3b] >> 5 & 1;" (assignment_expression "bVar16 = local_88[0x3b] >> 5 & 1" identifier = (binary_expression "local_88[0x3b] >> 5 & 1" (binary_expression "local_88[0x3b] >> 5" (subscript_expression "local_88[0x3b]" identifier [ number_literal ]) >> number_literal) & number_literal)) ;) (expression_statement "uVar24 = (local_88[0x38] & 0xf) < 2;" (assignment_expression "uVar24 = (local_88[0x38] & 0xf) < 2" identifier = (binary_expression "(local_88[0x38] & 0xf) < 2" (parenthesized_expression "(local_88[0x38] & 0xf)" ( (binary_expression "local_88[0x38] & 0xf" (subscript_expression "local_88[0x38]" identifier [ number_literal ]) & number_literal) )) < number_literal)) ;) (expression_statement "uVar28 = (local_88[0x38] & 0xf) == 2;" (assignment_expression "uVar28 = (local_88[0x38] & 0xf) == 2" identifier = (binary_expression "(local_88[0x38] & 0xf) == 2" (parenthesized_expression "(local_88[0x38] & 0xf)" ( (binary_expression "local_88[0x38] & 0xf" (subscript_expression "local_88[0x38]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ;) (expression_statement "bVar17 = bVar16;" (assignment_expression "bVar17 = bVar16" identifier = identifier) ;) (if_statement "if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }" if (parenthesized_expression "((bool)uVar28)" ( (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = local_12d == '\0';" (assignment_expression "uVar28 = local_12d == '\0'" identifier = (binary_expression "local_12d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }" if (parenthesized_expression "(!(bool)uVar28)" ( (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }" { (expression_statement "uVar28 = bVar16 == 0;" (assignment_expression "uVar28 = bVar16 == 0" identifier = (binary_expression "bVar16 == 0" identifier == number_literal)) ;) (if_statement "if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }" if (parenthesized_expression "((bool)uVar28)" ( (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }" { (labeled_statement "LAB_00309f71:\n                uVar24 = 0;" statement_identifier : (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;)) (expression_statement "local_e0 = *(long *)(param_1 + 0x298) + 0x68;" (assignment_expression "local_e0 = *(long *)(param_1 + 0x298) + 0x68" identifier = (binary_expression "*(long *)(param_1 + 0x298) + 0x68" (pointer_expression "*(long *)(param_1 + 0x298)" * (cast_expression "(long *)(param_1 + 0x298)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_b8 = local_110;" (assignment_expression "local_b8 = local_110" identifier = identifier) ;) (expression_statement "local_b0 = uVar9;" (assignment_expression "local_b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_001a7850(local_e0,&local_b8,&local_e0,1);" (call_expression "FUN_001a7850(local_e0,&local_b8,&local_e0,1)" identifier (argument_list "(local_e0,&local_b8,&local_e0,1)" ( identifier , (pointer_expression "&local_b8" & identifier) , (pointer_expression "&local_e0" & identifier) , number_literal ))) ;) (expression_statement "bVar17 = bVar16;" (assignment_expression "bVar17 = bVar16" identifier = identifier) ;) }) (else_clause "else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }" else (compound_statement "{\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }" { (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }" { comment (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../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 "bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);" (assignment_expression "bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" identifier = (pointer_expression "*(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" * (cast_expression "(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = bVar2 == 0;" (assignment_expression "uVar28 = bVar2 == 0" identifier = (binary_expression "bVar2 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }" if (parenthesized_expression "(!(bool)uVar28)" ( (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = (local_88[0x39] & 3) == 0;" (assignment_expression "uVar28 = (local_88[0x39] & 3) == 0" identifier = (binary_expression "(local_88[0x39] & 3) == 0" (parenthesized_expression "(local_88[0x39] & 3)" ( (binary_expression "local_88[0x39] & 3" (subscript_expression "local_88[0x39]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ;) (expression_statement "bVar17 = bVar2;" (assignment_expression "bVar17 = bVar2" identifier = identifier) ;) (if_statement "if (!(bool)uVar28) goto LAB_00309f71;" if (parenthesized_expression "(!(bool)uVar28)" ( (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00309f71;" goto statement_identifier ;)) })) }))) })) })) }) (else_clause "else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }" else (compound_statement "{\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }" { (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_124 = uVar4 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_124 = uVar4 + *(uint *)(local_88 + 0x40)" identifier = (binary_expression "uVar4 + *(uint *)(local_88 + 0x40)" identifier + (pointer_expression "*(uint *)(local_88 + 0x40)" * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) )))))) ;) (labeled_statement "LAB_00309d1e:\n          local_110 = (byte *)0x0;" statement_identifier : (expression_statement "local_110 = (byte *)0x0;" (assignment_expression "local_110 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = 1;" (assignment_expression "uVar28 = 1" identifier = number_literal) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) }))) (expression_statement "pbVar15 = *(byte **)local_88;" (assignment_expression "pbVar15 = *(byte **)local_88" identifier = (pointer_expression "*(byte **)local_88" * (cast_expression "(byte **)local_88" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "lVar18 = 8;" (assignment_expression "lVar18 = 8" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)"__start_";" (assignment_expression "pbVar19 = (byte *)"__start_"" identifier = (cast_expression "(byte *)"__start_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__start_"" " string_content "))) ;) (expression_statement "pbVar21 = pbVar15;" (assignment_expression "pbVar21 = pbVar15" identifier = identifier) ;) (do_statement "do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);" do (compound_statement "{\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = *pbVar19 < *pbVar21;" (assignment_expression "uVar24 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "uVar28 = *pbVar19 == *pbVar21;" (assignment_expression "uVar28 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar21 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar21 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar28)" ( (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;" (assignment_expression "bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" identifier = (binary_expression "(!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar28)" ( (binary_expression "!(bool)uVar24 && !(bool)uVar28" (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }" if (parenthesized_expression "(bVar29)" ( identifier )) (compound_statement "{\n          pbVar15 = pbVar15 + 8;\n        }" { (expression_statement "pbVar15 = pbVar15 + 8;" (assignment_expression "pbVar15 = pbVar15 + 8" identifier = (binary_expression "pbVar15 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }" else (compound_statement "{\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }" { (expression_statement "lVar18 = 7;" (assignment_expression "lVar18 = 7" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)"__stop_";" (assignment_expression "pbVar19 = (byte *)"__stop_"" identifier = (cast_expression "(byte *)"__stop_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__stop_"" " string_content "))) ;) (expression_statement "pbVar21 = pbVar15;" (assignment_expression "pbVar21 = pbVar15" identifier = identifier) ;) (do_statement "do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);" do (compound_statement "{\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar19 < *pbVar21;" (assignment_expression "bVar25 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar29 = *pbVar19 == *pbVar21;" (assignment_expression "bVar29 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar21 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar21 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (expression_statement "pbVar15 = pbVar15 + 7;" (assignment_expression "pbVar15 = pbVar15 + 7" identifier = (binary_expression "pbVar15 + 7" identifier + number_literal)) ;) (if_statement "if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }" if (parenthesized_expression "((!bVar25 && !bVar29) != bVar25)" ( (binary_expression "(!bVar25 && !bVar29) != bVar25" (parenthesized_expression "(!bVar25 && !bVar29)" ( (binary_expression "!bVar25 && !bVar29" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) != identifier) )) (compound_statement "{\n            pbVar15 = local_138;\n          }" { (expression_statement "pbVar15 = local_138;" (assignment_expression "pbVar15 = local_138" identifier = identifier) ;) })) }))) (expression_statement "local_138 = pbVar15;" (assignment_expression "local_138 = pbVar15" identifier = identifier) ;) (if_statement "if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }" if (parenthesized_expression "(bVar27)" ( identifier )) (compound_statement "{\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }" { (if_statement "if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }" { (expression_statement "local_58 = (byte *)0x0;" (assignment_expression "local_58 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (ulong)local_50._4_4_ << 0x20;" (assignment_expression "local_50 = (ulong)local_50._4_4_ << 0x20" identifier = (binary_expression "(ulong)local_50._4_4_ << 0x20" (cast_expression "(ulong)local_50._4_4_" ( (type_descriptor "ulong" type_identifier) ) (field_expression "local_50._4_4_" identifier . field_identifier)) << number_literal)) ;) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }" else (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }" { (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar9);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar9)" identifier = (call_expression "CONCAT44(local_50._4_4_,uVar9)" identifier (argument_list "(local_50._4_4_,uVar9)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = local_110;" (assignment_expression "local_58 = local_110" identifier = identifier) ;) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) }))) (expression_statement "puVar5 = *(undefined8 **)(local_150 + 8);" (assignment_expression "puVar5 = *(undefined8 **)(local_150 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_150 + 8)" * (cast_expression "(undefined8 **)(local_150 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_150 + 8)" ( (binary_expression "local_150 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }" if (parenthesized_expression "(puVar5 == *(undefined8 **)(local_150 + 0x10))" ( (binary_expression "puVar5 == *(undefined8 **)(local_150 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_150 + 0x10)" * (cast_expression "(undefined8 **)(local_150 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_150 + 0x10)" ( (binary_expression "local_150 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }" { (expression_statement "FUN_001a5d30(local_150,puVar5,&local_88);" (call_expression "FUN_001a5d30(local_150,puVar5,&local_88)" identifier (argument_list "(local_150,puVar5,&local_88)" ( identifier , identifier , (pointer_expression "&local_88" & identifier) ))) ;) }) (else_clause "else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }" else (compound_statement "{\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }" { (expression_statement "*puVar5 = local_88;" (assignment_expression "*puVar5 = local_88" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_150 + 8) = puVar5 + 1;" (assignment_expression "*(undefined8 **)(local_150 + 8) = puVar5 + 1" (pointer_expression "*(undefined8 **)(local_150 + 8)" * (cast_expression "(undefined8 **)(local_150 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_150 + 8)" ( (binary_expression "local_150 + 8" identifier + number_literal) )))) = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_58 = pbVar20;" (assignment_expression "local_58 = pbVar20" identifier = identifier) ;) (expression_statement "local_50 = (long)(int)uVar4;" (assignment_expression "local_50 = (long)(int)uVar4" identifier = (cast_expression "(long)(int)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_001a74a0(local_160,&local_58);" (call_expression "FUN_001a74a0(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "local_58 = (byte *)(ulong)*local_108;" (assignment_expression "local_58 = (byte *)(ulong)*local_108" identifier = (binary_expression "(byte *)(ulong)*local_108" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * identifier)) ;) (expression_statement "puVar5 = *(undefined8 **)(local_140 + 8);" (assignment_expression "puVar5 = *(undefined8 **)(local_140 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_140 + 8)" * (cast_expression "(undefined8 **)(local_140 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 8)" ( (binary_expression "local_140 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" if (parenthesized_expression "(puVar5 == *(undefined8 **)(local_140 + 0x10))" ( (binary_expression "puVar5 == *(undefined8 **)(local_140 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_140 + 0x10)" * (cast_expression "(undefined8 **)(local_140 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 0x10)" ( (binary_expression "local_140 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }" { (expression_statement "FUN_001a6070(local_140,puVar5,&local_58);" (call_expression "FUN_001a6070(local_140,puVar5,&local_58)" identifier (argument_list "(local_140,puVar5,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" else (compound_statement "{\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" { (expression_statement "*puVar5 = local_58;" (assignment_expression "*puVar5 = local_58" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_140 + 8) = puVar5 + 1;" (assignment_expression "*(undefined8 **)(local_140 + 8) = puVar5 + 1" (pointer_expression "*(undefined8 **)(local_140 + 8)" * (cast_expression "(undefined8 **)(local_140 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 8)" ( (binary_expression "local_140 + 8" identifier + number_literal) )))) = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);" (assignment_expression "local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000)" identifier = (cast_expression "(byte *)((ulong)local_98 & 0xffffffff00000000)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_98 & 0xffffffff00000000)" ( (binary_expression "(ulong)local_98 & 0xffffffff00000000" (cast_expression "(ulong)local_98" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "FUN_001a7630(local_168,&local_98);" (call_expression "FUN_001a7630(local_168,&local_98)" identifier (argument_list "(local_168,&local_98)" ( identifier , (pointer_expression "&local_98" & identifier) ))) ;) })) (if_statement "if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }" if (parenthesized_expression "(bVar17 != 0)" ( (binary_expression "bVar17 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }" { (labeled_statement "LAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);" statement_identifier : (expression_statement "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);" (assignment_expression "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) ))))) ;)) (if_statement "if (lVar13 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../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 ") ))) ;) })) (goto_statement "goto LAB_00309900;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00309772:\n      local_100 = local_100 + 1;" statement_identifier : (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;)) (expression_statement "local_108 = local_108 + 3;" (assignment_expression "local_108 = local_108 + 3" identifier = (binary_expression "local_108 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_6 != local_100)" ( (binary_expression "param_6 != local_100" identifier != identifier) )) ;) }))) (if_statement "if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(local_78[0] != local_68)" ( (binary_expression "local_78[0] != local_68" (subscript_expression "local_78[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original name: gc_process_relocs<32, false, (anonymous namespace)::Target_aarch64<32,\n   false>, (anonymous namespace)::Target_aarch64<32, false>::Scan, gold::Default_classify_reloc<4,\n   32, false> > */\n\nvoid gold::\n     gc_process_relocs<32,_false,_(anonymous_namespace)::Target_aarch64<32,_false>,_(anonymous_namespace)::Target_aarch64<32,_false>::Scan,_gold::Default_classify_reloc<4,_32,_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_aarch64<32,_false> *target,\n               Sized_relobj_file<32,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count\n               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)\n\n{\n  _Rb_tree_header *p_Var1;\n  _Base_ptr *pp_Var2;\n  ushort uVar3;\n  uint uVar4;\n  iterator iVar5;\n  Garbage_collection *pGVar6;\n  _Base_ptr p_Var7;\n  Target *pTVar8;\n  _Base_ptr p_Var9;\n  _func_int_varargs **pp_Var10;\n  iterator __position;\n  code *pcVar11;\n  char cVar12;\n  ulong to;\n  General_options *pGVar13;\n  const_iterator cVar14;\n  size_t sVar15;\n  iterator iVar16;\n  _Base_ptr p_Var17;\n  Output_data_got<32,_false> *this;\n  uint shndx;\n  long lVar18;\n  byte bVar19;\n  pointer pcVar20;\n  byte bVar21;\n  uint uVar22;\n  byte *pbVar23;\n  _func_int_varargs **pp_Var24;\n  _Alloc_hider _Var25;\n  Relobj *pRVar26;\n  undefined4 in_register_00000084;\n  ulong uVar27;\n  uint uVar28;\n  undefined1 uVar29;\n  bool bVar30;\n  bool bVar31;\n  bool bVar32;\n  undefined1 uVar33;\n  bool bVar34;\n  byte bVar35;\n  Reloc_addend_size_info *local_168;\n  Addend_info *local_160;\n  mapped_type *local_158;\n  Symbol_info *local_150;\n  Offset_info *local_140;\n  _func_int_varargs **local_138;\n  char local_12d;\n  uint local_124;\n  Output_segment *local_110;\n  uint *local_108;\n  uchar *local_100;\n  tuple<> local_ea;\n  tuple<> local_e9;\n  __node_gen_type __node_gen_2;\n  __node_gen_type __node_gen_3;\n  __node_gen_type __node_gen;\n  __node_gen_type __node_gen_1;\n  _Head_base<0,_const_std::pair<gold::Relobj*,_unsigned_int>&,_false> local_c8;\n  _Head_base<0,_const_std::pair<gold::Relobj*,_unsigned_int>&,_false> local_c0;\n  Output_segment *local_b8;\n  uint local_b0;\n  Target_aarch64<32,_false> *local_a8;\n  uint local_a0;\n  Section_id src_id_2;\n  Section_id dst_id;\n  string src_section_name;\n  Section_id src_id;\n  \n  local_108 = (uint *)CONCAT44(in_register_00000084,src_indx);\n  bVar35 = 0;\n  shndx = (uint)src_obj;\n  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if (parameters->options_->icf_status_ == ICF_NONE) {\n    src_section_name._M_dataplus._M_p = (pointer)&src_section_name.field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"");\n  }\n  else if (*(code **)(*(long *)target + 0x80) == Sized_relobj_file<32,_false>::do_section_name) {\n    elfcpp::Elf_file<32,_false,_gold::Object>::section_name\n              (&src_section_name,\n               (Elf_file<32,_false,_gold::Object> *)\n               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy,shndx);\n  }\n  else {\n    (**(code **)(*(long *)target + 0x80))(&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }\n  _Var25._M_p = src_section_name._M_dataplus._M_p;\n  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if (parameters->options_->icf_status_ == ICF_NONE) {\nLAB_003095e3:\n    bVar32 = false;\n    local_168 = (Reloc_addend_size_info *)0x0;\n    local_140 = (Offset_info *)0x0;\n    local_160 = (Addend_info *)0x0;\n    local_150 = (Symbol_info *)0x0;\n    local_158 = (mapped_type *)0x0;\n  }\n  else {\n    pcVar20 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar29 = 0;\n    uVar33 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar33) {\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var25._M_p + sVar15;\n    }\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var25._M_p,pcVar20);\n    lVar18 = 5;\n    pbVar23 = (byte *)".text";\n    pRVar26 = src_id.first;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      uVar29 = *pbVar23 < bVar19;\n      uVar33 = *pbVar23 == bVar19;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n    } while ((bool)uVar33);\n    bVar32 = false;\n    bVar30 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n    if (!bVar30) {\n      lVar18 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar26 = src_id.first;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar32 = *pbVar23 < bVar19;\n        bVar30 = *pbVar23 == bVar19;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar32 && !bVar30) != bVar32) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = shndx;\n    src_id.first = (Relobj *)target;\n    local_158 = std::__detail::\n                _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id);\n    local_150 = &local_158->symbol_info;\n    local_140 = &local_158->offset_info;\n    local_160 = &local_158->addend_info;\n    local_168 = &local_158->reloc_addend_size_info;\n    bVar32 = true;\n  }\n  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar12 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar12 != '\0')) {\n    pcVar11 = *(code **)(*(long *)param_2 + 0x10);\n    if (pcVar11 != Target::section_may_have_icf_unsafe_pointers) {\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00309642;\n    }\n    pcVar11 = *(code **)(*(long *)param_2 + 0x98);\n    bVar30 = pcVar11 < Target::do_section_may_have_icf_unsafe_pointers;\n    bVar34 = pcVar11 == Target::do_section_may_have_icf_unsafe_pointers;\n    if (!bVar34) {\n      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar23 = (byte *)".rodata._ZTV";\n    _Var25 = src_section_name._M_dataplus;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar30 = *pbVar23 < (byte)*_Var25._M_p;\n      bVar34 = *pbVar23 == *_Var25._M_p;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n    } while (bVar34);\n    bVar31 = false;\n    bVar30 = (!bVar30 && !bVar34) == bVar30;\n    if (!bVar30) {\n      lVar18 = 0x11;\n      pbVar23 = (byte *)".data.rel.ro._ZTV";\n      _Var25 = src_section_name._M_dataplus;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n        bVar30 = *pbVar23 == *_Var25._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      bVar34 = false;\n      bVar30 = (!bVar31 && !bVar30) == bVar31;\n      if (!bVar30) {\n        lVar18 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var25 = src_section_name._M_dataplus;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n          bVar30 = *pbVar23 == *_Var25._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n        } while (bVar30);\n        bVar31 = false;\n        bVar30 = (!bVar34 && !bVar30) == bVar34;\n        if (!bVar30) {\n          lVar18 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var25 = src_section_name._M_dataplus;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          } while (bVar30);\n          bVar34 = false;\n          bVar30 = (!bVar31 && !bVar30) == bVar31;\n          if (!bVar30) {\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }\n  local_12d = '\0';\nLAB_00309642:\n  if (prelocs != (uchar *)0x0) {\n    local_138 = (_func_int_varargs **)0x0;\n    local_100 = (uchar *)0x0;\n    do {\n      uVar4 = local_108[2];\n      uVar28 = local_108[1] >> 8;\n      if (uVar28 < reloc_count) {\n        if (param_8 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        uVar22 = uVar28 << 4;\n        uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n        uVar27 = (ulong)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }\n        local_110 = (Output_segment *)target;\n        if ((local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )) {\nLAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < *(uint *)&target[1].field_0x10) {\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);\n        if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];\n        if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;\n        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }\n        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }\n        pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar18 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var24 = pp_Var10;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        } while ((bool)uVar33);\n        bVar30 = false;\n        bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n        if (bVar34) {\n          pp_Var10 = pp_Var10 + 1;\n        }\n        else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }\n        local_138 = pp_Var10;\n        if (bVar32) {\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }\n        if (bVar19 != 0) {\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (prelocs != local_100);\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != &src_section_name.field_2) {\n    operator_delete(src_section_name._M_dataplus._M_p);\n  }\n  return;\n}\n\n" comment comment comment (declaration "void gold::\n     gc_process_relocs<32,_false,_(anonymous_namespace)::Target_aarch64<32,_false>,_(anonymous_namespace)::Target_aarch64<32,_false>::Scan,_gold::Default_classify_reloc<4,_32,_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_aarch64<32,_false> *target,\n               Sized_relobj_file<32,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count\n               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)\n\n{\n  _Rb_tree_header *p_Var1;" primitive_type (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , identifier (ERROR ",_(anonymous_namespace)::Target_aarch64<32,_false>,_(anonymous_namespace)::Target_aarch64<32,_false>::Scan,_gold::Default_classify_reloc<4" , (function_declarator "_(anonymous_namespace)::Target_aarch64<32,_false>,_(anonymous_namespace)::Target_aarch64<32,_false>::Scan" identifier (parameter_list "(anonymous_namespace)" ( (parameter_declaration "anonymous_namespace" type_identifier) )) (ERROR "::" : :) identifier (ERROR "<32," < number_literal ,) identifier (ERROR ">," > ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))) (ERROR "::" : :) identifier (ERROR "<32," < number_literal ,) identifier (ERROR ">::" > : :) identifier) , identifier : : identifier < number_literal) , identifier , (ERROR "_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_aarch64<32,_false> *target,\n               Sized_relobj_file<32,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count\n               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)\n\n{\n  _Rb_tree_header" (function_declarator "_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_aarch64<32,_false> *target,\n               Sized_relobj_file<32,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count\n               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)" identifier (ERROR ">_>" > identifier >) (parameter_list "(Symbol_table *symtab,Layout *param_2,Target_aarch64<32,_false> *target,\n               Sized_relobj_file<32,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count\n               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)" ( (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "Target_aarch64" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *target" type_identifier (ERROR ">" >) (pointer_declarator "*target" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *src_obj" type_identifier (ERROR ">" >) (pointer_declarator "*src_obj" * identifier)) , (parameter_declaration "uint src_indx" type_identifier identifier) , (parameter_declaration "uchar *prelocs" type_identifier (pointer_declarator "*prelocs" * identifier)) , (parameter_declaration "size_t reloc_count" primitive_type identifier) , (parameter_declaration "Output_section *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "bool param_9" primitive_type identifier) , (parameter_declaration "size_t param_10" primitive_type identifier) , (parameter_declaration "uchar *plocal_syms" type_identifier (pointer_declarator "*plocal_syms" * identifier)) ))) { identifier) (pointer_declarator "*p_Var1" * identifier) ;) (declaration "_Base_ptr *pp_Var2;" type_identifier (pointer_declarator "*pp_Var2" * identifier) ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "iterator iVar5;" type_identifier identifier ;) (declaration "Garbage_collection *pGVar6;" type_identifier (pointer_declarator "*pGVar6" * identifier) ;) (declaration "_Base_ptr p_Var7;" type_identifier identifier ;) (declaration "Target *pTVar8;" type_identifier (pointer_declarator "*pTVar8" * identifier) ;) (declaration "_Base_ptr p_Var9;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var10;" type_identifier (pointer_declarator "**pp_Var10" * (pointer_declarator "*pp_Var10" * identifier)) ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "ulong to;" type_identifier identifier ;) (declaration "General_options *pGVar13;" type_identifier (pointer_declarator "*pGVar13" * identifier) ;) (declaration "const_iterator cVar14;" type_identifier identifier ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "iterator iVar16;" type_identifier identifier ;) (declaration "_Base_ptr p_Var17;" type_identifier identifier ;) (expression_statement "Output_data_got<32,_false> *this;" (update_expression "Output_data_got<32,_false> *this" (binary_expression "Output_data_got<32,_false> *this" (binary_expression "Output_data_got<32" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*this" * identifier)) --) ;) (declaration "uint shndx;" type_identifier identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "pointer pcVar20;" type_identifier identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "_func_int_varargs **pp_Var24;" type_identifier (pointer_declarator "**pp_Var24" * (pointer_declarator "*pp_Var24" * identifier)) ;) (declaration "_Alloc_hider _Var25;" type_identifier identifier ;) (declaration "Relobj *pRVar26;" type_identifier (pointer_declarator "*pRVar26" * identifier) ;) (declaration "undefined4 in_register_00000084;" type_identifier identifier ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "undefined1 uVar29;" type_identifier identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "undefined1 uVar33;" type_identifier identifier ;) (declaration "bool bVar34;" primitive_type identifier ;) (declaration "byte bVar35;" type_identifier identifier ;) (declaration "Reloc_addend_size_info *local_168;" type_identifier (pointer_declarator "*local_168" * identifier) ;) (declaration "Addend_info *local_160;" type_identifier (pointer_declarator "*local_160" * identifier) ;) (declaration "mapped_type *local_158;" type_identifier (pointer_declarator "*local_158" * identifier) ;) (declaration "Symbol_info *local_150;" type_identifier (pointer_declarator "*local_150" * identifier) ;) (declaration "Offset_info *local_140;" type_identifier (pointer_declarator "*local_140" * identifier) ;) (declaration "_func_int_varargs **local_138;" type_identifier (pointer_declarator "**local_138" * (pointer_declarator "*local_138" * identifier)) ;) (declaration "char local_12d;" primitive_type identifier ;) (declaration "uint local_124;" type_identifier identifier ;) (declaration "Output_segment *local_110;" type_identifier (pointer_declarator "*local_110" * identifier) ;) (declaration "uint *local_108;" type_identifier (pointer_declarator "*local_108" * identifier) ;) (declaration "uchar *local_100;" type_identifier (pointer_declarator "*local_100" * identifier) ;) (expression_statement "tuple<> local_ea;" (update_expression "tuple<> local_ea" (binary_expression "tuple<> local_ea" identifier < (ERROR ">" >) identifier) --) ;) (expression_statement "tuple<> local_e9;" (update_expression "tuple<> local_e9" (binary_expression "tuple<> local_e9" identifier < (ERROR ">" >) identifier) --) ;) (declaration "__node_gen_type __node_gen_2;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen_3;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "__node_gen_type __node_gen_1;" type_identifier identifier ;) (ERROR "_Head_base<0," (binary_expression "_Head_base<0" identifier < number_literal) ,) (labeled_statement "_const_std::pair<gold::Relobj*,_unsigned_int>&,_false> local_c8;" statement_identifier (ERROR "::pair<gold:" : : (binary_expression "pair<gold" identifier < identifier) :) : (expression_statement "Relobj*,_unsigned_int>&,_false> local_c8;" (binary_expression "Relobj*,_unsigned_int>&,_false> local_c8" (binary_expression "Relobj*,_unsigned_int>&,_false" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (pointer_expression "&,_false" & (ERROR "," ,) identifier)) > identifier) ;)) (ERROR "_Head_base<0," (binary_expression "_Head_base<0" identifier < number_literal) ,) (labeled_statement "_const_std::pair<gold::Relobj*,_unsigned_int>&,_false> local_c0;" statement_identifier (ERROR "::pair<gold:" : : (binary_expression "pair<gold" identifier < identifier) :) : (expression_statement "Relobj*,_unsigned_int>&,_false> local_c0;" (binary_expression "Relobj*,_unsigned_int>&,_false> local_c0" (binary_expression "Relobj*,_unsigned_int>&,_false" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (pointer_expression "&,_false" & (ERROR "," ,) identifier)) > identifier) ;)) (declaration "Output_segment *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "uint local_b0;" type_identifier identifier ;) (expression_statement "Target_aarch64<32,_false> *local_a8;" (update_expression "Target_aarch64<32,_false> *local_a8" (binary_expression "Target_aarch64<32,_false> *local_a8" (binary_expression "Target_aarch64<32" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*local_a8" * identifier)) --) ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "Section_id src_id_2;" type_identifier identifier ;) (declaration "Section_id dst_id;" type_identifier identifier ;) (declaration "string src_section_name;" type_identifier identifier ;) (declaration "Section_id src_id;" type_identifier identifier ;) (expression_statement "local_108 = (uint *)CONCAT44(in_register_00000084,src_indx);" (assignment_expression "local_108 = (uint *)CONCAT44(in_register_00000084,src_indx)" identifier = (cast_expression "(uint *)CONCAT44(in_register_00000084,src_indx)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(in_register_00000084,src_indx)" identifier (argument_list "(in_register_00000084,src_indx)" ( identifier , identifier ))))) ;) (expression_statement "bVar35 = 0;" (assignment_expression "bVar35 = 0" identifier = number_literal) ;) (expression_statement "shndx = (uint)src_obj;" (assignment_expression "shndx = (uint)src_obj" identifier = (cast_expression "(uint)src_obj" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (parameters->options_->icf_status_ == ICF_NONE) {\n    src_section_name._M_dataplus._M_p = (pointer)&src_section_name.field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"");\n  }\n  else if (*(code **)(*(long *)target + 0x80) == Sized_relobj_file<32,_false>::do_section_name) {\n    elfcpp::Elf_file<32,_false,_gold::Object>::section_name\n              (&src_section_name,\n               (Elf_file<32,_false,_gold::Object> *)\n               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy,shndx);\n  }\n  else {\n    (**(code **)(*(long *)target + 0x80))(&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }" if (parenthesized_expression "(parameters->options_->icf_status_ == ICF_NONE)" ( (binary_expression "parameters->options_->icf_status_ == ICF_NONE" (field_expression "parameters->options_->icf_status_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n    src_section_name._M_dataplus._M_p = (pointer)&src_section_name.field_2;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"");\n  }" { (expression_statement "src_section_name._M_dataplus._M_p = (pointer)&src_section_name.field_2;" (assignment_expression "src_section_name._M_dataplus._M_p = (pointer)&src_section_name.field_2" (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&src_section_name.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "src_section_name.field_2" identifier . field_identifier))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"");" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&src_section_name,"");" (binary_expression "_M_construct<char_const*>(&src_section_name,"")" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&src_section_name,"")" ( (comma_expression "&src_section_name,""" (pointer_expression "&src_section_name" & identifier) , (string_literal """" " ")) ))) ;)) }) (else_clause "else if (*(code **)(*(long *)target + 0x80) == Sized_relobj_file<32,_false>::do_section_name) {\n    elfcpp::Elf_file<32,_false,_gold::Object>::section_name\n              (&src_section_name,\n               (Elf_file<32,_false,_gold::Object> *)\n               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy,shndx);\n  }\n  else {\n    (**(code **)(*(long *)target + 0x80))(&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }" else (if_statement "if (*(code **)(*(long *)target + 0x80) == Sized_relobj_file<32,_false>::do_section_name) {\n    elfcpp::Elf_file<32,_false,_gold::Object>::section_name\n              (&src_section_name,\n               (Elf_file<32,_false,_gold::Object> *)\n               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy,shndx);\n  }\n  else {\n    (**(code **)(*(long *)target + 0x80))(&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }" if (parenthesized_expression "(*(code **)(*(long *)target + 0x80) == Sized_relobj_file<32,_false>::do_section_name)" ( (comma_expression "*(code **)(*(long *)target + 0x80) == Sized_relobj_file<32,_false>::do_section_name" (binary_expression "*(code **)(*(long *)target + 0x80) == Sized_relobj_file<32" (pointer_expression "*(code **)(*(long *)target + 0x80)" * (cast_expression "(code **)(*(long *)target + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)target + 0x80)" ( (binary_expression "*(long *)target + 0x80" (pointer_expression "*(long *)target" * (cast_expression "(long *)target" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (binary_expression "Sized_relobj_file<32" identifier < number_literal)) , (binary_expression "_false>::do_section_name" identifier > (ERROR "::" : :) identifier)) )) (compound_statement "{\n    elfcpp::Elf_file<32,_false,_gold::Object>::section_name\n              (&src_section_name,\n               (Elf_file<32,_false,_gold::Object> *)\n               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy,shndx);\n  }" { (labeled_statement "elfcpp::Elf_file<32,_false,_gold::Object>::section_name\n              (&src_section_name,\n               (Elf_file<32,_false,_gold::Object> *)\n               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy,shndx);" statement_identifier (ERROR "::Elf_file<32,_false,_gold::Object>:" : : (comma_expression "Elf_file<32,_false,_gold" (binary_expression "Elf_file<32" identifier < number_literal) , (comma_expression "_false,_gold" identifier , identifier)) : : identifier > :) : (expression_statement "section_name\n              (&src_section_name,\n               (Elf_file<32,_false,_gold::Object> *)\n               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy,shndx);" (call_expression "section_name\n              (&src_section_name,\n               (Elf_file<32,_false,_gold::Object> *)\n               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy,shndx)" identifier (argument_list "(&src_section_name,\n               (Elf_file<32,_false,_gold::Object> *)\n               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy,shndx)" ( (pointer_expression "&src_section_name" & identifier) , (binary_expression "(Elf_file<32,_false,_gold::Object> *)\n               &(target->aarch64_input_section_map_)._M_h._M_rehash_policy" (parenthesized_expression "(Elf_file<32,_false,_gold::Object> *)" ( (ERROR "Elf_file<32,_false,_gold::" (comma_expression "Elf_file<32,_false,_gold" (binary_expression "Elf_file<32" identifier < number_literal) , (comma_expression "_false,_gold" identifier , identifier)) : :) (binary_expression "Object> *" identifier > (pointer_expression "*" * identifier)) )) & (field_expression "(target->aarch64_input_section_map_)._M_h._M_rehash_policy" (field_expression "(target->aarch64_input_section_map_)._M_h" (parenthesized_expression "(target->aarch64_input_section_map_)" ( (field_expression "target->aarch64_input_section_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , identifier ))) ;)) }) (else_clause "else {\n    (**(code **)(*(long *)target + 0x80))(&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }" else (compound_statement "{\n    (**(code **)(*(long *)target + 0x80))(&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }" { (expression_statement "(**(code **)(*(long *)target + 0x80))(&src_section_name,target,(ulong)src_obj & 0xffffffff);" (call_expression "(**(code **)(*(long *)target + 0x80))(&src_section_name,target,(ulong)src_obj & 0xffffffff)" (parenthesized_expression "(**(code **)(*(long *)target + 0x80))" ( (pointer_expression "**(code **)(*(long *)target + 0x80)" * (pointer_expression "*(code **)(*(long *)target + 0x80)" * (cast_expression "(code **)(*(long *)target + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)target + 0x80)" ( (binary_expression "*(long *)target + 0x80" (pointer_expression "*(long *)target" * (cast_expression "(long *)target" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(&src_section_name,target,(ulong)src_obj & 0xffffffff)" ( (pointer_expression "&src_section_name" & identifier) , identifier , (binary_expression "(ulong)src_obj & 0xffffffff" (cast_expression "(ulong)src_obj" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) ;) }))))) (expression_statement "_Var25._M_p = src_section_name._M_dataplus._M_p;" (assignment_expression "_Var25._M_p = src_section_name._M_dataplus._M_p" (field_expression "_Var25._M_p" identifier . field_identifier) = (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (parameters->options_->icf_status_ == ICF_NONE) {\nLAB_003095e3:\n    bVar32 = false;\n    local_168 = (Reloc_addend_size_info *)0x0;\n    local_140 = (Offset_info *)0x0;\n    local_160 = (Addend_info *)0x0;\n    local_150 = (Symbol_info *)0x0;\n    local_158 = (mapped_type *)0x0;\n  }\n  else {\n    pcVar20 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar29 = 0;\n    uVar33 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar33) {\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var25._M_p + sVar15;\n    }\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var25._M_p,pcVar20);\n    lVar18 = 5;\n    pbVar23 = (byte *)".text";\n    pRVar26 = src_id.first;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      uVar29 = *pbVar23 < bVar19;\n      uVar33 = *pbVar23 == bVar19;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n    } while ((bool)uVar33);\n    bVar32 = false;\n    bVar30 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n    if (!bVar30) {\n      lVar18 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar26 = src_id.first;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar32 = *pbVar23 < bVar19;\n        bVar30 = *pbVar23 == bVar19;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar32 && !bVar30) != bVar32) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = shndx;\n    src_id.first = (Relobj *)target;\n    local_158 = std::__detail::\n                _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id);\n    local_150 = &local_158->symbol_info;\n    local_140 = &local_158->offset_info;\n    local_160 = &local_158->addend_info;\n    local_168 = &local_158->reloc_addend_size_info;\n    bVar32 = true;\n  }" if (parenthesized_expression "(parameters->options_->icf_status_ == ICF_NONE)" ( (binary_expression "parameters->options_->icf_status_ == ICF_NONE" (field_expression "parameters->options_->icf_status_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\nLAB_003095e3:\n    bVar32 = false;\n    local_168 = (Reloc_addend_size_info *)0x0;\n    local_140 = (Offset_info *)0x0;\n    local_160 = (Addend_info *)0x0;\n    local_150 = (Symbol_info *)0x0;\n    local_158 = (mapped_type *)0x0;\n  }" { (labeled_statement "LAB_003095e3:\n    bVar32 = false;" statement_identifier : (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;)) (expression_statement "local_168 = (Reloc_addend_size_info *)0x0;" (assignment_expression "local_168 = (Reloc_addend_size_info *)0x0" identifier = (cast_expression "(Reloc_addend_size_info *)0x0" ( (type_descriptor "Reloc_addend_size_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_140 = (Offset_info *)0x0;" (assignment_expression "local_140 = (Offset_info *)0x0" identifier = (cast_expression "(Offset_info *)0x0" ( (type_descriptor "Offset_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_160 = (Addend_info *)0x0;" (assignment_expression "local_160 = (Addend_info *)0x0" identifier = (cast_expression "(Addend_info *)0x0" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_150 = (Symbol_info *)0x0;" (assignment_expression "local_150 = (Symbol_info *)0x0" identifier = (cast_expression "(Symbol_info *)0x0" ( (type_descriptor "Symbol_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_158 = (mapped_type *)0x0;" (assignment_expression "local_158 = (mapped_type *)0x0" identifier = (cast_expression "(mapped_type *)0x0" ( (type_descriptor "mapped_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pcVar20 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar29 = 0;\n    uVar33 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar33) {\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var25._M_p + sVar15;\n    }\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var25._M_p,pcVar20);\n    lVar18 = 5;\n    pbVar23 = (byte *)".text";\n    pRVar26 = src_id.first;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      uVar29 = *pbVar23 < bVar19;\n      uVar33 = *pbVar23 == bVar19;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n    } while ((bool)uVar33);\n    bVar32 = false;\n    bVar30 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n    if (!bVar30) {\n      lVar18 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar26 = src_id.first;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar32 = *pbVar23 < bVar19;\n        bVar30 = *pbVar23 == bVar19;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar32 && !bVar30) != bVar32) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = shndx;\n    src_id.first = (Relobj *)target;\n    local_158 = std::__detail::\n                _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id);\n    local_150 = &local_158->symbol_info;\n    local_140 = &local_158->offset_info;\n    local_160 = &local_158->addend_info;\n    local_168 = &local_158->reloc_addend_size_info;\n    bVar32 = true;\n  }" else (compound_statement "{\n    pcVar20 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar29 = 0;\n    uVar33 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar33) {\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var25._M_p + sVar15;\n    }\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var25._M_p,pcVar20);\n    lVar18 = 5;\n    pbVar23 = (byte *)".text";\n    pRVar26 = src_id.first;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      uVar29 = *pbVar23 < bVar19;\n      uVar33 = *pbVar23 == bVar19;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n    } while ((bool)uVar33);\n    bVar32 = false;\n    bVar30 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n    if (!bVar30) {\n      lVar18 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar26 = src_id.first;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar32 = *pbVar23 < bVar19;\n        bVar30 = *pbVar23 == bVar19;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar32 && !bVar30) != bVar32) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = shndx;\n    src_id.first = (Relobj *)target;\n    local_158 = std::__detail::\n                _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id);\n    local_150 = &local_158->symbol_info;\n    local_140 = &local_158->offset_info;\n    local_160 = &local_158->addend_info;\n    local_168 = &local_158->reloc_addend_size_info;\n    bVar32 = true;\n  }" { (expression_statement "pcVar20 = (pointer)0xffffffffffffffff;" (assignment_expression "pcVar20 = (pointer)0xffffffffffffffff" identifier = (cast_expression "(pointer)0xffffffffffffffff" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "src_id.first = (Relobj *)&stack0xffffffffffffffb8;" (assignment_expression "src_id.first = (Relobj *)&stack0xffffffffffffffb8" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)&stack0xffffffffffffffb8" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffffffffffb8" & identifier))) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "uVar33 = src_section_name._M_dataplus._M_p == (pointer)0x0;" (assignment_expression "uVar33 = src_section_name._M_dataplus._M_p == (pointer)0x0" identifier = (binary_expression "src_section_name._M_dataplus._M_p == (pointer)0x0" (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier) == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal))) ;) (if_statement "if (!(bool)uVar33) {\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var25._M_p + sVar15;\n    }" if (parenthesized_expression "(!(bool)uVar33)" ( (unary_expression "!(bool)uVar33" ! (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      sVar15 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var25._M_p + sVar15;\n    }" { (expression_statement "sVar15 = strlen(src_section_name._M_dataplus._M_p);" (assignment_expression "sVar15 = strlen(src_section_name._M_dataplus._M_p)" identifier = (call_expression "strlen(src_section_name._M_dataplus._M_p)" identifier (argument_list "(src_section_name._M_dataplus._M_p)" ( (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier) )))) ;) (expression_statement "pcVar20 = _Var25._M_p + sVar15;" (assignment_expression "pcVar20 = _Var25._M_p + sVar15" identifier = (binary_expression "_Var25._M_p + sVar15" (field_expression "_Var25._M_p" identifier . field_identifier) + identifier)) ;) })) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var25._M_p,pcVar20);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var25._M_p,pcVar20);" (binary_expression "_M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var25._M_p,pcVar20)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var25._M_p,pcVar20)" ( (comma_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var25._M_p,pcVar20" (binary_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id" (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_> *" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier) , (comma_expression "_Var25._M_p,pcVar20" (field_expression "_Var25._M_p" identifier . field_identifier) , identifier)) ))) ;)) (expression_statement "lVar18 = 5;" (assignment_expression "lVar18 = 5" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)".text";" (assignment_expression "pbVar23 = (byte *)".text"" identifier = (cast_expression "(byte *)".text"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".text"" " string_content "))) ;) (expression_statement "pRVar26 = src_id.first;" (assignment_expression "pRVar26 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      uVar29 = *pbVar23 < bVar19;\n      uVar33 = *pbVar23 == bVar19;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n    } while ((bool)uVar33);" do (compound_statement "{\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n      uVar29 = *pbVar23 < bVar19;\n      uVar33 = *pbVar23 == bVar19;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n    }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;" (assignment_expression "bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar26->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar26->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar26->super_Object)._vptr_Object" & (field_expression "(pRVar26->super_Object)._vptr_Object" (parenthesized_expression "(pRVar26->super_Object)" ( (field_expression "pRVar26->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "uVar29 = *pbVar23 < bVar19;" (assignment_expression "uVar29 = *pbVar23 < bVar19" identifier = (binary_expression "*pbVar23 < bVar19" (pointer_expression "*pbVar23" * identifier) < identifier)) ;) (expression_statement "uVar33 = *pbVar23 == bVar19;" (assignment_expression "uVar33 = *pbVar23 == bVar19" identifier = (binary_expression "*pbVar23 == bVar19" (pointer_expression "*pbVar23" * identifier) == identifier)) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar35 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar35 * -2" identifier + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);" (assignment_expression "pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1)" identifier = (cast_expression "(Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pRVar26 + (ulong)bVar35 * -2 + 1)" ( (binary_expression "(long)pRVar26 + (ulong)bVar35 * -2 + 1" (binary_expression "(long)pRVar26 + (ulong)bVar35 * -2" (cast_expression "(long)pRVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "((bool)uVar33)" ( (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "bVar30 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;" (assignment_expression "bVar30 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29" identifier = (binary_expression "(!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29" (parenthesized_expression "(!(bool)uVar29 && !(bool)uVar33)" ( (binary_expression "!(bool)uVar29 && !(bool)uVar33" (unary_expression "!(bool)uVar29" ! (cast_expression "(bool)uVar29" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar33" ! (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar29" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar30) {\n      lVar18 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar26 = src_id.first;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar32 = *pbVar23 < bVar19;\n        bVar30 = *pbVar23 == bVar19;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar32 && !bVar30) != bVar32) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_003095e3;\n      }\n    }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n      lVar18 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar26 = src_id.first;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar32 = *pbVar23 < bVar19;\n        bVar30 = *pbVar23 == bVar19;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar32 && !bVar30) != bVar32) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_003095e3;\n      }\n    }" { (expression_statement "lVar18 = 0xf;" (assignment_expression "lVar18 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)".gnu.linkonce.t";" (assignment_expression "pbVar23 = (byte *)".gnu.linkonce.t"" identifier = (cast_expression "(byte *)".gnu.linkonce.t"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.t"" " string_content "))) ;) (expression_statement "pRVar26 = src_id.first;" (assignment_expression "pRVar26 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar32 = *pbVar23 < bVar19;\n        bVar30 = *pbVar23 == bVar19;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);" do (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;\n        bVar32 = *pbVar23 < bVar19;\n        bVar30 = *pbVar23 == bVar19;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);\n      }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object;" (assignment_expression "bVar19 = *(byte *)&(pRVar26->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar26->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar26->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar26->super_Object)._vptr_Object" & (field_expression "(pRVar26->super_Object)._vptr_Object" (parenthesized_expression "(pRVar26->super_Object)" ( (field_expression "pRVar26->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar32 = *pbVar23 < bVar19;" (assignment_expression "bVar32 = *pbVar23 < bVar19" identifier = (binary_expression "*pbVar23 < bVar19" (pointer_expression "*pbVar23" * identifier) < identifier)) ;) (expression_statement "bVar30 = *pbVar23 == bVar19;" (assignment_expression "bVar30 = *pbVar23 == bVar19" identifier = (binary_expression "*pbVar23 == bVar19" (pointer_expression "*pbVar23" * identifier) == identifier)) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar35 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar35 * -2" identifier + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1);" (assignment_expression "pRVar26 = (Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1)" identifier = (cast_expression "(Relobj *)((long)pRVar26 + (ulong)bVar35 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pRVar26 + (ulong)bVar35 * -2 + 1)" ( (binary_expression "(long)pRVar26 + (ulong)bVar35 * -2 + 1" (binary_expression "(long)pRVar26 + (ulong)bVar35 * -2" (cast_expression "(long)pRVar26" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (if_statement "if ((!bVar32 && !bVar30) != bVar32) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_003095e3;\n      }" if (parenthesized_expression "((!bVar32 && !bVar30) != bVar32)" ( (binary_expression "(!bVar32 && !bVar30) != bVar32" (parenthesized_expression "(!bVar32 && !bVar30)" ( (binary_expression "!bVar32 && !bVar30" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_003095e3;\n      }" { (if_statement "if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }" if (parenthesized_expression "(src_id.first != (Relobj *)&stack0xffffffffffffffb8)" ( (binary_expression "src_id.first != (Relobj *)&stack0xffffffffffffffb8" (field_expression "src_id.first" identifier . field_identifier) != (cast_expression "(Relobj *)&stack0xffffffffffffffb8" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffffffffffb8" & identifier))) )) (compound_statement "{\n          operator_delete(src_id.first);\n        }" { (expression_statement "operator_delete(src_id.first);" (call_expression "operator_delete(src_id.first)" identifier (argument_list "(src_id.first)" ( (field_expression "src_id.first" identifier . field_identifier) ))) ;) })) (goto_statement "goto LAB_003095e3;" goto statement_identifier ;) })) })) (if_statement "if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }" if (parenthesized_expression "(src_id.first != (Relobj *)&stack0xffffffffffffffb8)" ( (binary_expression "src_id.first != (Relobj *)&stack0xffffffffffffffb8" (field_expression "src_id.first" identifier . field_identifier) != (cast_expression "(Relobj *)&stack0xffffffffffffffb8" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffffffffffb8" & identifier))) )) (compound_statement "{\n      operator_delete(src_id.first);\n    }" { (expression_statement "operator_delete(src_id.first);" (call_expression "operator_delete(src_id.first)" identifier (argument_list "(src_id.first)" ( (field_expression "src_id.first" identifier . field_identifier) ))) ;) })) (expression_statement "src_id.second = shndx;" (assignment_expression "src_id.second = shndx" (field_expression "src_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "src_id.first = (Relobj *)target;" (assignment_expression "src_id.first = (Relobj *)target" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)target" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "local_158 = std::__detail::\n                _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (assignment_expression "local_158 = std" identifier = identifier) : : (comma_expression "__detail::\n                _Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n                _Map_base<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Map_base<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Icf::Reloc_info>,_std" identifier (ERROR "::Reloc_info>" : : identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Icf::Reloc_info>_>,_std" identifier (ERROR "::Reloc_info>_>" : : (binary_expression "Reloc_info>_" identifier > identifier) >) , identifier) : : (comma_expression "__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id);" (comma_expression "_Hashtable_traits<true,_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id)" identifier , (binary_expression "_true>,_true>\n                ::operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id)" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (ERROR "::" : :) (call_expression "operator[]((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id)" (subscript_expression "operator[]" identifier [ identifier ]) (argument_list "((_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_,(key_type *)&src_id)" ( (binary_expression "(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)&symtab->icf_->reloc_info_list_" (parenthesized_expression "(_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>,_true>\n                              *)" ( (ERROR "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std::__detail::_Select1st,_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_>,_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>_" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std::pair<gold" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std::pair<const_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std::allocator<std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold::Icf::Reloc_info>,_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Map_base<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Map_base<std::pair<gold" (binary_expression "_Map_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Icf::Reloc_info" : : identifier : : identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Icf::Reloc_info" : : identifier : : identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Select1st" : : identifier : : identifier) , identifier) : : identifier < identifier : : identifier < identifier : : identifier * , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_false,_true>,_true>\n                              *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>,_true>\n                              *" identifier , (binary_expression "_true>,_true>\n                              *" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "symtab->icf_->reloc_info_list_" (field_expression "symtab->icf_" identifier -> field_identifier) -> field_identifier)) , (cast_expression "(key_type *)&src_id" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier)) )))))) ;))))) (expression_statement "local_150 = &local_158->symbol_info;" (assignment_expression "local_150 = &local_158->symbol_info" identifier = (pointer_expression "&local_158->symbol_info" & (field_expression "local_158->symbol_info" identifier -> field_identifier))) ;) (expression_statement "local_140 = &local_158->offset_info;" (assignment_expression "local_140 = &local_158->offset_info" identifier = (pointer_expression "&local_158->offset_info" & (field_expression "local_158->offset_info" identifier -> field_identifier))) ;) (expression_statement "local_160 = &local_158->addend_info;" (assignment_expression "local_160 = &local_158->addend_info" identifier = (pointer_expression "&local_158->addend_info" & (field_expression "local_158->addend_info" identifier -> field_identifier))) ;) (expression_statement "local_168 = &local_158->reloc_addend_size_info;" (assignment_expression "local_168 = &local_158->reloc_addend_size_info" identifier = (pointer_expression "&local_158->reloc_addend_size_info" & (field_expression "local_158->reloc_addend_size_info" identifier -> field_identifier))) ;) (expression_statement "bVar32 = true;" (assignment_expression "bVar32 = true" identifier = true) ;) }))) (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if ((parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar12 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar12 != '\0')) {\n    pcVar11 = *(code **)(*(long *)param_2 + 0x10);\n    if (pcVar11 != Target::section_may_have_icf_unsafe_pointers) {\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00309642;\n    }\n    pcVar11 = *(code **)(*(long *)param_2 + 0x98);\n    bVar30 = pcVar11 < Target::do_section_may_have_icf_unsafe_pointers;\n    bVar34 = pcVar11 == Target::do_section_may_have_icf_unsafe_pointers;\n    if (!bVar34) {\n      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar23 = (byte *)".rodata._ZTV";\n    _Var25 = src_section_name._M_dataplus;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar30 = *pbVar23 < (byte)*_Var25._M_p;\n      bVar34 = *pbVar23 == *_Var25._M_p;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n    } while (bVar34);\n    bVar31 = false;\n    bVar30 = (!bVar30 && !bVar34) == bVar30;\n    if (!bVar30) {\n      lVar18 = 0x11;\n      pbVar23 = (byte *)".data.rel.ro._ZTV";\n      _Var25 = src_section_name._M_dataplus;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n        bVar30 = *pbVar23 == *_Var25._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      bVar34 = false;\n      bVar30 = (!bVar31 && !bVar30) == bVar31;\n      if (!bVar30) {\n        lVar18 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var25 = src_section_name._M_dataplus;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n          bVar30 = *pbVar23 == *_Var25._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n        } while (bVar30);\n        bVar31 = false;\n        bVar30 = (!bVar34 && !bVar30) == bVar34;\n        if (!bVar30) {\n          lVar18 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var25 = src_section_name._M_dataplus;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          } while (bVar30);\n          bVar34 = false;\n          bVar30 = (!bVar31 && !bVar30) == bVar31;\n          if (!bVar30) {\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar12 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar12 != '\0'))" ( (binary_expression "(parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar12 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar12 != '\0')" (parenthesized_expression "(parameters->options_->icf_status_ == ICF_SAFE)" ( (binary_expression "parameters->options_->icf_status_ == ICF_SAFE" (field_expression "parameters->options_->icf_status_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) == identifier) )) && (parenthesized_expression "(cVar12 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar12 != '\0')" ( (comma_expression "cVar12 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar12 != '\0'" (assignment_expression "cVar12 = (**(code **)(*(long *)param_2 + 0x90))(param_2)" identifier = (call_expression "(**(code **)(*(long *)param_2 + 0x90))(param_2)" (parenthesized_expression "(**(code **)(*(long *)param_2 + 0x90))" ( (pointer_expression "**(code **)(*(long *)param_2 + 0x90)" * (pointer_expression "*(code **)(*(long *)param_2 + 0x90)" * (cast_expression "(code **)(*(long *)param_2 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_2 + 0x90)" ( (binary_expression "*(long *)param_2 + 0x90" (pointer_expression "*(long *)param_2" * (cast_expression "(long *)param_2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) , (binary_expression "cVar12 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    pcVar11 = *(code **)(*(long *)param_2 + 0x10);\n    if (pcVar11 != Target::section_may_have_icf_unsafe_pointers) {\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00309642;\n    }\n    pcVar11 = *(code **)(*(long *)param_2 + 0x98);\n    bVar30 = pcVar11 < Target::do_section_may_have_icf_unsafe_pointers;\n    bVar34 = pcVar11 == Target::do_section_may_have_icf_unsafe_pointers;\n    if (!bVar34) {\n      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar23 = (byte *)".rodata._ZTV";\n    _Var25 = src_section_name._M_dataplus;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar30 = *pbVar23 < (byte)*_Var25._M_p;\n      bVar34 = *pbVar23 == *_Var25._M_p;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n    } while (bVar34);\n    bVar31 = false;\n    bVar30 = (!bVar30 && !bVar34) == bVar30;\n    if (!bVar30) {\n      lVar18 = 0x11;\n      pbVar23 = (byte *)".data.rel.ro._ZTV";\n      _Var25 = src_section_name._M_dataplus;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n        bVar30 = *pbVar23 == *_Var25._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      bVar34 = false;\n      bVar30 = (!bVar31 && !bVar30) == bVar31;\n      if (!bVar30) {\n        lVar18 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var25 = src_section_name._M_dataplus;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n          bVar30 = *pbVar23 == *_Var25._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n        } while (bVar30);\n        bVar31 = false;\n        bVar30 = (!bVar34 && !bVar30) == bVar34;\n        if (!bVar30) {\n          lVar18 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var25 = src_section_name._M_dataplus;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          } while (bVar30);\n          bVar34 = false;\n          bVar30 = (!bVar31 && !bVar30) == bVar31;\n          if (!bVar30) {\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "pcVar11 = *(code **)(*(long *)param_2 + 0x10);" (assignment_expression "pcVar11 = *(code **)(*(long *)param_2 + 0x10)" identifier = (pointer_expression "*(code **)(*(long *)param_2 + 0x10)" * (cast_expression "(code **)(*(long *)param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_2 + 0x10)" ( (binary_expression "*(long *)param_2 + 0x10" (pointer_expression "*(long *)param_2" * (cast_expression "(long *)param_2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (pcVar11 != Target::section_may_have_icf_unsafe_pointers) {\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00309642;\n    }" if (parenthesized_expression "(pcVar11 != Target::section_may_have_icf_unsafe_pointers)" ( (ERROR "pcVar11 != Target::" (binary_expression "pcVar11 != Target" identifier != identifier) : :) identifier )) (compound_statement "{\n                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */\n      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00309642;\n    }" { comment (expression_statement "local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);" (assignment_expression "local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p)" identifier = (call_expression "(*pcVar11)(param_2,src_section_name._M_dataplus._M_p)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(param_2,src_section_name._M_dataplus._M_p)" ( identifier , (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier) )))) ;) (goto_statement "goto LAB_00309642;" goto statement_identifier ;) })) (expression_statement "pcVar11 = *(code **)(*(long *)param_2 + 0x98);" (assignment_expression "pcVar11 = *(code **)(*(long *)param_2 + 0x98)" identifier = (pointer_expression "*(code **)(*(long *)param_2 + 0x98)" * (cast_expression "(code **)(*(long *)param_2 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_2 + 0x98)" ( (binary_expression "*(long *)param_2 + 0x98" (pointer_expression "*(long *)param_2" * (cast_expression "(long *)param_2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (ERROR "bVar30 = pcVar11 < Target::" (assignment_expression "bVar30 = pcVar11 < Target" identifier = (binary_expression "pcVar11 < Target" identifier < identifier)) : :) (expression_statement "do_section_may_have_icf_unsafe_pointers;" identifier ;) (ERROR "bVar34 = pcVar11 == Target::" (assignment_expression "bVar34 = pcVar11 == Target" identifier = (binary_expression "pcVar11 == Target" identifier == identifier)) : :) (expression_statement "do_section_may_have_icf_unsafe_pointers;" identifier ;) (if_statement "if (!bVar34) {\n      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00309642;\n    }" if (parenthesized_expression "(!bVar34)" ( (unary_expression "!bVar34" ! identifier) )) (compound_statement "{\n      local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00309642;\n    }" { (expression_statement "local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);" (assignment_expression "local_12d = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p)" identifier = (call_expression "(*pcVar11)(param_2,src_section_name._M_dataplus._M_p)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(param_2,src_section_name._M_dataplus._M_p)" ( identifier , (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier) )))) ;) (goto_statement "goto LAB_00309642;" goto statement_identifier ;) })) (expression_statement "lVar18 = 0xc;" (assignment_expression "lVar18 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)".rodata._ZTV";" (assignment_expression "pbVar23 = (byte *)".rodata._ZTV"" identifier = (cast_expression "(byte *)".rodata._ZTV"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rodata._ZTV"" " string_content "))) ;) (expression_statement "_Var25 = src_section_name._M_dataplus;" (assignment_expression "_Var25 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar30 = *pbVar23 < (byte)*_Var25._M_p;\n      bVar34 = *pbVar23 == *_Var25._M_p;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n    } while (bVar34);" do (compound_statement "{\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar30 = *pbVar23 < (byte)*_Var25._M_p;\n      bVar34 = *pbVar23 == *_Var25._M_p;\n      pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n      _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n    }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar30 = *pbVar23 < (byte)*_Var25._M_p;" (assignment_expression "bVar30 = *pbVar23 < (byte)*_Var25._M_p" identifier = (binary_expression "*pbVar23 < (byte)*_Var25._M_p" (pointer_expression "*pbVar23" * identifier) < (binary_expression "(byte)*_Var25._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar34 = *pbVar23 == *_Var25._M_p;" (assignment_expression "bVar34 = *pbVar23 == *_Var25._M_p" identifier = (binary_expression "*pbVar23 == *_Var25._M_p" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*_Var25._M_p" * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar35 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar35 * -2" identifier + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);" (assignment_expression "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" (field_expression "_Var25._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" ( (binary_expression "(byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1" (binary_expression "(byte *)_Var25._M_p + (ulong)bVar35 * -2" (cast_expression "(byte *)_Var25._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar34)" ( identifier )) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar30 = (!bVar30 && !bVar34) == bVar30;" (assignment_expression "bVar30 = (!bVar30 && !bVar34) == bVar30" identifier = (binary_expression "(!bVar30 && !bVar34) == bVar30" (parenthesized_expression "(!bVar30 && !bVar34)" ( (binary_expression "!bVar30 && !bVar34" (unary_expression "!bVar30" ! identifier) && (unary_expression "!bVar34" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar30) {\n      lVar18 = 0x11;\n      pbVar23 = (byte *)".data.rel.ro._ZTV";\n      _Var25 = src_section_name._M_dataplus;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n        bVar30 = *pbVar23 == *_Var25._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      bVar34 = false;\n      bVar30 = (!bVar31 && !bVar30) == bVar31;\n      if (!bVar30) {\n        lVar18 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var25 = src_section_name._M_dataplus;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n          bVar30 = *pbVar23 == *_Var25._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n        } while (bVar30);\n        bVar31 = false;\n        bVar30 = (!bVar34 && !bVar30) == bVar34;\n        if (!bVar30) {\n          lVar18 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var25 = src_section_name._M_dataplus;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          } while (bVar30);\n          bVar34 = false;\n          bVar30 = (!bVar31 && !bVar30) == bVar31;\n          if (!bVar30) {\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n      lVar18 = 0x11;\n      pbVar23 = (byte *)".data.rel.ro._ZTV";\n      _Var25 = src_section_name._M_dataplus;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n        bVar30 = *pbVar23 == *_Var25._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);\n      bVar34 = false;\n      bVar30 = (!bVar31 && !bVar30) == bVar31;\n      if (!bVar30) {\n        lVar18 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var25 = src_section_name._M_dataplus;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n          bVar30 = *pbVar23 == *_Var25._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n        } while (bVar30);\n        bVar31 = false;\n        bVar30 = (!bVar34 && !bVar30) == bVar34;\n        if (!bVar30) {\n          lVar18 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var25 = src_section_name._M_dataplus;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          } while (bVar30);\n          bVar34 = false;\n          bVar30 = (!bVar31 && !bVar30) == bVar31;\n          if (!bVar30) {\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }" { (expression_statement "lVar18 = 0x11;" (assignment_expression "lVar18 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)".data.rel.ro._ZTV";" (assignment_expression "pbVar23 = (byte *)".data.rel.ro._ZTV"" identifier = (cast_expression "(byte *)".data.rel.ro._ZTV"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".data.rel.ro._ZTV"" " string_content "))) ;) (expression_statement "_Var25 = src_section_name._M_dataplus;" (assignment_expression "_Var25 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n        bVar30 = *pbVar23 == *_Var25._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n      } while (bVar30);" do (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n        bVar30 = *pbVar23 == *_Var25._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n        _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n      }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar23 < (byte)*_Var25._M_p;" (assignment_expression "bVar31 = *pbVar23 < (byte)*_Var25._M_p" identifier = (binary_expression "*pbVar23 < (byte)*_Var25._M_p" (pointer_expression "*pbVar23" * identifier) < (binary_expression "(byte)*_Var25._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar30 = *pbVar23 == *_Var25._M_p;" (assignment_expression "bVar30 = *pbVar23 == *_Var25._M_p" identifier = (binary_expression "*pbVar23 == *_Var25._M_p" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*_Var25._M_p" * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar35 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar35 * -2" identifier + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);" (assignment_expression "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" (field_expression "_Var25._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" ( (binary_expression "(byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1" (binary_expression "(byte *)_Var25._M_p + (ulong)bVar35 * -2" (cast_expression "(byte *)_Var25._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar34 = false;" (assignment_expression "bVar34 = false" identifier = false) ;) (expression_statement "bVar30 = (!bVar31 && !bVar30) == bVar31;" (assignment_expression "bVar30 = (!bVar31 && !bVar30) == bVar31" identifier = (binary_expression "(!bVar31 && !bVar30) == bVar31" (parenthesized_expression "(!bVar31 && !bVar30)" ( (binary_expression "!bVar31 && !bVar30" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar30) {\n        lVar18 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var25 = src_section_name._M_dataplus;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n          bVar30 = *pbVar23 == *_Var25._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n        } while (bVar30);\n        bVar31 = false;\n        bVar30 = (!bVar34 && !bVar30) == bVar34;\n        if (!bVar30) {\n          lVar18 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var25 = src_section_name._M_dataplus;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          } while (bVar30);\n          bVar34 = false;\n          bVar30 = (!bVar31 && !bVar30) == bVar31;\n          if (!bVar30) {\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }\n        }\n      }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n        lVar18 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var25 = src_section_name._M_dataplus;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n          bVar30 = *pbVar23 == *_Var25._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n        } while (bVar30);\n        bVar31 = false;\n        bVar30 = (!bVar34 && !bVar30) == bVar34;\n        if (!bVar30) {\n          lVar18 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var25 = src_section_name._M_dataplus;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          } while (bVar30);\n          bVar34 = false;\n          bVar30 = (!bVar31 && !bVar30) == bVar31;\n          if (!bVar30) {\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }\n        }\n      }" { (expression_statement "lVar18 = 0xc;" (assignment_expression "lVar18 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)".rodata._ZTC";" (assignment_expression "pbVar23 = (byte *)".rodata._ZTC"" identifier = (cast_expression "(byte *)".rodata._ZTC"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rodata._ZTC"" " string_content "))) ;) (expression_statement "_Var25 = src_section_name._M_dataplus;" (assignment_expression "_Var25 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n          bVar30 = *pbVar23 == *_Var25._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n        } while (bVar30);" do (compound_statement "{\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n          bVar30 = *pbVar23 == *_Var25._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n        }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar34 = *pbVar23 < (byte)*_Var25._M_p;" (assignment_expression "bVar34 = *pbVar23 < (byte)*_Var25._M_p" identifier = (binary_expression "*pbVar23 < (byte)*_Var25._M_p" (pointer_expression "*pbVar23" * identifier) < (binary_expression "(byte)*_Var25._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar30 = *pbVar23 == *_Var25._M_p;" (assignment_expression "bVar30 = *pbVar23 == *_Var25._M_p" identifier = (binary_expression "*pbVar23 == *_Var25._M_p" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*_Var25._M_p" * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar35 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar35 * -2" identifier + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);" (assignment_expression "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" (field_expression "_Var25._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" ( (binary_expression "(byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1" (binary_expression "(byte *)_Var25._M_p + (ulong)bVar35 * -2" (cast_expression "(byte *)_Var25._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar30 = (!bVar34 && !bVar30) == bVar34;" (assignment_expression "bVar30 = (!bVar34 && !bVar30) == bVar34" identifier = (binary_expression "(!bVar34 && !bVar30) == bVar34" (parenthesized_expression "(!bVar34 && !bVar30)" ( (binary_expression "!bVar34 && !bVar30" (unary_expression "!bVar34" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar30) {\n          lVar18 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var25 = src_section_name._M_dataplus;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          } while (bVar30);\n          bVar34 = false;\n          bVar30 = (!bVar31 && !bVar30) == bVar31;\n          if (!bVar30) {\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }\n        }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n          lVar18 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var25 = src_section_name._M_dataplus;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          } while (bVar30);\n          bVar34 = false;\n          bVar30 = (!bVar31 && !bVar30) == bVar31;\n          if (!bVar30) {\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }\n        }" { (expression_statement "lVar18 = 0x11;" (assignment_expression "lVar18 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)".data.rel.ro._ZTC";" (assignment_expression "pbVar23 = (byte *)".data.rel.ro._ZTC"" identifier = (cast_expression "(byte *)".data.rel.ro._ZTC"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".data.rel.ro._ZTC"" " string_content "))) ;) (expression_statement "_Var25 = src_section_name._M_dataplus;" (assignment_expression "_Var25 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          } while (bVar30);" do (compound_statement "{\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar31 = *pbVar23 < (byte)*_Var25._M_p;\n            bVar30 = *pbVar23 == *_Var25._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n          }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar23 < (byte)*_Var25._M_p;" (assignment_expression "bVar31 = *pbVar23 < (byte)*_Var25._M_p" identifier = (binary_expression "*pbVar23 < (byte)*_Var25._M_p" (pointer_expression "*pbVar23" * identifier) < (binary_expression "(byte)*_Var25._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar30 = *pbVar23 == *_Var25._M_p;" (assignment_expression "bVar30 = *pbVar23 == *_Var25._M_p" identifier = (binary_expression "*pbVar23 == *_Var25._M_p" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*_Var25._M_p" * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar35 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar35 * -2" identifier + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);" (assignment_expression "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" (field_expression "_Var25._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" ( (binary_expression "(byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1" (binary_expression "(byte *)_Var25._M_p + (ulong)bVar35 * -2" (cast_expression "(byte *)_Var25._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar34 = false;" (assignment_expression "bVar34 = false" identifier = false) ;) (expression_statement "bVar30 = (!bVar31 && !bVar30) == bVar31;" (assignment_expression "bVar30 = (!bVar31 && !bVar30) == bVar31" identifier = (binary_expression "(!bVar31 && !bVar30) == bVar31" (parenthesized_expression "(!bVar31 && !bVar30)" ( (binary_expression "!bVar31 && !bVar30" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar30) {\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n            lVar18 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var25 = src_section_name._M_dataplus;\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);\n            local_12d = (!bVar34 && !bVar30) != bVar34;\n            goto LAB_00309642;\n          }" { (expression_statement "lVar18 = 9;" (assignment_expression "lVar18 = 9" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)".eh_frame";" (assignment_expression "pbVar23 = (byte *)".eh_frame"" identifier = (cast_expression "(byte *)".eh_frame"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".eh_frame"" " string_content "))) ;) (expression_statement "_Var25 = src_section_name._M_dataplus;" (assignment_expression "_Var25 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            } while (bVar30);" do (compound_statement "{\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar34 = *pbVar23 < (byte)*_Var25._M_p;\n              bVar30 = *pbVar23 == *_Var25._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n              _Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);\n            }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar34 = *pbVar23 < (byte)*_Var25._M_p;" (assignment_expression "bVar34 = *pbVar23 < (byte)*_Var25._M_p" identifier = (binary_expression "*pbVar23 < (byte)*_Var25._M_p" (pointer_expression "*pbVar23" * identifier) < (binary_expression "(byte)*_Var25._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar30 = *pbVar23 == *_Var25._M_p;" (assignment_expression "bVar30 = *pbVar23 == *_Var25._M_p" identifier = (binary_expression "*pbVar23 == *_Var25._M_p" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*_Var25._M_p" * (field_expression "_Var25._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar35 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar35 * -2" identifier + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1);" (assignment_expression "_Var25._M_p = (pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" (field_expression "_Var25._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1)" ( (binary_expression "(byte *)_Var25._M_p + (ulong)bVar35 * -2 + 1" (binary_expression "(byte *)_Var25._M_p + (ulong)bVar35 * -2" (cast_expression "(byte *)_Var25._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var25._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "local_12d = (!bVar34 && !bVar30) != bVar34;" (assignment_expression "local_12d = (!bVar34 && !bVar30) != bVar34" identifier = (binary_expression "(!bVar34 && !bVar30) != bVar34" (parenthesized_expression "(!bVar34 && !bVar30)" ( (binary_expression "!bVar34 && !bVar30" (unary_expression "!bVar34" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00309642;" goto statement_identifier ;) })) })) })) })) })) (expression_statement "local_12d = '\0';" (assignment_expression "local_12d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00309642:\n  if (prelocs != (uchar *)0x0) {\n    local_138 = (_func_int_varargs **)0x0;\n    local_100 = (uchar *)0x0;\n    do {\n      uVar4 = local_108[2];\n      uVar28 = local_108[1] >> 8;\n      if (uVar28 < reloc_count) {\n        if (param_8 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        uVar22 = uVar28 << 4;\n        uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n        uVar27 = (ulong)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }\n        local_110 = (Output_segment *)target;\n        if ((local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )) {\nLAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < *(uint *)&target[1].field_0x10) {\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);\n        if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];\n        if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;\n        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }\n        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }\n        pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar18 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var24 = pp_Var10;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        } while ((bool)uVar33);\n        bVar30 = false;\n        bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n        if (bVar34) {\n          pp_Var10 = pp_Var10 + 1;\n        }\n        else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }\n        local_138 = pp_Var10;\n        if (bVar32) {\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }\n        if (bVar19 != 0) {\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (prelocs != local_100);\n  }" statement_identifier : (if_statement "if (prelocs != (uchar *)0x0) {\n    local_138 = (_func_int_varargs **)0x0;\n    local_100 = (uchar *)0x0;\n    do {\n      uVar4 = local_108[2];\n      uVar28 = local_108[1] >> 8;\n      if (uVar28 < reloc_count) {\n        if (param_8 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        uVar22 = uVar28 << 4;\n        uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n        uVar27 = (ulong)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }\n        local_110 = (Output_segment *)target;\n        if ((local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )) {\nLAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < *(uint *)&target[1].field_0x10) {\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);\n        if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];\n        if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;\n        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }\n        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }\n        pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar18 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var24 = pp_Var10;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        } while ((bool)uVar33);\n        bVar30 = false;\n        bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n        if (bVar34) {\n          pp_Var10 = pp_Var10 + 1;\n        }\n        else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }\n        local_138 = pp_Var10;\n        if (bVar32) {\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }\n        if (bVar19 != 0) {\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (prelocs != local_100);\n  }" if (parenthesized_expression "(prelocs != (uchar *)0x0)" ( (binary_expression "prelocs != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_138 = (_func_int_varargs **)0x0;\n    local_100 = (uchar *)0x0;\n    do {\n      uVar4 = local_108[2];\n      uVar28 = local_108[1] >> 8;\n      if (uVar28 < reloc_count) {\n        if (param_8 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        uVar22 = uVar28 << 4;\n        uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n        uVar27 = (ulong)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }\n        local_110 = (Output_segment *)target;\n        if ((local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )) {\nLAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < *(uint *)&target[1].field_0x10) {\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);\n        if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];\n        if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;\n        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }\n        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }\n        pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar18 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var24 = pp_Var10;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        } while ((bool)uVar33);\n        bVar30 = false;\n        bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n        if (bVar34) {\n          pp_Var10 = pp_Var10 + 1;\n        }\n        else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }\n        local_138 = pp_Var10;\n        if (bVar32) {\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }\n        if (bVar19 != 0) {\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (prelocs != local_100);\n  }" { (expression_statement "local_138 = (_func_int_varargs **)0x0;" (assignment_expression "local_138 = (_func_int_varargs **)0x0" identifier = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_100 = (uchar *)0x0;" (assignment_expression "local_100 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      uVar4 = local_108[2];\n      uVar28 = local_108[1] >> 8;\n      if (uVar28 < reloc_count) {\n        if (param_8 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        uVar22 = uVar28 << 4;\n        uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n        uVar27 = (ulong)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }\n        local_110 = (Output_segment *)target;\n        if ((local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )) {\nLAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < *(uint *)&target[1].field_0x10) {\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);\n        if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];\n        if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;\n        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }\n        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }\n        pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar18 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var24 = pp_Var10;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        } while ((bool)uVar33);\n        bVar30 = false;\n        bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n        if (bVar34) {\n          pp_Var10 = pp_Var10 + 1;\n        }\n        else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }\n        local_138 = pp_Var10;\n        if (bVar32) {\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }\n        if (bVar19 != 0) {\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (prelocs != local_100);" do (compound_statement "{\n      uVar4 = local_108[2];\n      uVar28 = local_108[1] >> 8;\n      if (uVar28 < reloc_count) {\n        if (param_8 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        uVar22 = uVar28 << 4;\n        uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n        uVar27 = (ulong)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }\n        local_110 = (Output_segment *)target;\n        if ((local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )) {\nLAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < *(uint *)&target[1].field_0x10) {\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);\n        if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];\n        if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;\n        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }\n        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }\n        pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar18 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var24 = pp_Var10;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        } while ((bool)uVar33);\n        bVar30 = false;\n        bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n        if (bVar34) {\n          pp_Var10 = pp_Var10 + 1;\n        }\n        else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }\n        local_138 = pp_Var10;\n        if (bVar32) {\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }\n        if (bVar19 != 0) {\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    }" { (expression_statement "uVar4 = local_108[2];" (assignment_expression "uVar4 = local_108[2]" identifier = (subscript_expression "local_108[2]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = local_108[1] >> 8;" (assignment_expression "uVar28 = local_108[1] >> 8" identifier = (binary_expression "local_108[1] >> 8" (subscript_expression "local_108[1]" identifier [ number_literal ]) >> number_literal)) ;) (if_statement "if (uVar28 < reloc_count) {\n        if (param_8 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        uVar22 = uVar28 << 4;\n        uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n        uVar27 = (ulong)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }\n        local_110 = (Output_segment *)target;\n        if ((local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )) {\nLAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar28 < *(uint *)&target[1].field_0x10) {\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);\n        if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];\n        if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;\n        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }\n        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }\n        pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar18 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var24 = pp_Var10;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        } while ((bool)uVar33);\n        bVar30 = false;\n        bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n        if (bVar34) {\n          pp_Var10 = pp_Var10 + 1;\n        }\n        else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }\n        local_138 = pp_Var10;\n        if (bVar32) {\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }\n        if (bVar19 != 0) {\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" if (parenthesized_expression "(uVar28 < reloc_count)" ( (binary_expression "uVar28 < reloc_count" identifier < identifier) )) (compound_statement "{\n        if (param_8 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        uVar22 = uVar28 << 4;\n        uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n        uVar27 = (ulong)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }\n        local_110 = (Output_segment *)target;\n        if ((local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )) {\nLAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_8 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" if (parenthesized_expression "(param_8 == (Output_section *)0x0)" ( (binary_expression "param_8 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");" (call_expression "do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs")" identifier (argument_list "("../../gold/gc.h",0xea,"gc_process_relocs")" ( (string_literal ""../../gold/gc.h"" " string_content ") , number_literal , (string_literal ""gc_process_relocs"" " string_content ") ))) ;) })) (expression_statement "uVar22 = uVar28 << 4;" (assignment_expression "uVar22 = uVar28 << 4" identifier = (binary_expression "uVar28 << 4" identifier << number_literal)) ;) (expression_statement "uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);" (assignment_expression "uVar3 = *(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6)" identifier = (pointer_expression "*(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6)" * (cast_expression "(ushort *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6)" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6" (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar22" (cast_expression "(long)&(param_8->super_Output_data).address_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data).address_" & (field_expression "(param_8->super_Output_data).address_" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "uVar27 = (ulong)uVar3;" (assignment_expression "uVar27 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 < 0xff00) {\nLAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }" if (parenthesized_expression "(uVar3 < 0xff00)" ( (binary_expression "uVar3 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }\n        }" { (labeled_statement "LAB_003097e5:\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);" statement_identifier : (expression_statement "local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);" (assignment_expression "local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4)" identifier = (pointer_expression "*(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4)" * (cast_expression "(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4)" ( (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4" (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22" (cast_expression "(long)&(param_8->super_Output_data)._vptr_Output_data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data)._vptr_Output_data" & (field_expression "(param_8->super_Output_data)._vptr_Output_data" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;)) (expression_statement "pRVar26 = (Relobj *)(ulong)local_124;" (assignment_expression "pRVar26 = (Relobj *)(ulong)local_124" identifier = (cast_expression "(Relobj *)(ulong)local_124" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)local_124" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "local_124 = uVar4 + local_124;" (assignment_expression "local_124 = uVar4 + local_124" identifier = (binary_expression "uVar4 + local_124" identifier + identifier)) ;) (if_statement "if (bVar32) {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }" if (parenthesized_expression "(bVar32)" ( identifier )) (compound_statement "{\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)target;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar30 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;\nLAB_003096e8:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_150,(Symbol **)&src_id);\n            goto LAB_00309703;\n          }" { (expression_statement "src_id.second = (uint)uVar27;" (assignment_expression "src_id.second = (uint)uVar27" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "src_id.first = (Relobj *)target;" (assignment_expression "src_id.first = (Relobj *)target" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)target" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::" (comma_expression "std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n            vector<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "vector<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std" (binary_expression "Relobj*,_unsigned_int>_>_>\n            ::emplace_back" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);" (binary_expression "Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" ( (comma_expression "&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id" (pointer_expression "&local_158->section_info" & (field_expression "local_158->section_info" identifier -> field_identifier)) , (binary_expression "(pair<gold::Relobj*,_unsigned_int> *)&src_id" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> *)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> *" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)) )) & identifier)) ))) ;) (expression_statement "bVar30 = true;" (assignment_expression "bVar30 = true" identifier = true) ;) (if_statement "if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3) goto LAB_0030982d;" if (parenthesized_expression "((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3)" ( (binary_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)\n                == 3" (parenthesized_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)" ( (binary_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf" (pointer_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4)" * (cast_expression "(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4)" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4" (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar22" (cast_expression "(long)&(param_8->super_Output_data).address_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data).address_" & (field_expression "(param_8->super_Output_data).address_" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0030982d;" goto statement_identifier ;)) (labeled_statement "LAB_003096e8:\n            src_id.first = (Relobj *)0x0;" statement_identifier : (expression_statement "src_id.first = (Relobj *)0x0;" (assignment_expression "src_id.first = (Relobj *)0x0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::" (comma_expression "std::vector<gold::Symbol*,_std" identifier (ERROR "::vector<gold::Symbol*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol*>_>::emplace_back<gold" (binary_expression "Symbol*>_>::emplace_back" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*>\n                      (local_150,(Symbol **)&src_id);" (binary_expression "Symbol*>\n                      (local_150,(Symbol **)&src_id)" identifier * (ERROR ">" >) (parenthesized_expression "(local_150,(Symbol **)&src_id)" ( (comma_expression "local_150,(Symbol **)&src_id" identifier , (cast_expression "(Symbol **)&src_id" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&src_id" & identifier))) ))) ;) (goto_statement "goto LAB_00309703;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }" else (compound_statement "{\n          if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }\n          local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\n          if (!bVar32) goto LAB_00309772;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */\n          std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar30 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;\nLAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_150,(Symbol **)&src_id);\nLAB_00309703:\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);\n          if (!bVar30) goto LAB_00309772;\n        }" { (if_statement "if (uVar3 == 0xffff) {\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }" if (parenthesized_expression "(uVar3 == 0xffff)" ( (binary_expression "uVar3 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            this = target->got_tlsdesc_;\n            if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }\n            uVar28 = Xindex::sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);\n            uVar27 = (ulong)uVar28;\n            goto LAB_003097e5;\n          }" { (expression_statement "this = target->got_tlsdesc_;" (assignment_expression "this = target->got_tlsdesc_" identifier = (field_expression "target->got_tlsdesc_" identifier -> field_identifier)) ;) (if_statement "if (this == (Output_data_got<32,_false> *)0x0) {\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }" if (parenthesized_expression "(this == (Output_data_got<32,_false> *)0x0)" ( (binary_expression "this == (Output_data_got<32,_false> *)0x0)" identifier == (parenthesized_expression "(Output_data_got<32,_false> *)0x0)" ( (comma_expression "Output_data_got<32,_false> *)0x0" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "_false> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (compound_statement "{\n              this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);\n              target->got_tlsdesc_ = this;\n            }" { (expression_statement "this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target);" (assignment_expression "this = (Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target)" identifier = (call_expression "(Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))(target)" (call_expression "(Output_data_got<32,_false> *)(**(code **)(*(long *)target + 0xd8))" (parenthesized_expression "(Output_data_got<32,_false> *)" ( (comma_expression "Output_data_got<32,_false> *" (binary_expression "Output_data_got<32" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(**(code **)(*(long *)target + 0xd8))" ( (pointer_expression "**(code **)(*(long *)target + 0xd8)" * (pointer_expression "*(code **)(*(long *)target + 0xd8)" * (cast_expression "(code **)(*(long *)target + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)target + 0xd8)" ( (binary_expression "*(long *)target + 0xd8" (pointer_expression "*(long *)target" * (cast_expression "(long *)target" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ))) (argument_list "(target)" ( identifier )))) ;) (expression_statement "target->got_tlsdesc_ = this;" (assignment_expression "target->got_tlsdesc_ = this" (field_expression "target->got_tlsdesc_" identifier -> field_identifier) = identifier) ;) })) (ERROR "uVar28 = Xindex::" (assignment_expression "uVar28 = Xindex" identifier = identifier) : :) (expression_statement "sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28);" (call_expression "sym_xindex_to_shndx((Xindex *)this,(Object *)target,uVar28)" identifier (argument_list "((Xindex *)this,(Object *)target,uVar28)" ( (cast_expression "(Xindex *)this" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Object *)target" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "uVar27 = (ulong)uVar28;" (assignment_expression "uVar27 = (ulong)uVar28" identifier = (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_003097e5;" goto statement_identifier ;) })) (expression_statement "local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4);" (assignment_expression "local_124 = *(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4)" identifier = (pointer_expression "*(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4)" * (cast_expression "(uint *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4)" ( (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22 + 4" (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                               (ulong)uVar22" (cast_expression "(long)&(param_8->super_Output_data)._vptr_Output_data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data)._vptr_Output_data" & (field_expression "(param_8->super_Output_data)._vptr_Output_data" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "pRVar26 = (Relobj *)(ulong)local_124;" (assignment_expression "pRVar26 = (Relobj *)(ulong)local_124" identifier = (cast_expression "(Relobj *)(ulong)local_124" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)local_124" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "local_124 = uVar4 + local_124;" (assignment_expression "local_124 = uVar4 + local_124" identifier = (binary_expression "uVar4 + local_124" identifier + identifier)) ;) (if_statement "if (!bVar32) goto LAB_00309772;" if (parenthesized_expression "(!bVar32)" ( (unary_expression "!bVar32" ! identifier) )) (goto_statement "goto LAB_00309772;" goto statement_identifier ;)) (expression_statement "src_id.first = (Relobj *)0x0;" (assignment_expression "src_id.first = (Relobj *)0x0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;" (assignment_expression "src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000" (field_expression "src_id._8_8_" identifier . field_identifier) = (binary_expression "src_id._8_8_ & 0xffffffff00000000" (field_expression "src_id._8_8_" identifier . field_identifier) & number_literal)) ;) comment (ERROR "std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std::pair<gold::" (comma_expression "std::\n          vector<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n          vector<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "vector<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>\n          ::emplace_back<std" (binary_expression "Relobj*,_unsigned_int>_>_>\n          ::emplace_back" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);" (binary_expression "Relobj*,_unsigned_int>_>\n                    (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" ( (comma_expression "&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id" (pointer_expression "&local_158->section_info" & (field_expression "local_158->section_info" identifier -> field_identifier)) , (binary_expression "(pair<gold::Relobj*,_unsigned_int> *)&src_id" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> *)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> *" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)) )) & identifier)) ))) ;) (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;) (if_statement "if ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3) goto LAB_003096e8;" if (parenthesized_expression "((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3)" ( (binary_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) !=\n              3" (parenthesized_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)" ( (binary_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf" (pointer_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4)" * (cast_expression "(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4)" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4" (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar22" (cast_expression "(long)&(param_8->super_Output_data).address_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data).address_" & (field_expression "(param_8->super_Output_data).address_" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003096e8;" goto statement_identifier ;)) (labeled_statement "LAB_0030982d:\n          src_id.first = (Relobj *)0xffffffffffffffff;" statement_identifier : (expression_statement "src_id.first = (Relobj *)0xffffffffffffffff;" (assignment_expression "src_id.first = (Relobj *)0xffffffffffffffff" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0xffffffffffffffff" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::" (comma_expression "std::vector<gold::Symbol*,_std" identifier (ERROR "::vector<gold::Symbol*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol*>_>::emplace_back<gold" (binary_expression "Symbol*>_>::emplace_back" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*>\n                    (local_150,(Symbol **)&src_id);" (binary_expression "Symbol*>\n                    (local_150,(Symbol **)&src_id)" identifier * (ERROR ">" >) (parenthesized_expression "(local_150,(Symbol **)&src_id)" ( (comma_expression "local_150,(Symbol **)&src_id" identifier , (cast_expression "(Symbol **)&src_id" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&src_id" & identifier))) ))) ;) (labeled_statement "LAB_00309703:\n          src_id.first = pRVar26;" statement_identifier : (expression_statement "src_id.first = pRVar26;" (assignment_expression "src_id.first = pRVar26" (field_expression "src_id.first" identifier . field_identifier) = identifier) ;)) (expression_statement "src_id._8_8_ = (long)(int)uVar4;" (assignment_expression "src_id._8_8_ = (long)(int)uVar4" (field_expression "src_id._8_8_" identifier . field_identifier) = (cast_expression "(long)(int)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);" statement_identifier (ERROR "::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>,_std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "_long_long_int>_>_>\n          ::emplace_back" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);" (comma_expression "pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id)" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id)" (binary_expression "_long_long_int>_" identifier > identifier) > (parenthesized_expression "(local_160,(pair<long_long_int,_long_long_int> *)&src_id)" ( (comma_expression "local_160,(pair<long_long_int,_long_long_int> *)&src_id" identifier , (binary_expression "(pair<long_long_int,_long_long_int> *)&src_id" (parenthesized_expression "(pair<long_long_int,_long_long_int> *)" ( (comma_expression "pair<long_long_int,_long_long_int> *" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int> *" identifier > (pointer_expression "*" * identifier))) )) & identifier)) )))) ;)) (expression_statement "src_id.first = (Relobj *)(ulong)*local_108;" (assignment_expression "src_id.first = (Relobj *)(ulong)*local_108" (field_expression "src_id.first" identifier . field_identifier) = (binary_expression "(Relobj *)(ulong)*local_108" (cast_expression "(Relobj *)(ulong)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * identifier)) ;) (expression_statement "iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;" (assignment_expression "iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish" (field_expression "iVar5._M_current" identifier . field_identifier) = (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish" (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl" (parenthesized_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )" ( (ERROR "local_140->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_140->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_140->super__Vector_base<long_unsigned_int" (field_expression "local_140->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_unsigned_int>_>" (binary_expression "allocator<long_unsigned_int>_" (binary_expression "allocator<long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }" if (parenthesized_expression "(iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage)" ( (binary_expression "iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage" (field_expression "iVar5._M_current" identifier . field_identifier) == (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage" (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl" (parenthesized_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)" ( (ERROR "local_140->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_140->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_140->super__Vector_base<long_unsigned_int" (field_expression "local_140->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_unsigned_int>_>" (binary_expression "allocator<long_unsigned_int>_" (binary_expression "allocator<long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }" { (labeled_statement "std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);" statement_identifier (ERROR "::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>:" : : (comma_expression "vector<long_unsigned_int,_std" (binary_expression "vector<long_unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<long_unsigned_int>_" (binary_expression "allocator<long_unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "_M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);" (binary_expression "_M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id)" (binary_expression "_M_realloc_insert<long_unsigned_int_const" identifier < identifier) (ERROR "&" &) > (parenthesized_expression "(local_140,iVar5,(ulong *)&src_id)" ( (comma_expression "local_140,iVar5,(ulong *)&src_id" identifier , (comma_expression "iVar5,(ulong *)&src_id" identifier , (cast_expression "(ulong *)&src_id" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier)))) ))) ;)) }) (else_clause "else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }" else (compound_statement "{\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }" { (expression_statement "*iVar5._M_current = (ulong)src_id.first;" (assignment_expression "*iVar5._M_current = (ulong)src_id.first" (pointer_expression "*iVar5._M_current" * (field_expression "iVar5._M_current" identifier . field_identifier)) = (cast_expression "(ulong)src_id.first" ( (type_descriptor "ulong" type_identifier) ) (field_expression "src_id.first" identifier . field_identifier))) ;) (expression_statement "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;" (assignment_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1" (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)" ( (ERROR "local_140->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_140->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_140->super__Vector_base<long_unsigned_int" (field_expression "local_140->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_unsigned_int>_>" (binary_expression "allocator<long_unsigned_int>_" (binary_expression "allocator<long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "iVar5._M_current + 1" (field_expression "iVar5._M_current" identifier . field_identifier) + number_literal)) ;) }))) (expression_statement "dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000);" (assignment_expression "dst_id.first = (Relobj *)((ulong)dst_id.first & 0xffffffff00000000)" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)((ulong)dst_id.first & 0xffffffff00000000)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)dst_id.first & 0xffffffff00000000)" ( (binary_expression "(ulong)dst_id.first & 0xffffffff00000000" (cast_expression "(ulong)dst_id.first" ( (type_descriptor "ulong" type_identifier) ) (field_expression "dst_id.first" identifier . field_identifier)) & number_literal) )))) ;) (labeled_statement "std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);" statement_identifier (ERROR "::vector<unsigned_int,_std::allocator<unsigned_int>_>:" : : (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id);" (binary_expression "emplace_back<unsigned_int>\n                    (local_168,(uint *)&dst_id)" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(local_168,(uint *)&dst_id)" ( (comma_expression "local_168,(uint *)&dst_id" identifier , (cast_expression "(uint *)&dst_id" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dst_id" & identifier))) ))) ;)) (if_statement "if (!bVar30) goto LAB_00309772;" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (goto_statement "goto LAB_00309772;" goto statement_identifier ;)) }))) (expression_statement "local_110 = (Output_segment *)target;" (assignment_expression "local_110 = (Output_segment *)target" identifier = (cast_expression "(Output_segment *)target" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )) {\nLAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;\n        }\n        else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           ))" ( (binary_expression "(local_12d == '\0') ||\n           ((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )" (parenthesized_expression "(local_12d == '\0')" ( (binary_expression "local_12d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1\n           )" ( (binary_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf) == 1" (parenthesized_expression "(*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf)" ( (binary_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4) & 0xf" (pointer_expression "*(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4)" * (cast_expression "(byte *)((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4)" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 4" (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar22" (cast_expression "(long)&(param_8->super_Output_data).address_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data).address_" & (field_expression "(param_8->super_Output_data).address_" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;\n        }" { (labeled_statement "LAB_003098d8:\n          if (shndx != (uint)uVar27) goto LAB_003098ec;" statement_identifier : (if_statement "if (shndx != (uint)uVar27) goto LAB_003098ec;" if (parenthesized_expression "(shndx != (uint)uVar27)" ( (binary_expression "shndx != (uint)uVar27" identifier != (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (goto_statement "goto LAB_003098ec;" goto statement_identifier ;))) }) (else_clause "else {\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }\n          if (shndx == (uint)uVar27) goto LAB_00309772;\nLAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }" { (expression_statement "pGVar13 = parameters->options_;" (assignment_expression "pGVar13 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pGVar13 == (General_options *)0x0)" ( (binary_expression "pGVar13 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if ((pGVar13->shared_).value != false) {\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }" if (parenthesized_expression "((pGVar13->shared_).value != false)" ( (binary_expression "(pGVar13->shared_).value != false" (field_expression "(pGVar13->shared_).value" (parenthesized_expression "(pGVar13->shared_)" ( (field_expression "pGVar13->shared_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n            local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);\n            __node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n            local_a8 = target;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);\n            goto LAB_003098d8;\n          }" { (expression_statement "local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6);" (assignment_expression "local_a0 = (uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6)" identifier = (binary_expression "(uint)*(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)\n                              ((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6)" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar22 + 6" (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)uVar22" (cast_expression "(long)&(param_8->super_Output_data).address_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(param_8->super_Output_data).address_" & (field_expression "(param_8->super_Output_data).address_" (parenthesized_expression "(param_8->super_Output_data)" ( (field_expression "param_8->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "__node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;" (assignment_expression "__node_gen_2._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_" (field_expression "__node_gen_2._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&symtab->icf_->fptr_section_id_" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&symtab->icf_->fptr_section_id_" & (field_expression "symtab->icf_->fptr_section_id_" (field_expression "symtab->icf_" identifier -> field_identifier) -> field_identifier)))) ;) (expression_statement "local_a8 = target;" (assignment_expression "local_a8 = target" identifier = identifier) ;) (ERROR "std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (comma_expression "std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std::pair<gold::Relobj*,_unsigned_int>" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n            ::\n            _M_insert<std" identifier , (binary_expression "_true>_>\n            ::\n            _M_insert<std" (binary_expression "_true>_>\n            ::\n            _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1)" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1)" ( (parenthesized_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1)" ( (ERROR "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Identity" : : identifier : : identifier) , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1" identifier , (comma_expression "_true>_>\n                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1" (binary_expression "_true>_>\n                        *)__node_gen_2._M_h" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)__node_gen_2._M_h" * (ERROR ")" )) (field_expression "__node_gen_2._M_h" identifier . field_identifier))) , (comma_expression "&local_a8,&__node_gen_2,1" (pointer_expression "&local_a8" & identifier) , (comma_expression "&__node_gen_2,1" (pointer_expression "&__node_gen_2" & identifier) , number_literal))))) )) )))) ;))))) (goto_statement "goto LAB_003098d8;" goto statement_identifier ;) })) (if_statement "if (shndx == (uint)uVar27) goto LAB_00309772;" if (parenthesized_expression "(shndx == (uint)uVar27)" ( (binary_expression "shndx == (uint)uVar27" identifier == (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (goto_statement "goto LAB_00309772;" goto statement_identifier ;)) (labeled_statement "LAB_00309900:\n          if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }" statement_identifier : (if_statement "if ((pGVar13->gc_sections_).value != false) {\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }" if (parenthesized_expression "((pGVar13->gc_sections_).value != false)" ( (binary_expression "(pGVar13->gc_sections_).value != false" (field_expression "(pGVar13->gc_sections_).value" (parenthesized_expression "(pGVar13->gc_sections_)" ( (field_expression "pGVar13->gc_sections_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n            dst_id.second = (uint)uVar27;\n            pGVar6 = symtab->gc_;\n            p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n            dst_id.first = (Relobj *)local_110;\n            p_Var17 = &p_Var1->_M_header;\n            cVar14._M_node = &p_Var1->_M_header;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = shndx;\n            if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);\n            pTVar8 = parameters->target_;\n            if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }\n            if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }" { (expression_statement "dst_id.second = (uint)uVar27;" (assignment_expression "dst_id.second = (uint)uVar27" (field_expression "dst_id.second" identifier . field_identifier) = (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pGVar6 = symtab->gc_;" (assignment_expression "pGVar6 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (expression_statement "p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;" (assignment_expression "p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" identifier = (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar6->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar6->section_reloc_map_)" ( (field_expression "pGVar6->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar6->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar6->section_reloc_map_)" ( (field_expression "pGVar6->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "dst_id.first = (Relobj *)local_110;" (assignment_expression "dst_id.first = (Relobj *)local_110" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_110" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var17 = &p_Var1->_M_header;" (assignment_expression "p_Var17 = &p_Var1->_M_header" identifier = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (expression_statement "cVar14._M_node = &p_Var1->_M_header;" (assignment_expression "cVar14._M_node = &p_Var1->_M_header" (field_expression "cVar14._M_node" identifier . field_identifier) = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (expression_statement "src_id_2.first = (Relobj *)target;" (assignment_expression "src_id_2.first = (Relobj *)target" (field_expression "src_id_2.first" identifier . field_identifier) = (cast_expression "(Relobj *)target" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id_2.second = shndx;" (assignment_expression "src_id_2.second = shndx" (field_expression "src_id_2.second" identifier . field_identifier) = identifier) ;) (if_statement "if (p_Var7 == (_Base_ptr)0x0) {\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }\n            else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }" if (parenthesized_expression "(p_Var7 == (_Base_ptr)0x0)" ( (binary_expression "p_Var7 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;\n              cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);\n            }" { (labeled_statement "LAB_003099a8:\n              local_c8._M_head_impl = &src_id_2;" statement_identifier : (expression_statement "local_c8._M_head_impl = &src_id_2;" (assignment_expression "local_c8._M_head_impl = &src_id_2" (field_expression "local_c8._M_head_impl" identifier . field_identifier) = (pointer_expression "&src_id_2" & identifier)) ;)) (ERROR "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::" (comma_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std::pair<gold" (binary_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std::\n                   _Rb_tree<std" (assignment_expression "cVar14._M_node =\n                   (_Base_ptr)\n                   std" (field_expression "cVar14._M_node" identifier . field_identifier) = (cast_expression "(_Base_ptr)\n                   std" ( (type_descriptor "_Base_ptr" type_identifier) ) identifier)) (ERROR "::\n                   _Rb_tree" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::unordered_set" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Section_id_hash" : : identifier) , identifier) : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , (binary_expression "_unsigned_int>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique<const_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_>\n                   ::\n                   _M_emplace_hint_unique" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "piecewise_construct_t&,_std" identifier & (ERROR "," ,) identifier) : : (binary_expression "tuple<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>&>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (pointer_expression "&>,_std" & (ERROR ">," > ,) identifier)) : :) (expression_statement "tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea);" (binary_expression "tuple<>_>\n                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea)" (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > (parenthesized_expression "(&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea)" ( (ERROR "&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std::" (comma_expression "&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                              (piecewise_construct_t *)&std" (pointer_expression "&(pGVar6->section_reloc_map_)._M_t" & (field_expression "(pGVar6->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar6->section_reloc_map_)" ( (field_expression "pGVar6->section_reloc_map_" identifier -> field_identifier) )) . field_identifier)) , (comma_expression "cVar14,\n                              (piecewise_construct_t *)&std" identifier , (cast_expression "(piecewise_construct_t *)&std" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&std" & identifier)))) : :) (comma_expression "piecewise_construct,\n                              (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea" identifier , (comma_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8,\n                              &local_ea" (binary_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c8" (parenthesized_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)" ( (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "tuple<const_std::pair<gold" (binary_expression "tuple<const_std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "&> *" & (ERROR ">" >) (pointer_expression "*" * identifier))) )) & identifier) , (pointer_expression "&local_ea" & identifier))) ))) ;) }) (else_clause "else {\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }" else (compound_statement "{\n              do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;\n            }" { (do_statement "do {\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);" do (compound_statement "{\n                while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }\n                p_Var17 = cVar14._M_node;\n                p_Var7 = (cVar14._M_node)->_M_left;\n              }" { (while_statement "while ((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }" while (parenthesized_expression "((cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx)))))" ( (parenthesized_expression "(cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))" ( (comma_expression "cVar14._M_node = p_Var7,\n                       *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx)))" (assignment_expression "cVar14._M_node = p_Var7" (field_expression "cVar14._M_node" identifier . field_identifier) = identifier) , (binary_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                       ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx)))" (binary_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target" (pointer_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" * (call_expression "(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" (parenthesized_expression "(Target_aarch64<32,_false> **)" ( (comma_expression "Target_aarch64<32,_false> **" (binary_expression "Target_aarch64<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(cVar14._M_node + 1)" ( (binary_expression "cVar14._M_node + 1" (field_expression "cVar14._M_node" identifier . field_identifier) + number_literal) )))) < identifier) || (parenthesized_expression "((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx)))" ( (parenthesized_expression "(target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx))" ( (binary_expression "target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                        (*(uint *)&cVar14._M_node[1]._M_parent < shndx)" (binary_expression "target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" identifier == (pointer_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" * (call_expression "(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" (parenthesized_expression "(Target_aarch64<32,_false> **)" ( (comma_expression "Target_aarch64<32,_false> **" (binary_expression "Target_aarch64<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(cVar14._M_node + 1)" ( (binary_expression "cVar14._M_node + 1" (field_expression "cVar14._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(*(uint *)&cVar14._M_node[1]._M_parent < shndx)" ( (binary_expression "*(uint *)&cVar14._M_node[1]._M_parent < shndx" (pointer_expression "*(uint *)&cVar14._M_node[1]._M_parent" * (cast_expression "(uint *)&cVar14._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cVar14._M_node[1]._M_parent" & (field_expression "cVar14._M_node[1]._M_parent" (subscript_expression "cVar14._M_node[1]" (field_expression "cVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  pp_Var2 = &(cVar14._M_node)->_M_right;\n                  cVar14._M_node = p_Var17;\n                  p_Var7 = *pp_Var2;\n                  if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;\n                }" { (expression_statement "pp_Var2 = &(cVar14._M_node)->_M_right;" (assignment_expression "pp_Var2 = &(cVar14._M_node)->_M_right" identifier = (pointer_expression "&(cVar14._M_node)->_M_right" & (field_expression "(cVar14._M_node)->_M_right" (parenthesized_expression "(cVar14._M_node)" ( (field_expression "cVar14._M_node" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "cVar14._M_node = p_Var17;" (assignment_expression "cVar14._M_node = p_Var17" (field_expression "cVar14._M_node" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var7 = *pp_Var2;" (assignment_expression "p_Var7 = *pp_Var2" identifier = (pointer_expression "*pp_Var2" * identifier)) ;) (if_statement "if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309982;" if (parenthesized_expression "(*pp_Var2 == (_Base_ptr)0x0)" ( (binary_expression "*pp_Var2 == (_Base_ptr)0x0" (pointer_expression "*pp_Var2" * identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00309982;" goto statement_identifier ;)) })) (expression_statement "p_Var17 = cVar14._M_node;" (assignment_expression "p_Var17 = cVar14._M_node" identifier = (field_expression "cVar14._M_node" identifier . field_identifier)) ;) (expression_statement "p_Var7 = (cVar14._M_node)->_M_left;" (assignment_expression "p_Var7 = (cVar14._M_node)->_M_left" identifier = (field_expression "(cVar14._M_node)->_M_left" (parenthesized_expression "(cVar14._M_node)" ( (field_expression "cVar14._M_node" identifier . field_identifier) )) -> field_identifier)) ;) }) while (parenthesized_expression "((cVar14._M_node)->_M_left != (_Base_ptr)0x0)" ( (binary_expression "(cVar14._M_node)->_M_left != (_Base_ptr)0x0" (field_expression "(cVar14._M_node)->_M_left" (parenthesized_expression "(cVar14._M_node)" ( (field_expression "cVar14._M_node" identifier . field_identifier) )) -> field_identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_00309982:\n              if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;" statement_identifier : (if_statement "if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;" if (parenthesized_expression "((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent))))" ( (binary_expression "(((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                 ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))" (parenthesized_expression "(((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1)))" ( (binary_expression "((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                  (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))" (parenthesized_expression "((_Rb_tree_header *)cVar14._M_node == p_Var1)" ( (binary_expression "(_Rb_tree_header *)cVar14._M_node == p_Var1" (cast_expression "(_Rb_tree_header *)cVar14._M_node" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cVar14._M_node" identifier . field_identifier)) == identifier) )) || (parenthesized_expression "(target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))" ( (binary_expression "target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" identifier < (pointer_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" * (call_expression "(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" (parenthesized_expression "(Target_aarch64<32,_false> **)" ( (comma_expression "Target_aarch64<32,_false> **" (binary_expression "Target_aarch64<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(cVar14._M_node + 1)" ( (binary_expression "cVar14._M_node + 1" (field_expression "cVar14._M_node" identifier . field_identifier) + number_literal) ))))) ))) )) || (parenthesized_expression "((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))" ( (parenthesized_expression "(target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent))" ( (binary_expression "target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                  (shndx < *(uint *)&cVar14._M_node[1]._M_parent)" (binary_expression "target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" identifier == (pointer_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" * (call_expression "(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" (parenthesized_expression "(Target_aarch64<32,_false> **)" ( (comma_expression "Target_aarch64<32,_false> **" (binary_expression "Target_aarch64<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(cVar14._M_node + 1)" ( (binary_expression "cVar14._M_node + 1" (field_expression "cVar14._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(shndx < *(uint *)&cVar14._M_node[1]._M_parent)" ( (binary_expression "shndx < *(uint *)&cVar14._M_node[1]._M_parent" identifier < (pointer_expression "*(uint *)&cVar14._M_node[1]._M_parent" * (cast_expression "(uint *)&cVar14._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cVar14._M_node[1]._M_parent" & (field_expression "cVar14._M_node[1]._M_parent" (subscript_expression "cVar14._M_node[1]" (field_expression "cVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier))))) ))) )) ))) )) (goto_statement "goto LAB_003099a8;" goto statement_identifier ;))) }))) (expression_statement "__node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;" (assignment_expression "__node_gen_1._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left" (field_expression "__node_gen_1._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&cVar14._M_node[1]._M_left" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cVar14._M_node[1]._M_left" & (field_expression "cVar14._M_node[1]._M_left" (subscript_expression "cVar14._M_node[1]" (field_expression "cVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)))) ;) (ERROR "std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (comma_expression "std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std::pair<gold::Relobj*" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n            ::\n            _M_insert<const_std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n            ::\n            _M_insert<const_std" identifier , (binary_expression "_true>_>\n            ::\n            _M_insert<const_std" (binary_expression "_true>_>\n            ::\n            _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier *) , (binary_expression "_unsigned_int>&,_std" identifier > (pointer_expression "&,_std" & (ERROR "," ,) identifier))) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1)" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                      ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1)" ( (parenthesized_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1)" ( (ERROR "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Identity" : : identifier : : identifier) , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1" identifier , (comma_expression "_true>_>\n                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1" (binary_expression "_true>_>\n                        *)__node_gen_1._M_h" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)__node_gen_1._M_h" * (ERROR ")" )) (field_expression "__node_gen_1._M_h" identifier . field_identifier))) , (comma_expression "&dst_id,&__node_gen_1,1" (pointer_expression "&dst_id" & identifier) , (comma_expression "&__node_gen_1,1" (pointer_expression "&__node_gen_1" & identifier) , number_literal))))) )) )))) ;))))) (expression_statement "pTVar8 = parameters->target_;" (assignment_expression "pTVar8 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar8 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }" if (parenthesized_expression "(pTVar8 == (Target *)0x0)" ( (binary_expression "pTVar8 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target")" identifier (argument_list "("../../gold/parameters.h",0x73,"sized_target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""sized_target"" " string_content ") ))) ;) })) (if_statement "if (pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference) {\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }" if (parenthesized_expression "(pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference)" ( (comma_expression "pTVar8->_vptr_Target[0x41] != Sized_target<32,_false>::do_gc_add_reference" (binary_expression "pTVar8->_vptr_Target[0x41] != Sized_target<32" (subscript_expression "pTVar8->_vptr_Target[0x41]" (field_expression "pTVar8->_vptr_Target" identifier -> field_identifier) [ number_literal ]) != (binary_expression "Sized_target<32" identifier < number_literal)) , (binary_expression "_false>::do_gc_add_reference" identifier > (ERROR "::" : :) identifier)) )) (compound_statement "{\n              (*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);\n            }" { (expression_statement "(*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124);" (call_expression "(*pTVar8->_vptr_Target[0x41])\n                        (pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124)" (parenthesized_expression "(*pTVar8->_vptr_Target[0x41])" ( (pointer_expression "*pTVar8->_vptr_Target[0x41]" * (subscript_expression "pTVar8->_vptr_Target[0x41]" (field_expression "pTVar8->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar8,symtab,target,(ulong)src_obj & 0xffffffff,local_110,uVar27,\n                         (ulong)local_124)" ( identifier , identifier , identifier , (binary_expression "(ulong)src_obj & 0xffffffff" (cast_expression "(ulong)src_obj" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) , identifier , identifier , (cast_expression "(ulong)local_124" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) })) (if_statement "if (local_138 != (_func_int_varargs **)0x0) {\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }" if (parenthesized_expression "(local_138 != (_func_int_varargs **)0x0)" ( (binary_expression "local_138 != (_func_int_varargs **)0x0" identifier != (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              pGVar6 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar15 = strlen((char *)local_138);\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));\n              iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);\n              if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }\n              pGVar6 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }\n            }" { (expression_statement "pGVar6 = symtab->gc_;" (assignment_expression "pGVar6 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (expression_statement "src_id.first = (Relobj *)&stack0xffffffffffffffb8;" (assignment_expression "src_id.first = (Relobj *)&stack0xffffffffffffffb8" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)&stack0xffffffffffffffb8" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffffffffffb8" & identifier))) ;) (expression_statement "sVar15 = strlen((char *)local_138);" (assignment_expression "sVar15 = strlen((char *)local_138)" identifier = (call_expression "strlen((char *)local_138)" identifier (argument_list "((char *)local_138)" ( (cast_expression "(char *)local_138" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15));" (binary_expression "_M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15))" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15))" ( (comma_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_138,(byte *)((long)local_138 + sVar15)" (binary_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id" (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_> *" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier) , (comma_expression "local_138,(byte *)((long)local_138 + sVar15)" identifier , (cast_expression "(byte *)((long)local_138 + sVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_138 + sVar15)" ( (binary_expression "(long)local_138 + sVar15" (cast_expression "(long)local_138" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ))) ;)) (ERROR "iVar16 = std::\n                       _Rb_tree<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::" (assignment_expression "iVar16 = std" identifier = identifier) : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id);" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id)" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) (call_expression "find(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id)" identifier (argument_list "(&(pGVar6->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id)" ( (pointer_expression "&(pGVar6->cident_sections_)._M_t" & (field_expression "(pGVar6->cident_sections_)._M_t" (parenthesized_expression "(pGVar6->cident_sections_)" ( (field_expression "pGVar6->cident_sections_" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id" (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_> *" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier) )))) ;) (if_statement "if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n                operator_delete(src_id.first);\n              }" if (parenthesized_expression "(src_id.first != (Relobj *)&stack0xffffffffffffffb8)" ( (binary_expression "src_id.first != (Relobj *)&stack0xffffffffffffffb8" (field_expression "src_id.first" identifier . field_identifier) != (cast_expression "(Relobj *)&stack0xffffffffffffffb8" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffffffffffffb8" & identifier))) )) (compound_statement "{\n                operator_delete(src_id.first);\n              }" { (expression_statement "operator_delete(src_id.first);" (call_expression "operator_delete(src_id.first)" identifier (argument_list "(src_id.first)" ( (field_expression "src_id.first" identifier . field_identifier) ))) ;) })) (expression_statement "pGVar6 = symtab->gc_;" (assignment_expression "pGVar6 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (if_statement "if ((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }" if (parenthesized_expression "((_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header)" ( (binary_expression "(_Rb_tree_header *)iVar16._M_node !=\n                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header" (cast_expression "(_Rb_tree_header *)iVar16._M_node" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "iVar16._M_node" identifier . field_identifier)) != (pointer_expression "&(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar6->cident_sections_)._M_t._M_impl" (field_expression "(pGVar6->cident_sections_)._M_t" (parenthesized_expression "(pGVar6->cident_sections_)" ( (field_expression "pGVar6->cident_sections_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) )) (compound_statement "{\n                p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.second = shndx;\n                p_Var17 = &p_Var1->_M_header;\n                cVar14._M_node = &p_Var1->_M_header;\n                if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }\n                for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }\n              }" { (expression_statement "p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;" (assignment_expression "p_Var7 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent" identifier = (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent" (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar6->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar6->section_reloc_map_)" ( (field_expression "pGVar6->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var1 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar6->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar6->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar6->section_reloc_map_)" ( (field_expression "pGVar6->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "src_id.second = shndx;" (assignment_expression "src_id.second = shndx" (field_expression "src_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var17 = &p_Var1->_M_header;" (assignment_expression "p_Var17 = &p_Var1->_M_header" identifier = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (expression_statement "cVar14._M_node = &p_Var1->_M_header;" (assignment_expression "cVar14._M_node = &p_Var1->_M_header" (field_expression "cVar14._M_node" identifier . field_identifier) = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (if_statement "if (p_Var7 == (_Base_ptr)0x0) {\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }\n                else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }" if (parenthesized_expression "(p_Var7 == (_Base_ptr)0x0)" ( (binary_expression "p_Var7 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);\n                }" { (labeled_statement "LAB_00309ea0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;" statement_identifier : (expression_statement "local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;" (assignment_expression "local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id" (field_expression "local_c0._M_head_impl" identifier . field_identifier) = (binary_expression "(pair<gold::Relobj*,_unsigned_int> *)&src_id" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> *)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> *" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)) )) & identifier)) ;)) (expression_statement "src_id.first = (Relobj *)target;" (assignment_expression "src_id.first = (Relobj *)target" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)target" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std::piecewise_construct_t&,_std::tuple<const_std::pair<gold::Relobj*,_unsigned_int>&>,_std::" (comma_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std::pair<gold" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std::unordered_set<std" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std::pair<gold" (binary_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std::\n                       _Rb_tree<std" (assignment_expression "cVar14._M_node =\n                       (_Base_ptr)\n                       std" (field_expression "cVar14._M_node" identifier . field_identifier) = (cast_expression "(_Base_ptr)\n                       std" ( (type_descriptor "_Base_ptr" type_identifier) ) identifier)) (ERROR "::\n                       _Rb_tree" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::unordered_set" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Section_id_hash" : : identifier) , identifier) : : identifier < identifier : : identifier < identifier : : identifier * , identifier > identifier > , identifier : : identifier < identifier : : identifier < identifier : : identifier * , (binary_expression "_unsigned_int>_>_>_>,_std" (binary_expression "_unsigned_int>_>_>_" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>,_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "unordered_set<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique<const_std" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_>\n                       ::\n                       _M_emplace_hint_unique" (binary_expression "Relobj*,_unsigned_int>_>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_>_" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "piecewise_construct_t&,_std" identifier & (ERROR "," ,) identifier) : : (binary_expression "tuple<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>&>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (pointer_expression "&>,_std" & (ERROR ">," > ,) identifier)) : :) (expression_statement "tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9);" (binary_expression "tuple<>_>\n                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9)" (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > (parenthesized_expression "(&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9)" ( (ERROR "&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::" (comma_expression "&(pGVar6->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std" (pointer_expression "&(pGVar6->section_reloc_map_)._M_t" & (field_expression "(pGVar6->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar6->section_reloc_map_)" ( (field_expression "pGVar6->section_reloc_map_" identifier -> field_identifier) )) . field_identifier)) , (comma_expression "cVar14,\n                                  (piecewise_construct_t *)&std" identifier , (cast_expression "(piecewise_construct_t *)&std" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&std" & identifier)))) : :) (comma_expression "piecewise_construct,\n                                  (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9" identifier , (comma_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0,\n                                  &local_e9" (binary_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)&local_c0" (parenthesized_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)" ( (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "tuple<const_std::pair<gold" (binary_expression "tuple<const_std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "&> *" & (ERROR ">" >) (pointer_expression "*" * identifier))) )) & identifier) , (pointer_expression "&local_e9" & identifier))) ))) ;) }) (else_clause "else {\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }" else (compound_statement "{\n                  do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;\n                }" { (do_statement "do {\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  } while ((cVar14._M_node)->_M_left != (_Base_ptr)0x0);" do (compound_statement "{\n                    while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }\n                    p_Var17 = cVar14._M_node;\n                    p_Var7 = (cVar14._M_node)->_M_left;\n                  }" { (while_statement "while ((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))) {\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }" while (parenthesized_expression "((cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx)))))" ( (parenthesized_expression "(cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))))" ( (comma_expression "cVar14._M_node = p_Var7,\n                           *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx)))" (assignment_expression "cVar14._M_node = p_Var7" (field_expression "cVar14._M_node" identifier . field_identifier) = identifier) , (binary_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target ||\n                           ((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx)))" (binary_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1) < target" (pointer_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" * (call_expression "(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" (parenthesized_expression "(Target_aarch64<32,_false> **)" ( (comma_expression "Target_aarch64<32,_false> **" (binary_expression "Target_aarch64<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(cVar14._M_node + 1)" ( (binary_expression "cVar14._M_node + 1" (field_expression "cVar14._M_node" identifier . field_identifier) + number_literal) )))) < identifier) || (parenthesized_expression "((target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx)))" ( (parenthesized_expression "(target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx))" ( (binary_expression "target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                            (*(uint *)&cVar14._M_node[1]._M_parent < shndx)" (binary_expression "target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" identifier == (pointer_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" * (call_expression "(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" (parenthesized_expression "(Target_aarch64<32,_false> **)" ( (comma_expression "Target_aarch64<32,_false> **" (binary_expression "Target_aarch64<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(cVar14._M_node + 1)" ( (binary_expression "cVar14._M_node + 1" (field_expression "cVar14._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(*(uint *)&cVar14._M_node[1]._M_parent < shndx)" ( (binary_expression "*(uint *)&cVar14._M_node[1]._M_parent < shndx" (pointer_expression "*(uint *)&cVar14._M_node[1]._M_parent" * (cast_expression "(uint *)&cVar14._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cVar14._M_node[1]._M_parent" & (field_expression "cVar14._M_node[1]._M_parent" (subscript_expression "cVar14._M_node[1]" (field_expression "cVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                      pp_Var2 = &(cVar14._M_node)->_M_right;\n                      cVar14._M_node = p_Var17;\n                      p_Var7 = *pp_Var2;\n                      if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;\n                    }" { (expression_statement "pp_Var2 = &(cVar14._M_node)->_M_right;" (assignment_expression "pp_Var2 = &(cVar14._M_node)->_M_right" identifier = (pointer_expression "&(cVar14._M_node)->_M_right" & (field_expression "(cVar14._M_node)->_M_right" (parenthesized_expression "(cVar14._M_node)" ( (field_expression "cVar14._M_node" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "cVar14._M_node = p_Var17;" (assignment_expression "cVar14._M_node = p_Var17" (field_expression "cVar14._M_node" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var7 = *pp_Var2;" (assignment_expression "p_Var7 = *pp_Var2" identifier = (pointer_expression "*pp_Var2" * identifier)) ;) (if_statement "if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_00309b02;" if (parenthesized_expression "(*pp_Var2 == (_Base_ptr)0x0)" ( (binary_expression "*pp_Var2 == (_Base_ptr)0x0" (pointer_expression "*pp_Var2" * identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00309b02;" goto statement_identifier ;)) })) (expression_statement "p_Var17 = cVar14._M_node;" (assignment_expression "p_Var17 = cVar14._M_node" identifier = (field_expression "cVar14._M_node" identifier . field_identifier)) ;) (expression_statement "p_Var7 = (cVar14._M_node)->_M_left;" (assignment_expression "p_Var7 = (cVar14._M_node)->_M_left" identifier = (field_expression "(cVar14._M_node)->_M_left" (parenthesized_expression "(cVar14._M_node)" ( (field_expression "cVar14._M_node" identifier . field_identifier) )) -> field_identifier)) ;) }) while (parenthesized_expression "((cVar14._M_node)->_M_left != (_Base_ptr)0x0)" ( (binary_expression "(cVar14._M_node)->_M_left != (_Base_ptr)0x0" (field_expression "(cVar14._M_node)->_M_left" (parenthesized_expression "(cVar14._M_node)" ( (field_expression "cVar14._M_node" identifier . field_identifier) )) -> field_identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_00309b02:\n                  if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;" statement_identifier : (if_statement "if ((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;" if (parenthesized_expression "((((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent))))" ( (binary_expression "(((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))" (parenthesized_expression "(((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1)))" ( (binary_expression "((_Rb_tree_header *)cVar14._M_node == p_Var1) ||\n                      (target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))" (parenthesized_expression "((_Rb_tree_header *)cVar14._M_node == p_Var1)" ( (binary_expression "(_Rb_tree_header *)cVar14._M_node == p_Var1" (cast_expression "(_Rb_tree_header *)cVar14._M_node" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cVar14._M_node" identifier . field_identifier)) == identifier) )) || (parenthesized_expression "(target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1))" ( (binary_expression "target < *(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" identifier < (pointer_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" * (call_expression "(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" (parenthesized_expression "(Target_aarch64<32,_false> **)" ( (comma_expression "Target_aarch64<32,_false> **" (binary_expression "Target_aarch64<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(cVar14._M_node + 1)" ( (binary_expression "cVar14._M_node + 1" (field_expression "cVar14._M_node" identifier . field_identifier) + number_literal) ))))) ))) )) || (parenthesized_expression "((src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)))" ( (parenthesized_expression "(src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent))" ( (comma_expression "src_id.first = (Relobj *)target,\n                      target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)" (assignment_expression "src_id.first = (Relobj *)target" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)target" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1) &&\n                      (shndx < *(uint *)&cVar14._M_node[1]._M_parent)" (binary_expression "target == *(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" identifier == (pointer_expression "*(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" * (call_expression "(Target_aarch64<32,_false> **)(cVar14._M_node + 1)" (parenthesized_expression "(Target_aarch64<32,_false> **)" ( (comma_expression "Target_aarch64<32,_false> **" (binary_expression "Target_aarch64<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(cVar14._M_node + 1)" ( (binary_expression "cVar14._M_node + 1" (field_expression "cVar14._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(shndx < *(uint *)&cVar14._M_node[1]._M_parent)" ( (binary_expression "shndx < *(uint *)&cVar14._M_node[1]._M_parent" identifier < (pointer_expression "*(uint *)&cVar14._M_node[1]._M_parent" * (cast_expression "(uint *)&cVar14._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cVar14._M_node[1]._M_parent" & (field_expression "cVar14._M_node[1]._M_parent" (subscript_expression "cVar14._M_node[1]" (field_expression "cVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier))))) )))) )) ))) )) (goto_statement "goto LAB_00309ea0;" goto statement_identifier ;))) }))) (for_statement "for (p_Var9 = iVar16._M_node[2]._M_left; p_Var9 != (_Base_ptr)0x0;\n                    p_Var9 = *(_Base_ptr *)p_Var9) {\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }" for ( (assignment_expression "p_Var9 = iVar16._M_node[2]._M_left" identifier = (field_expression "iVar16._M_node[2]._M_left" (subscript_expression "iVar16._M_node[2]" (field_expression "iVar16._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)) ; (binary_expression "p_Var9 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ; (assignment_expression "p_Var9 = *(_Base_ptr *)p_Var9" identifier = (pointer_expression "*(_Base_ptr *)p_Var9" * (cast_expression "(_Base_ptr *)p_Var9" ( (type_descriptor "_Base_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ) (compound_statement "{\n                  __node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);\n                }" { (expression_statement "__node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left;" (assignment_expression "__node_gen._M_h = (__hashtable_alloc *)&cVar14._M_node[1]._M_left" (field_expression "__node_gen._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&cVar14._M_node[1]._M_left" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cVar14._M_node[1]._M_left" & (field_expression "cVar14._M_node[1]._M_left" (subscript_expression "cVar14._M_node[1]" (field_expression "cVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)))) ;) (ERROR "std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (comma_expression "std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*,_unsigned_int>&,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                  ::\n                  _M_insert<const_std" identifier , (binary_expression "_true>_>\n                  ::\n                  _M_insert<const_std" (binary_expression "_true>_>\n                  ::\n                  _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier *) , (binary_expression "_unsigned_int>&,_std" identifier > (pointer_expression "&,_std" & (ERROR "," ,) identifier))) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1);" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1)" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                            ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1)" ( (comma_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left,&p_Var9->_M_parent,&__node_gen,1" (binary_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)&cVar14._M_node[1]._M_left" (parenthesized_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)" ( (ERROR "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Identity" : : identifier : : identifier) , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                              *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                              *" identifier , (binary_expression "_true>_>\n                              *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "cVar14._M_node[1]._M_left" (subscript_expression "cVar14._M_node[1]" (field_expression "cVar14._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)) , (comma_expression "&p_Var9->_M_parent,&__node_gen,1" (pointer_expression "&p_Var9->_M_parent" & (field_expression "p_Var9->_M_parent" identifier -> field_identifier)) , (comma_expression "&__node_gen,1" (pointer_expression "&__node_gen" & identifier) , number_literal))) )))) ;))))) })) })) })) }))) }))) }) (else_clause "else {\n        if (uVar28 < *(uint *)&target[1].field_0x10) {\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);\n        if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];\n        if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;\n        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }\n        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }\n        pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar18 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var24 = pp_Var10;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        } while ((bool)uVar33);\n        bVar30 = false;\n        bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n        if (bVar34) {\n          pp_Var10 = pp_Var10 + 1;\n        }\n        else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }\n        local_138 = pp_Var10;\n        if (bVar32) {\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }\n        if (bVar19 != 0) {\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" else (compound_statement "{\n        if (uVar28 < *(uint *)&target[1].field_0x10) {\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);\n        if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];\n        if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;\n        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }\n        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }\n        pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;\n        lVar18 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var24 = pp_Var10;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        } while ((bool)uVar33);\n        bVar30 = false;\n        bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;\n        if (bVar34) {\n          pp_Var10 = pp_Var10 + 1;\n        }\n        else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }\n        local_138 = pp_Var10;\n        if (bVar32) {\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }\n        if (bVar19 != 0) {\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" { (if_statement "if (uVar28 < *(uint *)&target[1].field_0x10) {\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" if (parenthesized_expression "(uVar28 < *(uint *)&target[1].field_0x10)" ( (binary_expression "uVar28 < *(uint *)&target[1].field_0x10" identifier < (pointer_expression "*(uint *)&target[1].field_0x10" * (cast_expression "(uint *)&target[1].field_0x10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target[1].field_0x10" & (field_expression "target[1].field_0x10" (subscript_expression "target[1]" identifier [ number_literal ]) . field_identifier))))) )) (compound_statement "{\n          dst_id.first = (Relobj *)0x0;\nLAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" { (expression_statement "dst_id.first = (Relobj *)0x0;" (assignment_expression "dst_id.first = (Relobj *)0x0" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00309db8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");" (call_expression "do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs")" identifier (argument_list "("../../gold/gc.h",0x11c,"gc_process_relocs")" ( (string_literal ""../../gold/gc.h"" " string_content ") , number_literal , (string_literal ""gc_process_relocs"" " string_content ") ))) ;)) })) (expression_statement "uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10);" (assignment_expression "uVar27 = (ulong)(uVar28 - *(uint *)&target[1].field_0x10)" identifier = (call_expression "(ulong)(uVar28 - *(uint *)&target[1].field_0x10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar28 - *(uint *)&target[1].field_0x10)" ( (binary_expression "uVar28 - *(uint *)&target[1].field_0x10" identifier - (pointer_expression "*(uint *)&target[1].field_0x10" * (cast_expression "(uint *)&target[1].field_0x10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target[1].field_0x10" & (field_expression "target[1].field_0x10" (subscript_expression "target[1]" identifier [ number_literal ]) . field_identifier))))) )))) ;) (if_statement "if ((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }" if (parenthesized_expression "((ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27)" ( (binary_expression "(ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3) <= uVar27" (call_expression "(ulong)((long)target[1].plt_ - (long)target[1].got_ >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)target[1].plt_ - (long)target[1].got_ >> 3)" ( (binary_expression "(long)target[1].plt_ - (long)target[1].got_ >> 3" (binary_expression "(long)target[1].plt_ - (long)target[1].got_" (cast_expression "(long)target[1].plt_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "target[1].plt_" (subscript_expression "target[1]" identifier [ number_literal ]) . field_identifier)) - (cast_expression "(long)target[1].got_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "target[1].got_" (subscript_expression "target[1]" identifier [ number_literal ]) . field_identifier))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");" (call_expression "do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol")" identifier (argument_list "("../../gold/object.h",0x8ad,"global_symbol")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""global_symbol"" " string_content ") ))) ;) })) (expression_statement "dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27];" (assignment_expression "dst_id.first = (Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27]" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)\n                       (&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27]" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)[uVar27]" (parenthesized_expression "(&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data)" ( (pointer_expression "&((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data" & (field_expression "((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data._vptr_Output_data" (field_expression "((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data.super_Output_data" (field_expression "((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build.\n                         super_Output_section_data" (field_expression "((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base.super_Output_section_data_build" (field_expression "((target[1].got_)->super_Output_data_got<32,_false>).\n                         super_Output_data_got_base" (parenthesized_expression "((target[1].got_)->super_Output_data_got<32,_false>)" ( (comma_expression "(target[1].got_)->super_Output_data_got<32,_false" (binary_expression "(target[1].got_)->super_Output_data_got<32" (field_expression "(target[1].got_)->super_Output_data_got" (parenthesized_expression "(target[1].got_)" ( (field_expression "target[1].got_" (subscript_expression "target[1]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) )) [ identifier ]))) ;) (if_statement "if (dst_id.first == (Relobj *)0x0) goto LAB_00309db8;" if (parenthesized_expression "(dst_id.first == (Relobj *)0x0)" ( (binary_expression "dst_id.first == (Relobj *)0x0" (field_expression "dst_id.first" identifier . field_identifier) == (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00309db8;" goto statement_identifier ;)) (if_statement "if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }" if (parenthesized_expression "((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0)" ( (binary_expression "(((dst_id.first)->super_Object).shnum_ & 0x100000) != 0" (parenthesized_expression "(((dst_id.first)->super_Object).shnum_ & 0x100000)" ( (binary_expression "((dst_id.first)->super_Object).shnum_ & 0x100000" (field_expression "((dst_id.first)->super_Object).shnum_" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          dst_id.first = (Relobj *)Symbol_table::resolve_forwards(symtab,(Symbol *)dst_id.first);\n        }" { (ERROR "dst_id.first = (Relobj *)Symbol_table::" (assignment_expression "dst_id.first = (Relobj *)Symbol_table" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)Symbol_table" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "resolve_forwards(symtab,(Symbol *)dst_id.first);" (call_expression "resolve_forwards(symtab,(Symbol *)dst_id.first)" identifier (argument_list "(symtab,(Symbol *)dst_id.first)" ( identifier , (cast_expression "(Symbol *)dst_id.first" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "dst_id.first" identifier . field_identifier)) ))) ;) })) (if_statement "if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }" if (parenthesized_expression "((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0)" ( (binary_expression "(((dst_id.first)->super_Object).shnum_ & 0x70000) == 0" (parenthesized_expression "(((dst_id.first)->super_Object).shnum_ & 0x70000)" ( (binary_expression "((dst_id.first)->super_Object).shnum_ & 0x70000" (field_expression "((dst_id.first)->super_Object).shnum_" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_124 = uVar4 + local_124;\n          if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;\n          uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n          uVar27 = (ulong)uVar28;\n          bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n          bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n          uVar29 = bVar19 < 2;\n          uVar33 = bVar19 == 2;\n          bVar19 = bVar21;\n          if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;" (assignment_expression "local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_" identifier = (pointer_expression "*(uint *)&((dst_id.first)->super_Object).xindex_" * (cast_expression "(uint *)&((dst_id.first)->super_Object).xindex_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((dst_id.first)->super_Object).xindex_" & (field_expression "((dst_id.first)->super_Object).xindex_" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))))) ;) (expression_statement "pRVar26 = (Relobj *)(ulong)local_124;" (assignment_expression "pRVar26 = (Relobj *)(ulong)local_124" identifier = (cast_expression "(Relobj *)(ulong)local_124" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)local_124" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;" (assignment_expression "local_110 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment" identifier = (field_expression "((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment" (parenthesized_expression "((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)" ( (cast_expression "(anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length" ( (type_descriptor "anon_union_8_3_b0f6f408_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((dst_id.first)->super_Object).name_._M_string_length" & (field_expression "((dst_id.first)->super_Object).name_._M_string_length" (field_expression "((dst_id.first)->super_Object).name_" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier))) )) -> field_identifier)) ;) (expression_statement "local_124 = uVar4 + local_124;" (assignment_expression "local_124 = uVar4 + local_124" identifier = (binary_expression "uVar4 + local_124" identifier + identifier)) ;) (if_statement "if (((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;" if (parenthesized_expression "(((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0)" ( (binary_expression "((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) != 0" (parenthesized_expression "((ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000)" ( (binary_expression "(ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000" (field_expression "(ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish" (field_expression "(ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "(ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)local_110->output_lists_[2].\n                      super__Vector_base<gold" (cast_expression "(ulong)local_110->output_lists_[2].\n                      super__Vector_base" ( (type_descriptor "ulong" type_identifier) ) (field_expression "local_110->output_lists_[2].\n                      super__Vector_base" (subscript_expression "local_110->output_lists_[2]" (field_expression "local_110->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00309d1e;" goto statement_identifier ;)) (expression_statement "uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;" (assignment_expression "uVar28 = *(uint *)&((dst_id.first)->super_Object).name_.field_2" identifier = (pointer_expression "*(uint *)&((dst_id.first)->super_Object).name_.field_2" * (cast_expression "(uint *)&((dst_id.first)->super_Object).name_.field_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((dst_id.first)->super_Object).name_.field_2" & (field_expression "((dst_id.first)->super_Object).name_.field_2" (field_expression "((dst_id.first)->super_Object).name_" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier))))) ;) (expression_statement "uVar27 = (ulong)uVar28;" (assignment_expression "uVar27 = (ulong)uVar28" identifier = (cast_expression "(ulong)uVar28" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;" (assignment_expression "bVar19 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf" identifier = (binary_expression "(byte)((dst_id.first)->super_Object).shnum_ & 0xf" (field_expression "(byte)((dst_id.first)->super_Object).shnum_" (call_expression "(byte)((dst_id.first)->super_Object)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) ))) . field_identifier) & number_literal)) ;) (expression_statement "bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;" (assignment_expression "bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1" identifier = (binary_expression "*(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1" (binary_expression "*(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5" (pointer_expression "*(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3)" * (cast_expression "(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&((dst_id.first)->super_Object).shnum_ + 3)" ( (binary_expression "(long)&((dst_id.first)->super_Object).shnum_ + 3" (cast_expression "(long)&((dst_id.first)->super_Object).shnum_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((dst_id.first)->super_Object).shnum_" & (field_expression "((dst_id.first)->super_Object).shnum_" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "uVar29 = bVar19 < 2;" (assignment_expression "uVar29 = bVar19 < 2" identifier = (binary_expression "bVar19 < 2" identifier < number_literal)) ;) (expression_statement "uVar33 = bVar19 == 2;" (assignment_expression "uVar33 = bVar19 == 2" identifier = (binary_expression "bVar19 == 2" identifier == number_literal)) ;) (expression_statement "bVar19 = bVar21;" (assignment_expression "bVar19 = bVar21" identifier = identifier) ;) (if_statement "if ((bool)uVar33) {\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }" if (parenthesized_expression "((bool)uVar33)" ( (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            uVar29 = 0;\n            uVar33 = local_12d == '\0';\n            if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }\n          }" { (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "uVar33 = local_12d == '\0';" (assignment_expression "uVar33 = local_12d == '\0'" identifier = (binary_expression "local_12d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar33) {\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }" if (parenthesized_expression "(!(bool)uVar33)" ( (unary_expression "!(bool)uVar33" ! (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar33 = bVar21 == 0;\n              if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }\n            }" { (expression_statement "uVar33 = bVar21 == 0;" (assignment_expression "uVar33 = bVar21 == 0" identifier = (binary_expression "bVar21 == 0" identifier == number_literal)) ;) (if_statement "if ((bool)uVar33) {\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }\n              else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }" if (parenthesized_expression "((bool)uVar33)" ( (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\nLAB_00309f71:\n                uVar29 = 0;\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_110;\n                local_b0 = uVar28;\n                std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);\n                bVar19 = bVar21;\n              }" { (labeled_statement "LAB_00309f71:\n                uVar29 = 0;" statement_identifier : (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;)) (expression_statement "__node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;" (assignment_expression "__node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_" (field_expression "__node_gen_3._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&symtab->icf_->fptr_section_id_" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&symtab->icf_->fptr_section_id_" & (field_expression "symtab->icf_->fptr_section_id_" (field_expression "symtab->icf_" identifier -> field_identifier) -> field_identifier)))) ;) (expression_statement "local_b8 = local_110;" (assignment_expression "local_b8 = local_110" identifier = identifier) ;) (expression_statement "local_b0 = uVar28;" (assignment_expression "local_b0 = uVar28" identifier = identifier) ;) (ERROR "std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (comma_expression "std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std::pair<gold::Relobj*,_unsigned_int>" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                ::\n                _M_insert<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                ::\n                _M_insert<std" identifier , (binary_expression "_true>_>\n                ::\n                _M_insert<std" (binary_expression "_true>_>\n                ::\n                _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1)" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                          ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1)" ( (parenthesized_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1)" ( (ERROR "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Identity" : : identifier : : identifier) , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1" identifier , (comma_expression "_true>_>\n                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1" (binary_expression "_true>_>\n                            *)__node_gen_3._M_h" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)__node_gen_3._M_h" * (ERROR ")" )) (field_expression "__node_gen_3._M_h" identifier . field_identifier))) , (comma_expression "&local_b8,&__node_gen_3,1" (pointer_expression "&local_b8" & identifier) , (comma_expression "&__node_gen_3,1" (pointer_expression "&__node_gen_3" & identifier) , number_literal))))) )) )))) ;))))) (expression_statement "bVar19 = bVar21;" (assignment_expression "bVar19 = bVar21" identifier = identifier) ;) }) (else_clause "else {\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }" else (compound_statement "{\n                if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar30 = (parameters->options_->shared_).value;\n                uVar29 = 0;\n                uVar33 = bVar30 == false;\n                if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }\n              }" { (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "bVar30 = (parameters->options_->shared_).value;" (assignment_expression "bVar30 = (parameters->options_->shared_).value" identifier = (field_expression "(parameters->options_->shared_).value" (parenthesized_expression "(parameters->options_->shared_)" ( (field_expression "parameters->options_->shared_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "uVar33 = bVar30 == false;" (assignment_expression "uVar33 = bVar30 == false" identifier = (binary_expression "bVar30 == false" identifier == false)) ;) (if_statement "if (!(bool)uVar33) {\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }" if (parenthesized_expression "(!(bool)uVar33)" ( (unary_expression "!(bool)uVar33" ! (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar29 = 0;\n                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                  bVar19 = bVar30;\n                  if (!(bool)uVar33) goto LAB_00309f71;\n                }" { (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;" (assignment_expression "uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0" identifier = (binary_expression "(((dst_id.first)->super_Object).shnum_ & 0x300) == 0" (parenthesized_expression "(((dst_id.first)->super_Object).shnum_ & 0x300)" ( (binary_expression "((dst_id.first)->super_Object).shnum_ & 0x300" (field_expression "((dst_id.first)->super_Object).shnum_" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal)) ;) (expression_statement "bVar19 = bVar30;" (assignment_expression "bVar19 = bVar30" identifier = identifier) ;) (if_statement "if (!(bool)uVar33) goto LAB_00309f71;" if (parenthesized_expression "(!(bool)uVar33)" ( (unary_expression "!(bool)uVar33" ! (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00309f71;" goto statement_identifier ;)) })) }))) })) })) }) (else_clause "else {\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }" else (compound_statement "{\n          local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;\n          pRVar26 = (Relobj *)(ulong)local_124;\n          local_124 = uVar4 + local_124;\nLAB_00309d1e:\n          local_110 = (Output_segment *)0x0;\n          uVar29 = 0;\n          uVar27 = 0;\n          uVar33 = 1;\n          bVar19 = 0;\n        }" { (expression_statement "local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_;" (assignment_expression "local_124 = *(uint *)&((dst_id.first)->super_Object).xindex_" identifier = (pointer_expression "*(uint *)&((dst_id.first)->super_Object).xindex_" * (cast_expression "(uint *)&((dst_id.first)->super_Object).xindex_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((dst_id.first)->super_Object).xindex_" & (field_expression "((dst_id.first)->super_Object).xindex_" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))))) ;) (expression_statement "pRVar26 = (Relobj *)(ulong)local_124;" (assignment_expression "pRVar26 = (Relobj *)(ulong)local_124" identifier = (cast_expression "(Relobj *)(ulong)local_124" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)local_124" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "local_124 = uVar4 + local_124;" (assignment_expression "local_124 = uVar4 + local_124" identifier = (binary_expression "uVar4 + local_124" identifier + identifier)) ;) (labeled_statement "LAB_00309d1e:\n          local_110 = (Output_segment *)0x0;" statement_identifier : (expression_statement "local_110 = (Output_segment *)0x0;" (assignment_expression "local_110 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (expression_statement "uVar33 = 1;" (assignment_expression "uVar33 = 1" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) }))) (expression_statement "pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var10 = ((dst_id.first)->super_Object)._vptr_Object" identifier = (field_expression "((dst_id.first)->super_Object)._vptr_Object" (parenthesized_expression "((dst_id.first)->super_Object)" ( (field_expression "(dst_id.first)->super_Object" (parenthesized_expression "(dst_id.first)" ( (field_expression "dst_id.first" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "lVar18 = 8;" (assignment_expression "lVar18 = 8" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)"__start_";" (assignment_expression "pbVar23 = (byte *)"__start_"" identifier = (cast_expression "(byte *)"__start_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__start_"" " string_content "))) ;) (expression_statement "pp_Var24 = pp_Var10;" (assignment_expression "pp_Var24 = pp_Var10" identifier = identifier) ;) (do_statement "do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        } while ((bool)uVar33);" do (compound_statement "{\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar29 = *pbVar23 < *(byte *)pp_Var24;\n          uVar33 = *pbVar23 == *(byte *)pp_Var24;\n          pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n          pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n        }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "uVar29 = *pbVar23 < *(byte *)pp_Var24;" (assignment_expression "uVar29 = *pbVar23 < *(byte *)pp_Var24" identifier = (binary_expression "*pbVar23 < *(byte *)pp_Var24" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*(byte *)pp_Var24" * (cast_expression "(byte *)pp_Var24" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "uVar33 = *pbVar23 == *(byte *)pp_Var24;" (assignment_expression "uVar33 = *pbVar23 == *(byte *)pp_Var24" identifier = (binary_expression "*pbVar23 == *(byte *)pp_Var24" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*(byte *)pp_Var24" * (cast_expression "(byte *)pp_Var24" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar35 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar35 * -2" identifier + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);" (assignment_expression "pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pp_Var24 + (ulong)bVar35 * -2 + 1)" ( (binary_expression "(long)pp_Var24 + (ulong)bVar35 * -2 + 1" (binary_expression "(long)pp_Var24 + (ulong)bVar35 * -2" (cast_expression "(long)pp_Var24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "((bool)uVar33)" ( (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;) (expression_statement "bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;" (assignment_expression "bVar34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29" identifier = (binary_expression "(!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29" (parenthesized_expression "(!(bool)uVar29 && !(bool)uVar33)" ( (binary_expression "!(bool)uVar29 && !(bool)uVar33" (unary_expression "!(bool)uVar29" ! (cast_expression "(bool)uVar29" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar33" ! (cast_expression "(bool)uVar33" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar29" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar34) {\n          pp_Var10 = pp_Var10 + 1;\n        }\n        else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }" if (parenthesized_expression "(bVar34)" ( identifier )) (compound_statement "{\n          pp_Var10 = pp_Var10 + 1;\n        }" { (expression_statement "pp_Var10 = pp_Var10 + 1;" (assignment_expression "pp_Var10 = pp_Var10 + 1" identifier = (binary_expression "pp_Var10 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }" else (compound_statement "{\n          lVar18 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var24 = pp_Var10;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);\n          pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);\n          if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }\n        }" { (expression_statement "lVar18 = 7;" (assignment_expression "lVar18 = 7" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)"__stop_";" (assignment_expression "pbVar23 = (byte *)"__stop_"" identifier = (cast_expression "(byte *)"__stop_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__stop_"" " string_content "))) ;) (expression_statement "pp_Var24 = pp_Var10;" (assignment_expression "pp_Var24 = pp_Var10" identifier = identifier) ;) (do_statement "do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          } while (bVar34);" do (compound_statement "{\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar30 = *pbVar23 < *(byte *)pp_Var24;\n            bVar34 = *pbVar23 == *(byte *)pp_Var24;\n            pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;\n            pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);\n          }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar30 = *pbVar23 < *(byte *)pp_Var24;" (assignment_expression "bVar30 = *pbVar23 < *(byte *)pp_Var24" identifier = (binary_expression "*pbVar23 < *(byte *)pp_Var24" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*(byte *)pp_Var24" * (cast_expression "(byte *)pp_Var24" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar34 = *pbVar23 == *(byte *)pp_Var24;" (assignment_expression "bVar34 = *pbVar23 == *(byte *)pp_Var24" identifier = (binary_expression "*pbVar23 == *(byte *)pp_Var24" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*(byte *)pp_Var24" * (cast_expression "(byte *)pp_Var24" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar35 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar35 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar35 * -2" identifier + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1);" (assignment_expression "pp_Var24 = (_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((long)pp_Var24 + (ulong)bVar35 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pp_Var24 + (ulong)bVar35 * -2 + 1)" ( (binary_expression "(long)pp_Var24 + (ulong)bVar35 * -2 + 1" (binary_expression "(long)pp_Var24 + (ulong)bVar35 * -2" (cast_expression "(long)pp_Var24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar35 * -2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar34)" ( identifier )) ;) (expression_statement "pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7);" (assignment_expression "pp_Var10 = (_func_int_varargs **)((long)pp_Var10 + 7)" identifier = (cast_expression "(_func_int_varargs **)((long)pp_Var10 + 7)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pp_Var10 + 7)" ( (binary_expression "(long)pp_Var10 + 7" (cast_expression "(long)pp_Var10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if ((!bVar30 && !bVar34) != bVar30) {\n            pp_Var10 = local_138;\n          }" if (parenthesized_expression "((!bVar30 && !bVar34) != bVar30)" ( (binary_expression "(!bVar30 && !bVar34) != bVar30" (parenthesized_expression "(!bVar30 && !bVar34)" ( (binary_expression "!bVar30 && !bVar34" (unary_expression "!bVar30" ! identifier) && (unary_expression "!bVar34" ! identifier)) )) != identifier) )) (compound_statement "{\n            pp_Var10 = local_138;\n          }" { (expression_statement "pp_Var10 = local_138;" (assignment_expression "pp_Var10 = local_138" identifier = identifier) ;) })) }))) (expression_statement "local_138 = pp_Var10;" (assignment_expression "local_138 = pp_Var10" identifier = identifier) ;) (if_statement "if (bVar32) {\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }" if (parenthesized_expression "(bVar32)" ( identifier )) (compound_statement "{\n          if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar26;\n          src_id._8_8_ = (long)(int)uVar4;\n          std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)(ulong)*local_108;\n          iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }\n          src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);\n        }" { (if_statement "if (bVar19 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            src_id.first = (Relobj *)0x0;\n            src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }" { (expression_statement "src_id.first = (Relobj *)0x0;" (assignment_expression "src_id.first = (Relobj *)0x0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20;" (assignment_expression "src_id._8_8_ = (ulong)(uint)src_id._12_4_ << 0x20" (field_expression "src_id._8_8_" identifier . field_identifier) = (binary_expression "(ulong)(uint)src_id._12_4_ << 0x20" (cast_expression "(ulong)(uint)src_id._12_4_" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)src_id._12_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "src_id._12_4_" identifier . field_identifier))) << number_literal)) ;) (ERROR "std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::" (comma_expression "std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n            vector<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "vector<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std" (binary_expression "Relobj*,_unsigned_int>_>_>\n            ::emplace_back" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);" (binary_expression "Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" ( (comma_expression "&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id" (pointer_expression "&local_158->section_info" & (field_expression "local_158->section_info" identifier -> field_identifier)) , (binary_expression "(pair<gold::Relobj*,_unsigned_int> *)&src_id" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> *)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> *" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)) )) & identifier)) ))) ;) }) (else_clause "else {\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }" else (compound_statement "{\n            src_id.second = (uint)uVar27;\n            src_id.first = (Relobj *)local_110;\n            std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }" { (expression_statement "src_id.second = (uint)uVar27;" (assignment_expression "src_id.second = (uint)uVar27" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "src_id.first = (Relobj *)local_110;" (assignment_expression "src_id.first = (Relobj *)local_110" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_110" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std::pair<gold::" (comma_expression "std::\n            vector<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n            vector<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "vector<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>_>\n            ::emplace_back<std" (binary_expression "Relobj*,_unsigned_int>_>_>\n            ::emplace_back" (binary_expression "Relobj*,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);" (binary_expression "Relobj*,_unsigned_int>_>\n                      (&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (parenthesized_expression "(&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" ( (comma_expression "&local_158->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id" (pointer_expression "&local_158->section_info" & (field_expression "local_158->section_info" identifier -> field_identifier)) , (binary_expression "(pair<gold::Relobj*,_unsigned_int> *)&src_id" (parenthesized_expression "(pair<gold::Relobj*,_unsigned_int> *)" ( (binary_expression "pair<gold::Relobj*,_unsigned_int> *" (binary_expression "pair<gold::Relobj*,_unsigned_int" (binary_expression "pair<gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)) )) & identifier)) ))) ;) }))) (expression_statement "__position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;" (assignment_expression "__position._M_current =\n               (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish" (field_expression "__position._M_current" identifier . field_identifier) = (field_expression "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish" (field_expression "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl" (parenthesized_expression "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_150->super__Vector_base<gold" (field_expression "local_150->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage) {\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }" if (parenthesized_expression "(__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage)" ( (binary_expression "__position._M_current ==\n              (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage" (field_expression "__position._M_current" identifier . field_identifier) == (field_expression "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage" (field_expression "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_150->super__Vector_base<gold" (field_expression "local_150->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);\n          }" { (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n            _M_realloc_insert<gold::" (comma_expression "std::vector<gold::Symbol*,_std" identifier (ERROR "::vector<gold::Symbol*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol*>_>::\n            _M_realloc_insert<gold" (binary_expression "Symbol*>_>::\n            _M_realloc_insert" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*_const&>(local_150,__position,(Symbol **)&dst_id);" (binary_expression "Symbol*_const&>(local_150,__position,(Symbol **)&dst_id)" (binary_expression "Symbol*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "(local_150,__position,(Symbol **)&dst_id)" ( (comma_expression "local_150,__position,(Symbol **)&dst_id" identifier , (comma_expression "__position,(Symbol **)&dst_id" identifier , (cast_expression "(Symbol **)&dst_id" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&dst_id" & identifier)))) ))) ;) }) (else_clause "else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }" else (compound_statement "{\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }" { (expression_statement "*__position._M_current = (Symbol *)dst_id.first;" (assignment_expression "*__position._M_current = (Symbol *)dst_id.first" (pointer_expression "*__position._M_current" * (field_expression "__position._M_current" identifier . field_identifier)) = (cast_expression "(Symbol *)dst_id.first" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "dst_id.first" identifier . field_identifier))) ;) (expression_statement "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;" (assignment_expression "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1" (field_expression "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish" (field_expression "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_150->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_150->super__Vector_base<gold" (field_expression "local_150->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;) }))) (expression_statement "src_id.first = pRVar26;" (assignment_expression "src_id.first = pRVar26" (field_expression "src_id.first" identifier . field_identifier) = identifier) ;) (expression_statement "src_id._8_8_ = (long)(int)uVar4;" (assignment_expression "src_id._8_8_ = (long)(int)uVar4" (field_expression "src_id._8_8_" identifier . field_identifier) = (cast_expression "(long)(int)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (labeled_statement "std::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std::pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);" statement_identifier (ERROR "::\n          vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>,_std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int,_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>_>\n          ::emplace_back<std" (binary_expression "_long_long_int>_>_>\n          ::emplace_back" (binary_expression "_long_long_int>_>_" (binary_expression "_long_long_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id);" (comma_expression "pair<long_long_int,_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id)" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>\n                    (local_160,(pair<long_long_int,_long_long_int> *)&src_id)" (binary_expression "_long_long_int>_" identifier > identifier) > (parenthesized_expression "(local_160,(pair<long_long_int,_long_long_int> *)&src_id)" ( (comma_expression "local_160,(pair<long_long_int,_long_long_int> *)&src_id" identifier , (binary_expression "(pair<long_long_int,_long_long_int> *)&src_id" (parenthesized_expression "(pair<long_long_int,_long_long_int> *)" ( (comma_expression "pair<long_long_int,_long_long_int> *" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int> *" identifier > (pointer_expression "*" * identifier))) )) & identifier)) )))) ;)) (expression_statement "src_id.first = (Relobj *)(ulong)*local_108;" (assignment_expression "src_id.first = (Relobj *)(ulong)*local_108" (field_expression "src_id.first" identifier . field_identifier) = (binary_expression "(Relobj *)(ulong)*local_108" (cast_expression "(Relobj *)(ulong)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * identifier)) ;) (expression_statement "iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;" (assignment_expression "iVar5._M_current =\n               (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish" (field_expression "iVar5._M_current" identifier . field_identifier) = (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish" (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl" (parenthesized_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )" ( (ERROR "local_140->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_140->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_140->super__Vector_base<long_unsigned_int" (field_expression "local_140->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_unsigned_int>_>" (binary_expression "allocator<long_unsigned_int>_" (binary_expression "allocator<long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage) {\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }\n          else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }" if (parenthesized_expression "(iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage)" ( (binary_expression "iVar5._M_current ==\n              (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage" (field_expression "iVar5._M_current" identifier . field_identifier) == (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage" (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl" (parenthesized_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)" ( (ERROR "local_140->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_140->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_140->super__Vector_base<long_unsigned_int" (field_expression "local_140->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_unsigned_int>_>" (binary_expression "allocator<long_unsigned_int>_" (binary_expression "allocator<long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n            std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);\n          }" { (labeled_statement "std::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>::\n            _M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);" statement_identifier (ERROR "::vector<long_unsigned_int,_std::allocator<long_unsigned_int>_>:" : : (comma_expression "vector<long_unsigned_int,_std" (binary_expression "vector<long_unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<long_unsigned_int>_" (binary_expression "allocator<long_unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "_M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id);" (binary_expression "_M_realloc_insert<long_unsigned_int_const&>(local_140,iVar5,(ulong *)&src_id)" (binary_expression "_M_realloc_insert<long_unsigned_int_const" identifier < identifier) (ERROR "&" &) > (parenthesized_expression "(local_140,iVar5,(ulong *)&src_id)" ( (comma_expression "local_140,iVar5,(ulong *)&src_id" identifier , (comma_expression "iVar5,(ulong *)&src_id" identifier , (cast_expression "(ulong *)&src_id" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id" & identifier)))) ))) ;)) }) (else_clause "else {\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }" else (compound_statement "{\n            *iVar5._M_current = (ulong)src_id.first;\n            (local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;\n          }" { (expression_statement "*iVar5._M_current = (ulong)src_id.first;" (assignment_expression "*iVar5._M_current = (ulong)src_id.first" (pointer_expression "*iVar5._M_current" * (field_expression "iVar5._M_current" identifier . field_identifier)) = (cast_expression "(ulong)src_id.first" ( (type_descriptor "ulong" type_identifier) ) (field_expression "src_id.first" identifier . field_identifier))) ;) (expression_statement "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1;" (assignment_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar5._M_current + 1" (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_140->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)" ( (ERROR "local_140->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_140->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_140->super__Vector_base<long_unsigned_int" (field_expression "local_140->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_unsigned_int>_>" (binary_expression "allocator<long_unsigned_int>_" (binary_expression "allocator<long_unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "iVar5._M_current + 1" (field_expression "iVar5._M_current" identifier . field_identifier) + number_literal)) ;) }))) (expression_statement "src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000);" (assignment_expression "src_id_2.first = (Relobj *)((ulong)src_id_2.first & 0xffffffff00000000)" (field_expression "src_id_2.first" identifier . field_identifier) = (cast_expression "(Relobj *)((ulong)src_id_2.first & 0xffffffff00000000)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)src_id_2.first & 0xffffffff00000000)" ( (binary_expression "(ulong)src_id_2.first & 0xffffffff00000000" (cast_expression "(ulong)src_id_2.first" ( (type_descriptor "ulong" type_identifier) ) (field_expression "src_id_2.first" identifier . field_identifier)) & number_literal) )))) ;) (labeled_statement "std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);" statement_identifier (ERROR "::vector<unsigned_int,_std::allocator<unsigned_int>_>:" : : (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2);" (binary_expression "emplace_back<unsigned_int>\n                    (local_168,(uint *)&src_id_2)" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(local_168,(uint *)&src_id_2)" ( (comma_expression "local_168,(uint *)&src_id_2" identifier , (cast_expression "(uint *)&src_id_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&src_id_2" & identifier))) ))) ;)) })) (if_statement "if (bVar19 != 0) {\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }" if (parenthesized_expression "(bVar19 != 0)" ( (binary_expression "bVar19 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_003098ec:\n          pGVar13 = parameters->options_;\n          if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }" { (labeled_statement "LAB_003098ec:\n          pGVar13 = parameters->options_;" statement_identifier : (expression_statement "pGVar13 = parameters->options_;" (assignment_expression "pGVar13 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;)) (if_statement "if (pGVar13 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pGVar13 == (General_options *)0x0)" ( (binary_expression "pGVar13 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (goto_statement "goto LAB_00309900;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00309772:\n      local_100 = local_100 + 1;" statement_identifier : (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;)) (expression_statement "local_108 = local_108 + 3;" (assignment_expression "local_108 = local_108 + 3" identifier = (binary_expression "local_108 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(prelocs != local_100)" ( (binary_expression "prelocs != local_100" identifier != identifier) )) ;) }))) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != &src_section_name.field_2) {\n    operator_delete(src_section_name._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != &src_section_name.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != &src_section_name.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p != &src_section_name.field_2" (binary_expression "allocator<char>_>_9\n       *)src_section_name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)src_section_name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&src_section_name.field_2" & (field_expression "src_section_name.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    operator_delete(src_section_name._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(src_section_name._M_dataplus._M_p);" (call_expression "operator_delete(src_section_name._M_dataplus._M_p)" identifier (argument_list "(src_section_name._M_dataplus._M_p)" ( (field_expression "src_section_name._M_dataplus._M_p" (field_expression "src_section_name._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00309530(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)\n\n{\n  long *plVar1;\n  byte bVar2;\n  ushort uVar3;\n  uint uVar4;\n  undefined8 *puVar5;\n  code *pcVar6;\n  long lVar7;\n  char cVar8;\n  uint uVar9;\n  long lVar10;\n  long lVar11;\n  size_t sVar12;\n  long lVar13;\n  long lVar14;\n  byte *pbVar15;\n  byte bVar16;\n  byte bVar17;\n  long lVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  uint uVar22;\n  ulong uVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  byte bVar30;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_150;\n  long local_140;\n  byte *local_138;\n  char local_12d;\n  int local_124;\n  byte *local_110;\n  uint *local_108;\n  long local_100;\n  undefined1 local_ea;\n  undefined1 local_e9;\n  long local_e8;\n  long local_e0;\n  long local_d8;\n  long local_d0;\n  byte **local_c8;\n  byte **local_c0;\n  byte *local_b8;\n  uint local_b0;\n  byte *local_a8;\n  uint local_a0;\n  byte *local_98;\n  uint local_90;\n  byte *local_88;\n  uint local_80;\n  byte *local_78 [2];\n  byte local_68 [16];\n  byte *local_58;\n  undefined8 local_50;\n  byte local_48 [24];\n  \n  bVar30 = 0;\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar20 = local_78[0];\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }\n  local_12d = '\0';\nLAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}\n\n" (function_definition "void FUN_00309530(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)\n\n{\n  long *plVar1;\n  byte bVar2;\n  ushort uVar3;\n  uint uVar4;\n  undefined8 *puVar5;\n  code *pcVar6;\n  long lVar7;\n  char cVar8;\n  uint uVar9;\n  long lVar10;\n  long lVar11;\n  size_t sVar12;\n  long lVar13;\n  long lVar14;\n  byte *pbVar15;\n  byte bVar16;\n  byte bVar17;\n  long lVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  uint uVar22;\n  ulong uVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  byte bVar30;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_150;\n  long local_140;\n  byte *local_138;\n  char local_12d;\n  int local_124;\n  byte *local_110;\n  uint *local_108;\n  long local_100;\n  undefined1 local_ea;\n  undefined1 local_e9;\n  long local_e8;\n  long local_e0;\n  long local_d8;\n  long local_d0;\n  byte **local_c8;\n  byte **local_c0;\n  byte *local_b8;\n  uint local_b0;\n  byte *local_a8;\n  uint local_a0;\n  byte *local_98;\n  uint local_90;\n  byte *local_88;\n  uint local_80;\n  byte *local_78 [2];\n  byte local_68 [16];\n  byte *local_58;\n  undefined8 local_50;\n  byte local_48 [24];\n  \n  bVar30 = 0;\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar20 = local_78[0];\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }\n  local_12d = '\0';\nLAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00309530(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" identifier (parameter_list "(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_7" type_identifier identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long *plVar1;\n  byte bVar2;\n  ushort uVar3;\n  uint uVar4;\n  undefined8 *puVar5;\n  code *pcVar6;\n  long lVar7;\n  char cVar8;\n  uint uVar9;\n  long lVar10;\n  long lVar11;\n  size_t sVar12;\n  long lVar13;\n  long lVar14;\n  byte *pbVar15;\n  byte bVar16;\n  byte bVar17;\n  long lVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  uint uVar22;\n  ulong uVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  byte bVar30;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_150;\n  long local_140;\n  byte *local_138;\n  char local_12d;\n  int local_124;\n  byte *local_110;\n  uint *local_108;\n  long local_100;\n  undefined1 local_ea;\n  undefined1 local_e9;\n  long local_e8;\n  long local_e0;\n  long local_d8;\n  long local_d0;\n  byte **local_c8;\n  byte **local_c0;\n  byte *local_b8;\n  uint local_b0;\n  byte *local_a8;\n  uint local_a0;\n  byte *local_98;\n  uint local_90;\n  byte *local_88;\n  uint local_80;\n  byte *local_78 [2];\n  byte local_68 [16];\n  byte *local_58;\n  undefined8 local_50;\n  byte local_48 [24];\n  \n  bVar30 = 0;\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar20 = local_78[0];\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }\n  local_12d = '\0';\nLAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "undefined1 uVar28;" type_identifier identifier ;) (declaration "bool bVar29;" primitive_type identifier ;) (declaration "byte bVar30;" type_identifier identifier ;) (declaration "long local_168;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_160;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_158;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_150;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_140;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *local_138;" type_identifier (pointer_declarator "*local_138" * identifier) ;) (declaration "char local_12d;" primitive_type identifier ;) (declaration "int local_124;" primitive_type identifier ;) (declaration "byte *local_110;" type_identifier (pointer_declarator "*local_110" * identifier) ;) (declaration "uint *local_108;" type_identifier (pointer_declarator "*local_108" * identifier) ;) (declaration "long local_100;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_ea;" type_identifier identifier ;) (declaration "undefined1 local_e9;" type_identifier identifier ;) (declaration "long local_e8;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_e0;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_d8;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_d0;" (sized_type_specifier "long" long) identifier ;) (declaration "byte **local_c8;" type_identifier (pointer_declarator "**local_c8" * (pointer_declarator "*local_c8" * identifier)) ;) (declaration "byte **local_c0;" type_identifier (pointer_declarator "**local_c0" * (pointer_declarator "*local_c0" * identifier)) ;) (declaration "byte *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "byte *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "byte *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "byte *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "byte *local_78 [2];" type_identifier (pointer_declarator "*local_78 [2]" * (array_declarator "local_78 [2]" identifier [ number_literal ])) ;) (declaration "byte local_68 [16];" type_identifier (array_declarator "local_68 [16]" identifier [ number_literal ]) ;) (declaration "byte *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "byte local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "bVar30 = 0;" (assignment_expression "bVar30 = 0" identifier = number_literal) ;) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" if (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }" { (expression_statement "local_78[0] = local_68;" (assignment_expression "local_78[0] = local_68" (subscript_expression "local_78[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_001a61c0(local_78,"");" (call_expression "FUN_001a61c0(local_78,"")" identifier (argument_list "(local_78,"")" ( identifier , (string_literal """" " ") ))) ;) }) (else_clause "else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" else (if_statement "if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" if (parenthesized_expression "(*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0)" ( (binary_expression "*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0" (pointer_expression "*(code **)(*(long *)param_3 + 0x80)" * (cast_expression "(code **)(*(long *)param_3 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_3 + 0x80)" ( (binary_expression "*(long *)param_3 + 0x80" (pointer_expression "*(long *)param_3" * (cast_expression "(long *)param_3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) )) (compound_statement "{\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }" { (expression_statement "FUN_0022bf40(local_78,param_3 + 0xf8,param_4);" (call_expression "FUN_0022bf40(local_78,param_3 + 0xf8,param_4)" identifier (argument_list "(local_78,param_3 + 0xf8,param_4)" ( identifier , (binary_expression "param_3 + 0xf8" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" else (compound_statement "{\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" { (expression_statement "(**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);" (call_expression "(**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4)" (parenthesized_expression "(**(code **)(*(long *)param_3 + 0x80))" ( (pointer_expression "**(code **)(*(long *)param_3 + 0x80)" * (pointer_expression "*(code **)(*(long *)param_3 + 0x80)" * (cast_expression "(code **)(*(long *)param_3 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_3 + 0x80)" ( (binary_expression "*(long *)param_3 + 0x80" (pointer_expression "*(long *)param_3" * (cast_expression "(long *)param_3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(local_78,param_3,param_4)" ( identifier , identifier , identifier ))) ;) }))))) (expression_statement "pbVar20 = local_78[0];" (assignment_expression "pbVar20 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }" if (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }" { (labeled_statement "LAB_003095e3:\n    bVar27 = false;" statement_identifier : (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;)) (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" identifier = number_literal) ;) (expression_statement "local_140 = 0;" (assignment_expression "local_140 = 0" identifier = number_literal) ;) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (expression_statement "local_150 = 0;" (assignment_expression "local_150 = 0" identifier = number_literal) ;) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }" else (compound_statement "{\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }" { (expression_statement "pbVar15 = (byte *)0xffffffffffffffff;" (assignment_expression "pbVar15 = (byte *)0xffffffffffffffff" identifier = (cast_expression "(byte *)0xffffffffffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = local_48;" (assignment_expression "local_58 = local_48" identifier = identifier) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = local_78[0] == (byte *)0x0;" (assignment_expression "uVar28 = local_78[0] == (byte *)0x0" identifier = (binary_expression "local_78[0] == (byte *)0x0" (subscript_expression "local_78[0]" identifier [ number_literal ]) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }" if (parenthesized_expression "(!(bool)uVar28)" ( (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }" { (expression_statement "sVar12 = strlen((char *)local_78[0]);" (assignment_expression "sVar12 = strlen((char *)local_78[0])" identifier = (call_expression "strlen((char *)local_78[0])" identifier (argument_list "((char *)local_78[0])" ( (cast_expression "(char *)local_78[0]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_78[0]" identifier [ number_literal ])) )))) ;) (expression_statement "pbVar15 = pbVar20 + sVar12;" (assignment_expression "pbVar15 = pbVar20 + sVar12" identifier = (binary_expression "pbVar20 + sVar12" identifier + identifier)) ;) })) (expression_statement "FUN_001a61c0(&local_58,pbVar20,pbVar15);" (call_expression "FUN_001a61c0(&local_58,pbVar20,pbVar15)" identifier (argument_list "(&local_58,pbVar20,pbVar15)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "lVar18 = 5;" (assignment_expression "lVar18 = 5" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".text";" (assignment_expression "pbVar20 = (byte *)".text"" identifier = (cast_expression "(byte *)".text"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".text"" " string_content "))) ;) (expression_statement "pbVar15 = local_58;" (assignment_expression "pbVar15 = local_58" identifier = identifier) ;) (do_statement "do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);" do (compound_statement "{\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = *pbVar20 < *pbVar15;" (assignment_expression "uVar24 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "uVar28 = *pbVar20 == *pbVar15;" (assignment_expression "uVar28 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar28)" ( (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;) (expression_statement "bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;" (assignment_expression "bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" identifier = (binary_expression "(!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar28)" ( (binary_expression "!(bool)uVar24 && !(bool)uVar28" (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }" { (expression_statement "lVar18 = 0xf;" (assignment_expression "lVar18 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".gnu.linkonce.t";" (assignment_expression "pbVar20 = (byte *)".gnu.linkonce.t"" identifier = (cast_expression "(byte *)".gnu.linkonce.t"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.t"" " string_content "))) ;) (expression_statement "pbVar15 = local_58;" (assignment_expression "pbVar15 = local_58" identifier = identifier) ;) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);" do (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = *pbVar20 < *pbVar15;" (assignment_expression "bVar27 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }" if (parenthesized_expression "((!bVar27 && !bVar25) != bVar27)" ( (binary_expression "(!bVar27 && !bVar25) != bVar27" (parenthesized_expression "(!bVar27 && !bVar25)" ( (binary_expression "!bVar27 && !bVar25" (unary_expression "!bVar27" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }" { (if_statement "if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n          FUN_0049e330(local_58);\n        }" { (expression_statement "FUN_0049e330(local_58);" (call_expression "FUN_0049e330(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (goto_statement "goto LAB_003095e3;" goto statement_identifier ;) })) })) (if_statement "if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n      FUN_0049e330(local_58);\n    }" { (expression_statement "FUN_0049e330(local_58);" (call_expression "FUN_0049e330(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (expression_statement "local_50 = CONCAT44(local_50._4_4_,param_4);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,param_4)" identifier = (call_expression "CONCAT44(local_50._4_4_,param_4)" identifier (argument_list "(local_50._4_4_,param_4)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" identifier = identifier) ;) (expression_statement "local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);" (assignment_expression "local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" identifier = (call_expression "FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" identifier (argument_list "(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" ( (binary_expression "*(long *)(param_1 + 0x298) + 0xa8" (pointer_expression "*(long *)(param_1 + 0x298)" * (cast_expression "(long *)(param_1 + 0x298)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) + number_literal) , (pointer_expression "&local_58" & identifier) )))) ;) (expression_statement "local_150 = local_158 + 0x18;" (assignment_expression "local_150 = local_158 + 0x18" identifier = (binary_expression "local_158 + 0x18" identifier + number_literal)) ;) (expression_statement "local_140 = local_158 + 0x48;" (assignment_expression "local_140 = local_158 + 0x48" identifier = (binary_expression "local_158 + 0x48" identifier + number_literal)) ;) (expression_statement "local_160 = local_158 + 0x30;" (assignment_expression "local_160 = local_158 + 0x30" identifier = (binary_expression "local_158 + 0x30" identifier + number_literal)) ;) (expression_statement "local_168 = local_158 + 0x60;" (assignment_expression "local_168 = local_158 + 0x60" identifier = (binary_expression "local_158 + 0x60" identifier + number_literal)) ;) (expression_statement "bVar27 = true;" (assignment_expression "bVar27 = true" identifier = true) ;) }))) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" { (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0'))" ( (binary_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')" (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2)" ( (binary_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" * (cast_expression "(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')" ( (comma_expression "cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0'" (assignment_expression "cVar8 = (**(code **)(*param_2 + 0x90))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x90))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x90))" ( (pointer_expression "**(code **)(*param_2 + 0x90)" * (pointer_expression "*(code **)(*param_2 + 0x90)" * (cast_expression "(code **)(*param_2 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x90)" ( (binary_expression "*param_2 + 0x90" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) , (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "pcVar6 = *(code **)(*param_2 + 0x10);" (assignment_expression "pcVar6 = *(code **)(*param_2 + 0x10)" identifier = (pointer_expression "*(code **)(*param_2 + 0x10)" * (cast_expression "(code **)(*param_2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" if (parenthesized_expression "(pcVar6 != FUN_001a5310)" ( (binary_expression "pcVar6 != FUN_001a5310" identifier != identifier) )) (compound_statement "{\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" { (expression_statement "local_12d = (*pcVar6)(param_2,local_78[0]);" (assignment_expression "local_12d = (*pcVar6)(param_2,local_78[0])" identifier = (call_expression "(*pcVar6)(param_2,local_78[0])" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00309642;" goto statement_identifier ;) })) (expression_statement "pcVar6 = *(code **)(*param_2 + 0x98);" (assignment_expression "pcVar6 = *(code **)(*param_2 + 0x98)" identifier = (pointer_expression "*(code **)(*param_2 + 0x98)" * (cast_expression "(code **)(*param_2 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x98)" ( (binary_expression "*param_2 + 0x98" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (expression_statement "bVar25 = pcVar6 < FUN_001a53d0;" (assignment_expression "bVar25 = pcVar6 < FUN_001a53d0" identifier = (binary_expression "pcVar6 < FUN_001a53d0" identifier < identifier)) ;) (expression_statement "bVar29 = pcVar6 == FUN_001a53d0;" (assignment_expression "bVar29 = pcVar6 == FUN_001a53d0" identifier = (binary_expression "pcVar6 == FUN_001a53d0" identifier == identifier)) ;) (if_statement "if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" if (parenthesized_expression "(!bVar29)" ( (unary_expression "!bVar29" ! identifier) )) (compound_statement "{\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" { (expression_statement "local_12d = (*pcVar6)(param_2,local_78[0]);" (assignment_expression "local_12d = (*pcVar6)(param_2,local_78[0])" identifier = (call_expression "(*pcVar6)(param_2,local_78[0])" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00309642;" goto statement_identifier ;) })) (expression_statement "lVar18 = 0xc;" (assignment_expression "lVar18 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".rodata._ZTV";" (assignment_expression "pbVar20 = (byte *)".rodata._ZTV"" identifier = (cast_expression "(byte *)".rodata._ZTV"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rodata._ZTV"" " string_content "))) ;) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);" do (compound_statement "{\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar20 < *pbVar15;" (assignment_expression "bVar25 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar29 = *pbVar20 == *pbVar15;" (assignment_expression "bVar29 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar25 = (!bVar25 && !bVar29) == bVar25;" (assignment_expression "bVar25 = (!bVar25 && !bVar29) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar29) == bVar25" (parenthesized_expression "(!bVar25 && !bVar29)" ( (binary_expression "!bVar25 && !bVar29" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }" { (expression_statement "lVar18 = 0x11;" (assignment_expression "lVar18 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".data.rel.ro._ZTV";" (assignment_expression "pbVar20 = (byte *)".data.rel.ro._ZTV"" identifier = (cast_expression "(byte *)".data.rel.ro._ZTV"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".data.rel.ro._ZTV"" " string_content "))) ;) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);" do (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar20 < *pbVar15;" (assignment_expression "bVar26 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;) (expression_statement "bVar25 = (!bVar26 && !bVar25) == bVar26;" (assignment_expression "bVar25 = (!bVar26 && !bVar25) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar25) == bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" ( (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }" { (expression_statement "lVar18 = 0xc;" (assignment_expression "lVar18 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".rodata._ZTC";" (assignment_expression "pbVar20 = (byte *)".rodata._ZTC"" identifier = (cast_expression "(byte *)".rodata._ZTC"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".rodata._ZTC"" " string_content "))) ;) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);" do (compound_statement "{\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar20 < *pbVar15;" (assignment_expression "bVar29 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar25 = (!bVar29 && !bVar25) == bVar29;" (assignment_expression "bVar25 = (!bVar29 && !bVar25) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar25) == bVar29" (parenthesized_expression "(!bVar29 && !bVar25)" ( (binary_expression "!bVar29 && !bVar25" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }" { (expression_statement "lVar18 = 0x11;" (assignment_expression "lVar18 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".data.rel.ro._ZTC";" (assignment_expression "pbVar20 = (byte *)".data.rel.ro._ZTC"" identifier = (cast_expression "(byte *)".data.rel.ro._ZTC"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".data.rel.ro._ZTC"" " string_content "))) ;) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);" do (compound_statement "{\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar20 < *pbVar15;" (assignment_expression "bVar26 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;) (expression_statement "bVar25 = (!bVar26 && !bVar25) == bVar26;" (assignment_expression "bVar25 = (!bVar26 && !bVar25) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar25) == bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" ( (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }" { (expression_statement "lVar18 = 9;" (assignment_expression "lVar18 = 9" identifier = number_literal) ;) (expression_statement "pbVar20 = (byte *)".eh_frame";" (assignment_expression "pbVar20 = (byte *)".eh_frame"" identifier = (cast_expression "(byte *)".eh_frame"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".eh_frame"" " string_content "))) ;) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);" do (compound_statement "{\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar20 < *pbVar15;" (assignment_expression "bVar29 = *pbVar20 < *pbVar15" identifier = (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" identifier = (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "local_12d = (!bVar29 && !bVar25) != bVar29;" (assignment_expression "local_12d = (!bVar29 && !bVar25) != bVar29" identifier = (binary_expression "(!bVar29 && !bVar25) != bVar29" (parenthesized_expression "(!bVar29 && !bVar25)" ( (binary_expression "!bVar29 && !bVar25" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00309642;" goto statement_identifier ;) })) })) })) })) })) (expression_statement "local_12d = '\0';" (assignment_expression "local_12d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }" statement_identifier : (if_statement "if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }" if (parenthesized_expression "(param_6 != 0)" ( (binary_expression "param_6 != 0" identifier != number_literal) )) (compound_statement "{\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }" { (expression_statement "local_138 = (byte *)0x0;" (assignment_expression "local_138 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "local_108 = param_5;" (assignment_expression "local_108 = param_5" identifier = identifier) ;) (do_statement "do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);" do (compound_statement "{\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    }" { (expression_statement "uVar4 = local_108[2];" (assignment_expression "uVar4 = local_108[2]" identifier = (subscript_expression "local_108[2]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = local_108[1] >> 8;" (assignment_expression "uVar22 = local_108[1] >> 8" identifier = (binary_expression "local_108[1] >> 8" (subscript_expression "local_108[1]" identifier [ number_literal ]) >> number_literal)) ;) (if_statement "if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" if (parenthesized_expression "(uVar22 < param_7)" ( (binary_expression "uVar22 < param_7" identifier < identifier) )) (compound_statement "{\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" { (expression_statement "FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");" (call_expression "FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs")" identifier (argument_list "("../../gold/gc.h",0xea,"gc_process_relocs")" ( (string_literal ""../../gold/gc.h"" " string_content ") , number_literal , (string_literal ""gc_process_relocs"" " string_content ") ))) ;) })) (expression_statement "lVar18 = (ulong)(uVar22 << 4) + param_8;" (assignment_expression "lVar18 = (ulong)(uVar22 << 4) + param_8" identifier = (binary_expression "(ulong)(uVar22 << 4) + param_8" (call_expression "(ulong)(uVar22 << 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar22 << 4)" ( (binary_expression "uVar22 << 4" identifier << number_literal) ))) + identifier)) ;) (expression_statement "uVar3 = *(ushort *)(lVar18 + 0xe);" (assignment_expression "uVar3 = *(ushort *)(lVar18 + 0xe)" identifier = (pointer_expression "*(ushort *)(lVar18 + 0xe)" * (cast_expression "(ushort *)(lVar18 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xe)" ( (binary_expression "lVar18 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = (uint)uVar3;" (assignment_expression "uVar9 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }" if (parenthesized_expression "(uVar3 < 0xff00)" ( (binary_expression "uVar3 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }" { (labeled_statement "LAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);" statement_identifier : (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(lVar18 + 4)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(lVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 4)" ( (binary_expression "lVar18 + 4" identifier + number_literal) ))))) ;)) (expression_statement "local_124 = uVar4 + *(uint *)(lVar18 + 4);" (assignment_expression "local_124 = uVar4 + *(uint *)(lVar18 + 4)" identifier = (binary_expression "uVar4 + *(uint *)(lVar18 + 4)" identifier + (pointer_expression "*(uint *)(lVar18 + 4)" * (cast_expression "(uint *)(lVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 4)" ( (binary_expression "lVar18 + 4" identifier + number_literal) )))))) ;) (if_statement "if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }" if (parenthesized_expression "(bVar27)" ( identifier )) (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }" { (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar9);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar9)" identifier = (call_expression "CONCAT44(local_50._4_4_,uVar9)" identifier (argument_list "(local_50._4_4_,uVar9)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" identifier = identifier) ;) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar25 = true;" (assignment_expression "bVar25 = true" identifier = true) ;) (if_statement "if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;" if (parenthesized_expression "((*(byte *)(lVar18 + 0xc) & 0xf) == 3)" ( (binary_expression "(*(byte *)(lVar18 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(lVar18 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar18 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar18 + 0xc)" * (cast_expression "(byte *)(lVar18 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xc)" ( (binary_expression "lVar18 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0030982d;" goto statement_identifier ;)) (labeled_statement "LAB_003096e8:\n            local_58 = (byte *)0x0;" statement_identifier : (expression_statement "local_58 = (byte *)0x0;" (assignment_expression "local_58 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "FUN_001a7300(local_150,&local_58);" (call_expression "FUN_001a7300(local_150,&local_58)" identifier (argument_list "(local_150,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (goto_statement "goto LAB_00309703;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }" else (compound_statement "{\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }" { (if_statement "if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }" if (parenthesized_expression "(uVar3 == 0xffff)" ( (binary_expression "uVar3 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }" { (expression_statement "lVar13 = *(long *)(param_3 + 0x40);" (assignment_expression "lVar13 = *(long *)(param_3 + 0x40)" identifier = (pointer_expression "*(long *)(param_3 + 0x40)" * (cast_expression "(long *)(param_3 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x40)" ( (binary_expression "param_3 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }" { (expression_statement "lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);" (assignment_expression "lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3)" identifier = (call_expression "(**(code **)(*(long *)param_3 + 0xd8))(param_3)" (parenthesized_expression "(**(code **)(*(long *)param_3 + 0xd8))" ( (pointer_expression "**(code **)(*(long *)param_3 + 0xd8)" * (pointer_expression "*(code **)(*(long *)param_3 + 0xd8)" * (cast_expression "(code **)(*(long *)param_3 + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_3 + 0xd8)" ( (binary_expression "*(long *)param_3 + 0xd8" (pointer_expression "*(long *)param_3" * (cast_expression "(long *)param_3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "*(long *)(param_3 + 0x40) = lVar13;" (assignment_expression "*(long *)(param_3 + 0x40) = lVar13" (pointer_expression "*(long *)(param_3 + 0x40)" * (cast_expression "(long *)(param_3 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x40)" ( (binary_expression "param_3 + 0x40" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar9 = FUN_00392c60(lVar13,param_3,uVar22);" (assignment_expression "uVar9 = FUN_00392c60(lVar13,param_3,uVar22)" identifier = (call_expression "FUN_00392c60(lVar13,param_3,uVar22)" identifier (argument_list "(lVar13,param_3,uVar22)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_003097e5;" goto statement_identifier ;) })) (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(lVar18 + 4)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(lVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 4)" ( (binary_expression "lVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_124 = uVar4 + *(uint *)(lVar18 + 4);" (assignment_expression "local_124 = uVar4 + *(uint *)(lVar18 + 4)" identifier = (binary_expression "uVar4 + *(uint *)(lVar18 + 4)" identifier + (pointer_expression "*(uint *)(lVar18 + 4)" * (cast_expression "(uint *)(lVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 4)" ( (binary_expression "lVar18 + 4" identifier + number_literal) )))))) ;) (if_statement "if (!bVar27) goto LAB_00309772;" if (parenthesized_expression "(!bVar27)" ( (unary_expression "!bVar27" ! identifier) )) (goto_statement "goto LAB_00309772;" goto statement_identifier ;)) (expression_statement "local_58 = (byte *)0x0;" (assignment_expression "local_58 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = local_50 & 0xffffffff00000000;" (assignment_expression "local_50 = local_50 & 0xffffffff00000000" identifier = (binary_expression "local_50 & 0xffffffff00000000" identifier & number_literal)) ;) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (if_statement "if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;" if (parenthesized_expression "((*(byte *)(lVar18 + 0xc) & 0xf) != 3)" ( (binary_expression "(*(byte *)(lVar18 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(lVar18 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar18 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar18 + 0xc)" * (cast_expression "(byte *)(lVar18 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xc)" ( (binary_expression "lVar18 + 0xc" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_003096e8;" goto statement_identifier ;)) (labeled_statement "LAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;" statement_identifier : (expression_statement "local_58 = (byte *)0xffffffffffffffff;" (assignment_expression "local_58 = (byte *)0xffffffffffffffff" identifier = (cast_expression "(byte *)0xffffffffffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "FUN_001a7300(local_150,&local_58);" (call_expression "FUN_001a7300(local_150,&local_58)" identifier (argument_list "(local_150,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (labeled_statement "LAB_00309703:\n          local_58 = pbVar20;" statement_identifier : (expression_statement "local_58 = pbVar20;" (assignment_expression "local_58 = pbVar20" identifier = identifier) ;)) (expression_statement "local_50 = (long)(int)uVar4;" (assignment_expression "local_50 = (long)(int)uVar4" identifier = (cast_expression "(long)(int)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_001a74a0(local_160,&local_58);" (call_expression "FUN_001a74a0(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "local_58 = (byte *)(ulong)*local_108;" (assignment_expression "local_58 = (byte *)(ulong)*local_108" identifier = (binary_expression "(byte *)(ulong)*local_108" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * identifier)) ;) (expression_statement "puVar5 = *(undefined8 **)(local_140 + 8);" (assignment_expression "puVar5 = *(undefined8 **)(local_140 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_140 + 8)" * (cast_expression "(undefined8 **)(local_140 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 8)" ( (binary_expression "local_140 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" if (parenthesized_expression "(puVar5 == *(undefined8 **)(local_140 + 0x10))" ( (binary_expression "puVar5 == *(undefined8 **)(local_140 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_140 + 0x10)" * (cast_expression "(undefined8 **)(local_140 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 0x10)" ( (binary_expression "local_140 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }" { (expression_statement "FUN_001a6070(local_140,puVar5,&local_58);" (call_expression "FUN_001a6070(local_140,puVar5,&local_58)" identifier (argument_list "(local_140,puVar5,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" else (compound_statement "{\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" { (expression_statement "*puVar5 = local_58;" (assignment_expression "*puVar5 = local_58" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_140 + 8) = puVar5 + 1;" (assignment_expression "*(undefined8 **)(local_140 + 8) = puVar5 + 1" (pointer_expression "*(undefined8 **)(local_140 + 8)" * (cast_expression "(undefined8 **)(local_140 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 8)" ( (binary_expression "local_140 + 8" identifier + number_literal) )))) = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);" (assignment_expression "local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000)" identifier = (cast_expression "(byte *)((ulong)local_88 & 0xffffffff00000000)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_88 & 0xffffffff00000000)" ( (binary_expression "(ulong)local_88 & 0xffffffff00000000" (cast_expression "(ulong)local_88" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "FUN_001a7630(local_168,&local_88);" (call_expression "FUN_001a7630(local_168,&local_88)" identifier (argument_list "(local_168,&local_88)" ( identifier , (pointer_expression "&local_88" & identifier) ))) ;) (if_statement "if (!bVar25) goto LAB_00309772;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_00309772;" goto statement_identifier ;)) }))) (expression_statement "local_110 = param_3;" (assignment_expression "local_110 = param_3" identifier = identifier) ;) (if_statement "if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1))" ( (binary_expression "(local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)" (parenthesized_expression "(local_12d == '\0')" ( (binary_expression "local_12d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((*(byte *)(lVar18 + 0xc) & 0xf) == 1)" ( (binary_expression "(*(byte *)(lVar18 + 0xc) & 0xf) == 1" (parenthesized_expression "(*(byte *)(lVar18 + 0xc) & 0xf)" ( (binary_expression "*(byte *)(lVar18 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar18 + 0xc)" * (cast_expression "(byte *)(lVar18 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xc)" ( (binary_expression "lVar18 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }" { (labeled_statement "LAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;" statement_identifier : (if_statement "if (param_4 != uVar9) goto LAB_003098ec;" if (parenthesized_expression "(param_4 != uVar9)" ( (binary_expression "param_4 != uVar9" identifier != identifier) )) (goto_statement "goto LAB_003098ec;" goto statement_identifier ;))) }) (else_clause "else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" { (expression_statement "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);" (assignment_expression "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" { (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }" if (parenthesized_expression "(*(char *)(lVar13 + 0x2a61) != '\0')" ( (binary_expression "*(char *)(lVar13 + 0x2a61) != '\0'" (pointer_expression "*(char *)(lVar13 + 0x2a61)" * (cast_expression "(char *)(lVar13 + 0x2a61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x2a61)" ( (binary_expression "lVar13 + 0x2a61" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }" { (expression_statement "local_a0 = (uint)*(ushort *)(lVar18 + 0xe);" (assignment_expression "local_a0 = (uint)*(ushort *)(lVar18 + 0xe)" identifier = (binary_expression "(uint)*(ushort *)(lVar18 + 0xe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(lVar18 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xe)" ( (binary_expression "lVar18 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "local_e8 = *(long *)(param_1 + 0x298) + 0x68;" (assignment_expression "local_e8 = *(long *)(param_1 + 0x298) + 0x68" identifier = (binary_expression "*(long *)(param_1 + 0x298) + 0x68" (pointer_expression "*(long *)(param_1 + 0x298)" * (cast_expression "(long *)(param_1 + 0x298)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_a8 = param_3;" (assignment_expression "local_a8 = param_3" identifier = identifier) ;) (expression_statement "FUN_001a7850(local_e8,&local_a8,&local_e8,1);" (call_expression "FUN_001a7850(local_e8,&local_a8,&local_e8,1)" identifier (argument_list "(local_e8,&local_a8,&local_e8,1)" ( identifier , (pointer_expression "&local_a8" & identifier) , (pointer_expression "&local_e8" & identifier) , number_literal ))) ;) (goto_statement "goto LAB_003098d8;" goto statement_identifier ;) })) (if_statement "if (param_4 == uVar9) goto LAB_00309772;" if (parenthesized_expression "(param_4 == uVar9)" ( (binary_expression "param_4 == uVar9" identifier == identifier) )) (goto_statement "goto LAB_00309772;" goto statement_identifier ;)) (labeled_statement "LAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" statement_identifier : (if_statement "if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(lVar13 + 0x2809) != '\0')" ( (binary_expression "*(char *)(lVar13 + 0x2809) != '\0'" (pointer_expression "*(char *)(lVar13 + 0x2809)" * (cast_expression "(char *)(lVar13 + 0x2809)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x2809)" ( (binary_expression "lVar13 + 0x2809" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" { (expression_statement "lVar13 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar13 = *(long *)(param_1 + 0x290)" identifier = (pointer_expression "*(long *)(param_1 + 0x290)" * (cast_expression "(long *)(param_1 + 0x290)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x290)" ( (binary_expression "param_1 + 0x290" identifier + number_literal) ))))) ;) (expression_statement "lVar18 = lVar13 + 0x28;" (assignment_expression "lVar18 = lVar13 + 0x28" identifier = (binary_expression "lVar13 + 0x28" identifier + number_literal)) ;) (expression_statement "local_88 = local_110;" (assignment_expression "local_88 = local_110" identifier = identifier) ;) (expression_statement "lVar10 = lVar18;" (assignment_expression "lVar10 = lVar18" identifier = identifier) ;) (expression_statement "lVar11 = lVar18;" (assignment_expression "lVar11 = lVar18" identifier = identifier) ;) (expression_statement "lVar14 = *(long *)(lVar13 + 0x30);" (assignment_expression "lVar14 = *(long *)(lVar13 + 0x30)" identifier = (pointer_expression "*(long *)(lVar13 + 0x30)" * (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_98 = param_3;" (assignment_expression "local_98 = param_3" identifier = identifier) ;) (expression_statement "local_90 = param_4;" (assignment_expression "local_90 = param_4" identifier = identifier) ;) (expression_statement "local_80 = uVar9;" (assignment_expression "local_80 = uVar9" identifier = identifier) ;) (if_statement "if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }" if (parenthesized_expression "(*(long *)(lVar13 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar13 + 0x30) == 0" (pointer_expression "*(long *)(lVar13 + 0x30)" * (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }" { (labeled_statement "LAB_003099a8:\n              local_c8 = &local_98;" statement_identifier : (expression_statement "local_c8 = &local_98;" (assignment_expression "local_c8 = &local_98" identifier = (pointer_expression "&local_98" & identifier)) ;)) (expression_statement "lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);" (assignment_expression "lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea)" identifier = (call_expression "FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea)" identifier (argument_list "(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_00567620" & identifier) , (pointer_expression "&local_c8" & identifier) , (pointer_expression "&local_ea" & identifier) )))) ;) }) (else_clause "else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }" else (compound_statement "{\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }" { (do_statement "do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);" do (compound_statement "{\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              }" { (while_statement "while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }" while (parenthesized_expression "((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))))" ( (parenthesized_expression "(lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))" ( (comma_expression "lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))" (assignment_expression "lVar11 = lVar14" identifier = identifier) , (binary_expression "*(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))" (binary_expression "*(byte **)(lVar11 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar11 + 0x20)" * (cast_expression "(byte **)(lVar11 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) )))) < identifier) || (parenthesized_expression "((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))" ( (binary_expression "param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar11 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar11 + 0x20)" * (cast_expression "(byte **)(lVar11 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(lVar11 + 0x28) < param_4)" ( (binary_expression "*(uint *)(lVar11 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar11 + 0x28)" * (cast_expression "(uint *)(lVar11 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) )))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }" { (expression_statement "plVar1 = (long *)(lVar11 + 0x18);" (assignment_expression "plVar1 = (long *)(lVar11 + 0x18)" identifier = (cast_expression "(long *)(lVar11 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x18)" ( (binary_expression "lVar11 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar11 = lVar10;" (assignment_expression "lVar11 = lVar10" identifier = identifier) ;) (expression_statement "lVar14 = *plVar1;" (assignment_expression "lVar14 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (if_statement "if (*plVar1 == 0) goto LAB_00309982;" if (parenthesized_expression "(*plVar1 == 0)" ( (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_00309982;" goto statement_identifier ;)) })) (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" identifier = identifier) ;) (expression_statement "lVar14 = *(long *)(lVar11 + 0x10);" (assignment_expression "lVar14 = *(long *)(lVar11 + 0x10)" identifier = (pointer_expression "*(long *)(lVar11 + 0x10)" * (cast_expression "(long *)(lVar11 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x10)" ( (binary_expression "lVar11 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(lVar11 + 0x10) != 0)" ( (binary_expression "*(long *)(lVar11 + 0x10) != 0" (pointer_expression "*(long *)(lVar11 + 0x10)" * (cast_expression "(long *)(lVar11 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x10)" ( (binary_expression "lVar11 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;" statement_identifier : (if_statement "if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;" if (parenthesized_expression "(((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))" ( (binary_expression "((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28))))" (parenthesized_expression "((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20)))" ( (binary_expression "(lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))" (parenthesized_expression "(lVar11 == lVar18)" ( (binary_expression "lVar11 == lVar18" identifier == identifier) )) || (parenthesized_expression "(param_3 < *(byte **)(lVar11 + 0x20))" ( (binary_expression "param_3 < *(byte **)(lVar11 + 0x20)" identifier < (pointer_expression "*(byte **)(lVar11 + 0x20)" * (cast_expression "(byte **)(lVar11 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28))))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))" ( (binary_expression "param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar11 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar11 + 0x20)" * (cast_expression "(byte **)(lVar11 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar11 + 0x20)" ( (binary_expression "lVar11 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(param_4 < *(uint *)(lVar11 + 0x28))" ( (binary_expression "param_4 < *(uint *)(lVar11 + 0x28)" identifier < (pointer_expression "*(uint *)(lVar11 + 0x28)" * (cast_expression "(uint *)(lVar11 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_003099a8;" goto statement_identifier ;))) }))) (expression_statement "local_d0 = lVar11 + 0x30;" (assignment_expression "local_d0 = lVar11 + 0x30" identifier = (binary_expression "lVar11 + 0x30" identifier + number_literal)) ;) (expression_statement "FUN_001a78f0(local_d0,&local_88,&local_d0,1);" (call_expression "FUN_001a78f0(local_d0,&local_88,&local_d0,1)" identifier (argument_list "(local_d0,&local_88,&local_d0,1)" ( identifier , (pointer_expression "&local_88" & identifier) , (pointer_expression "&local_d0" & identifier) , number_literal ))) ;) (expression_statement "plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);" (assignment_expression "plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0067cb08 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0067cb08 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x18)" ( (binary_expression "PTR_DAT_0067cb08 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }" if (parenthesized_expression "(plVar1 == (long *)0x0)" ( (binary_expression "plVar1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }" { (expression_statement "FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x73,"sized_target")" identifier (argument_list "("../../gold/parameters.h",0x73,"sized_target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""sized_target"" " string_content ") ))) ;) })) (if_statement "if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }" if (parenthesized_expression "(*(code **)(*plVar1 + 0x208) != FUN_001a4ba0)" ( (binary_expression "*(code **)(*plVar1 + 0x208) != FUN_001a4ba0" (pointer_expression "*(code **)(*plVar1 + 0x208)" * (cast_expression "(code **)(*plVar1 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar1 + 0x208)" ( (binary_expression "*plVar1 + 0x208" (pointer_expression "*plVar1" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }" { (expression_statement "(**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);" (call_expression "(**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124)" (parenthesized_expression "(**(code **)(*plVar1 + 0x208))" ( (pointer_expression "**(code **)(*plVar1 + 0x208)" * (pointer_expression "*(code **)(*plVar1 + 0x208)" * (cast_expression "(code **)(*plVar1 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar1 + 0x208)" ( (binary_expression "*plVar1 + 0x208" (pointer_expression "*plVar1" * identifier) + number_literal) ))))) )) (argument_list "(plVar1,param_1,param_3,param_4,local_110,uVar9,local_124)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }" if (parenthesized_expression "(local_138 != (byte *)0x0)" ( (binary_expression "local_138 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }" { (expression_statement "lVar18 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar18 = *(long *)(param_1 + 0x290)" identifier = (pointer_expression "*(long *)(param_1 + 0x290)" * (cast_expression "(long *)(param_1 + 0x290)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x290)" ( (binary_expression "param_1 + 0x290" identifier + number_literal) ))))) ;) (expression_statement "local_58 = local_48;" (assignment_expression "local_58 = local_48" identifier = identifier) ;) (expression_statement "sVar12 = strlen((char *)local_138);" (assignment_expression "sVar12 = strlen((char *)local_138)" identifier = (call_expression "strlen((char *)local_138)" identifier (argument_list "((char *)local_138)" ( (cast_expression "(char *)local_138" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "FUN_001a61c0(&local_58,local_138,local_138 + sVar12);" (call_expression "FUN_001a61c0(&local_58,local_138,local_138 + sVar12)" identifier (argument_list "(&local_58,local_138,local_138 + sVar12)" ( (pointer_expression "&local_58" & identifier) , identifier , (binary_expression "local_138 + sVar12" identifier + identifier) ))) ;) (expression_statement "lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);" (assignment_expression "lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58)" identifier = (call_expression "FUN_001c4d80(lVar18 + 0x88,&local_58)" identifier (argument_list "(lVar18 + 0x88,&local_58)" ( (binary_expression "lVar18 + 0x88" identifier + number_literal) , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (local_58 != local_48) {\n                FUN_0049e330();\n              }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n                FUN_0049e330();\n              }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar13 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar13 = *(long *)(param_1 + 0x290)" identifier = (pointer_expression "*(long *)(param_1 + 0x290)" * (cast_expression "(long *)(param_1 + 0x290)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x290)" ( (binary_expression "param_1 + 0x290" identifier + number_literal) ))))) ;) (if_statement "if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }" if (parenthesized_expression "(lVar18 != lVar13 + 0x90)" ( (binary_expression "lVar18 != lVar13 + 0x90" identifier != (binary_expression "lVar13 + 0x90" identifier + number_literal)) )) (compound_statement "{\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }" { (expression_statement "lVar10 = lVar13 + 0x28;" (assignment_expression "lVar10 = lVar13 + 0x28" identifier = (binary_expression "lVar13 + 0x28" identifier + number_literal)) ;) (expression_statement "local_50 = CONCAT44(local_50._4_4_,param_4);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,param_4)" identifier = (call_expression "CONCAT44(local_50._4_4_,param_4)" identifier (argument_list "(local_50._4_4_,param_4)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "lVar11 = lVar10;" (assignment_expression "lVar11 = lVar10" identifier = identifier) ;) (expression_statement "lVar14 = lVar10;" (assignment_expression "lVar14 = lVar10" identifier = identifier) ;) (expression_statement "lVar7 = *(long *)(lVar13 + 0x30);" (assignment_expression "lVar7 = *(long *)(lVar13 + 0x30)" identifier = (pointer_expression "*(long *)(lVar13 + 0x30)" * (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }" if (parenthesized_expression "(*(long *)(lVar13 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar13 + 0x30) == 0" (pointer_expression "*(long *)(lVar13 + 0x30)" * (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }" { (labeled_statement "LAB_00309ea0:\n                  local_c0 = &local_58;" statement_identifier : (expression_statement "local_c0 = &local_58;" (assignment_expression "local_c0 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;)) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" identifier = identifier) ;) (expression_statement "lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);" (assignment_expression "lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9)" identifier = (call_expression "FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9)" identifier (argument_list "(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_00567620" & identifier) , (pointer_expression "&local_c0" & identifier) , (pointer_expression "&local_e9" & identifier) )))) ;) }) (else_clause "else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }" else (compound_statement "{\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }" { (do_statement "do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);" do (compound_statement "{\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  }" { (while_statement "while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }" while (parenthesized_expression "((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))))" ( (parenthesized_expression "(lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))" ( (comma_expression "lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))" (assignment_expression "lVar14 = lVar7" identifier = identifier) , (binary_expression "*(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))" (binary_expression "*(byte **)(lVar14 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar14 + 0x20)" * (cast_expression "(byte **)(lVar14 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) )))) < identifier) || (parenthesized_expression "((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))" ( (binary_expression "param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar14 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar14 + 0x20)" * (cast_expression "(byte **)(lVar14 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(lVar14 + 0x28) < param_4)" ( (binary_expression "*(uint *)(lVar14 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar14 + 0x28)" * (cast_expression "(uint *)(lVar14 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x28)" ( (binary_expression "lVar14 + 0x28" identifier + number_literal) )))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }" { (expression_statement "plVar1 = (long *)(lVar14 + 0x18);" (assignment_expression "plVar1 = (long *)(lVar14 + 0x18)" identifier = (cast_expression "(long *)(lVar14 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x18)" ( (binary_expression "lVar14 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar14 = lVar11;" (assignment_expression "lVar14 = lVar11" identifier = identifier) ;) (expression_statement "lVar7 = *plVar1;" (assignment_expression "lVar7 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (if_statement "if (*plVar1 == 0) goto LAB_00309b02;" if (parenthesized_expression "(*plVar1 == 0)" ( (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_00309b02;" goto statement_identifier ;)) })) (expression_statement "lVar11 = lVar14;" (assignment_expression "lVar11 = lVar14" identifier = identifier) ;) (expression_statement "lVar7 = *(long *)(lVar14 + 0x10);" (assignment_expression "lVar7 = *(long *)(lVar14 + 0x10)" identifier = (pointer_expression "*(long *)(lVar14 + 0x10)" * (cast_expression "(long *)(lVar14 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x10)" ( (binary_expression "lVar14 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(lVar14 + 0x10) != 0)" ( (binary_expression "*(long *)(lVar14 + 0x10) != 0" (pointer_expression "*(long *)(lVar14 + 0x10)" * (cast_expression "(long *)(lVar14 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x10)" ( (binary_expression "lVar14 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;" statement_identifier : (if_statement "if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;" if (parenthesized_expression "(((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28)))))" ( (binary_expression "((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))" (parenthesized_expression "((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20)))" ( (binary_expression "(lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))" (parenthesized_expression "(lVar14 == lVar10)" ( (binary_expression "lVar14 == lVar10" identifier == identifier) )) || (parenthesized_expression "(param_3 < *(byte **)(lVar14 + 0x20))" ( (binary_expression "param_3 < *(byte **)(lVar14 + 0x20)" identifier < (pointer_expression "*(byte **)(lVar14 + 0x20)" * (cast_expression "(byte **)(lVar14 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))" ( (parenthesized_expression "(local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28)))" ( (comma_expression "local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))" (assignment_expression "local_58 = param_3" identifier = identifier) , (binary_expression "param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar14 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar14 + 0x20)" * (cast_expression "(byte **)(lVar14 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(param_4 < *(uint *)(lVar14 + 0x28))" ( (binary_expression "param_4 < *(uint *)(lVar14 + 0x28)" identifier < (pointer_expression "*(uint *)(lVar14 + 0x28)" * (cast_expression "(uint *)(lVar14 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x28)" ( (binary_expression "lVar14 + 0x28" identifier + number_literal) ))))) )))) )) ))) )) (goto_statement "goto LAB_00309ea0;" goto statement_identifier ;))) }))) (for_statement "for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }" for ( (assignment_expression "puVar5 = *(undefined8 **)(lVar18 + 0x50)" identifier = (pointer_expression "*(undefined8 **)(lVar18 + 0x50)" * (cast_expression "(undefined8 **)(lVar18 + 0x50)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar18 + 0x50)" ( (binary_expression "lVar18 + 0x50" identifier + number_literal) ))))) ; (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar5 = (undefined8 *)*puVar5" identifier = (cast_expression "(undefined8 *)*puVar5" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ) (compound_statement "{\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }" { (expression_statement "local_d8 = lVar14 + 0x30;" (assignment_expression "local_d8 = lVar14 + 0x30" identifier = (binary_expression "lVar14 + 0x30" identifier + number_literal)) ;) (expression_statement "FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);" (call_expression "FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1)" identifier (argument_list "(lVar14 + 0x30,puVar5 + 1,&local_d8,1)" ( (binary_expression "lVar14 + 0x30" identifier + number_literal) , (binary_expression "puVar5 + 1" identifier + number_literal) , (pointer_expression "&local_d8" & identifier) , number_literal ))) ;) })) })) })) }))) }))) }) (else_clause "else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" else (compound_statement "{\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" { (if_statement "if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" if (parenthesized_expression "(uVar22 < *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar22 < *(uint *)(param_3 + 0x120)" identifier < (pointer_expression "*(uint *)(param_3 + 0x120)" * (cast_expression "(uint *)(param_3 + 0x120)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x120)" ( (binary_expression "param_3 + 0x120" identifier + number_literal) ))))) )) (compound_statement "{\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" { (expression_statement "local_88 = (byte *)0x0;" (assignment_expression "local_88 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");" statement_identifier : (expression_statement "FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");" (call_expression "FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs")" identifier (argument_list "("../../gold/gc.h",0x11c,"gc_process_relocs")" ( (string_literal ""../../gold/gc.h"" " string_content ") , number_literal , (string_literal ""gc_process_relocs"" " string_content ") ))) ;)) })) (expression_statement "uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));" (assignment_expression "uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120))" identifier = (call_expression "(ulong)(uVar22 - *(uint *)(param_3 + 0x120))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar22 - *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar22 - *(uint *)(param_3 + 0x120)" identifier - (pointer_expression "*(uint *)(param_3 + 0x120)" * (cast_expression "(uint *)(param_3 + 0x120)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x120)" ( (binary_expression "param_3 + 0x120" identifier + number_literal) ))))) )))) ;) (if_statement "if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }" if (parenthesized_expression "((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23)" ( (binary_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23" (call_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3)" ( (binary_expression "*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3" (binary_expression "*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130)" (pointer_expression "*(long *)(param_3 + 0x138)" * (cast_expression "(long *)(param_3 + 0x138)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x138)" ( (binary_expression "param_3 + 0x138" identifier + number_literal) )))) - (pointer_expression "*(long *)(param_3 + 0x130)" * (cast_expression "(long *)(param_3 + 0x130)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x130)" ( (binary_expression "param_3 + 0x130" identifier + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }" { (expression_statement "FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");" (call_expression "FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol")" identifier (argument_list "("../../gold/object.h",0x8ad,"global_symbol")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""global_symbol"" " string_content ") ))) ;) })) (expression_statement "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);" (assignment_expression "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8)" identifier = (pointer_expression "*(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8)" * (cast_expression "(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_3 + 0x130) + uVar23 * 8)" ( (binary_expression "*(long *)(param_3 + 0x130) + uVar23 * 8" (pointer_expression "*(long *)(param_3 + 0x130)" * (cast_expression "(long *)(param_3 + 0x130)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x130)" ( (binary_expression "param_3 + 0x130" identifier + number_literal) )))) + (binary_expression "uVar23 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (local_88 == (byte *)0x0) goto LAB_00309db8;" if (parenthesized_expression "(local_88 == (byte *)0x0)" ( (binary_expression "local_88 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00309db8;" goto statement_identifier ;)) (if_statement "if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }" if (parenthesized_expression "((local_88[0x3a] & 0x10) != 0)" ( (binary_expression "(local_88[0x3a] & 0x10) != 0" (parenthesized_expression "(local_88[0x3a] & 0x10)" ( (binary_expression "local_88[0x3a] & 0x10" (subscript_expression "local_88[0x3a]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }" { (expression_statement "local_88 = (byte *)FUN_00443570(param_1,local_88);" (assignment_expression "local_88 = (byte *)FUN_00443570(param_1,local_88)" identifier = (cast_expression "(byte *)FUN_00443570(param_1,local_88)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00443570(param_1,local_88)" identifier (argument_list "(param_1,local_88)" ( identifier , identifier ))))) ;) })) (if_statement "if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }" if (parenthesized_expression "((local_88[0x3a] & 7) == 0)" ( (binary_expression "(local_88[0x3a] & 7) == 0" (parenthesized_expression "(local_88[0x3a] & 7)" ( (binary_expression "local_88[0x3a] & 7" (subscript_expression "local_88[0x3a]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_110 = *(byte **)(local_88 + 0x10);" (assignment_expression "local_110 = *(byte **)(local_88 + 0x10)" identifier = (pointer_expression "*(byte **)(local_88 + 0x10)" * (cast_expression "(byte **)(local_88 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_88 + 0x10)" ( (binary_expression "local_88 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_124 = uVar4 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_124 = uVar4 + *(uint *)(local_88 + 0x40)" identifier = (binary_expression "uVar4 + *(uint *)(local_88 + 0x40)" identifier + (pointer_expression "*(uint *)(local_88 + 0x40)" * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) )))))) ;) (if_statement "if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;" if (parenthesized_expression "((local_110[0x3c] & 1) != 0)" ( (binary_expression "(local_110[0x3c] & 1) != 0" (parenthesized_expression "(local_110[0x3c] & 1)" ( (binary_expression "local_110[0x3c] & 1" (subscript_expression "local_110[0x3c]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00309d1e;" goto statement_identifier ;)) (expression_statement "uVar9 = *(uint *)(local_88 + 0x18);" (assignment_expression "uVar9 = *(uint *)(local_88 + 0x18)" identifier = (pointer_expression "*(uint *)(local_88 + 0x18)" * (cast_expression "(uint *)(local_88 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x18)" ( (binary_expression "local_88 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "bVar16 = local_88[0x3b] >> 5 & 1;" (assignment_expression "bVar16 = local_88[0x3b] >> 5 & 1" identifier = (binary_expression "local_88[0x3b] >> 5 & 1" (binary_expression "local_88[0x3b] >> 5" (subscript_expression "local_88[0x3b]" identifier [ number_literal ]) >> number_literal) & number_literal)) ;) (expression_statement "uVar24 = (local_88[0x38] & 0xf) < 2;" (assignment_expression "uVar24 = (local_88[0x38] & 0xf) < 2" identifier = (binary_expression "(local_88[0x38] & 0xf) < 2" (parenthesized_expression "(local_88[0x38] & 0xf)" ( (binary_expression "local_88[0x38] & 0xf" (subscript_expression "local_88[0x38]" identifier [ number_literal ]) & number_literal) )) < number_literal)) ;) (expression_statement "uVar28 = (local_88[0x38] & 0xf) == 2;" (assignment_expression "uVar28 = (local_88[0x38] & 0xf) == 2" identifier = (binary_expression "(local_88[0x38] & 0xf) == 2" (parenthesized_expression "(local_88[0x38] & 0xf)" ( (binary_expression "local_88[0x38] & 0xf" (subscript_expression "local_88[0x38]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ;) (expression_statement "bVar17 = bVar16;" (assignment_expression "bVar17 = bVar16" identifier = identifier) ;) (if_statement "if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }" if (parenthesized_expression "((bool)uVar28)" ( (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = local_12d == '\0';" (assignment_expression "uVar28 = local_12d == '\0'" identifier = (binary_expression "local_12d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }" if (parenthesized_expression "(!(bool)uVar28)" ( (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }" { (expression_statement "uVar28 = bVar16 == 0;" (assignment_expression "uVar28 = bVar16 == 0" identifier = (binary_expression "bVar16 == 0" identifier == number_literal)) ;) (if_statement "if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }" if (parenthesized_expression "((bool)uVar28)" ( (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }" { (labeled_statement "LAB_00309f71:\n                uVar24 = 0;" statement_identifier : (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;)) (expression_statement "local_e0 = *(long *)(param_1 + 0x298) + 0x68;" (assignment_expression "local_e0 = *(long *)(param_1 + 0x298) + 0x68" identifier = (binary_expression "*(long *)(param_1 + 0x298) + 0x68" (pointer_expression "*(long *)(param_1 + 0x298)" * (cast_expression "(long *)(param_1 + 0x298)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_b8 = local_110;" (assignment_expression "local_b8 = local_110" identifier = identifier) ;) (expression_statement "local_b0 = uVar9;" (assignment_expression "local_b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_001a7850(local_e0,&local_b8,&local_e0,1);" (call_expression "FUN_001a7850(local_e0,&local_b8,&local_e0,1)" identifier (argument_list "(local_e0,&local_b8,&local_e0,1)" ( identifier , (pointer_expression "&local_b8" & identifier) , (pointer_expression "&local_e0" & identifier) , number_literal ))) ;) (expression_statement "bVar17 = bVar16;" (assignment_expression "bVar17 = bVar16" identifier = identifier) ;) }) (else_clause "else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }" else (compound_statement "{\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }" { (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }" if (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }" { (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../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 "bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);" (assignment_expression "bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" identifier = (pointer_expression "*(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" * (cast_expression "(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = bVar2 == 0;" (assignment_expression "uVar28 = bVar2 == 0" identifier = (binary_expression "bVar2 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }" if (parenthesized_expression "(!(bool)uVar28)" ( (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = (local_88[0x39] & 3) == 0;" (assignment_expression "uVar28 = (local_88[0x39] & 3) == 0" identifier = (binary_expression "(local_88[0x39] & 3) == 0" (parenthesized_expression "(local_88[0x39] & 3)" ( (binary_expression "local_88[0x39] & 3" (subscript_expression "local_88[0x39]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ;) (expression_statement "bVar17 = bVar2;" (assignment_expression "bVar17 = bVar2" identifier = identifier) ;) (if_statement "if (!(bool)uVar28) goto LAB_00309f71;" if (parenthesized_expression "(!(bool)uVar28)" ( (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00309f71;" goto statement_identifier ;)) })) }))) })) })) }) (else_clause "else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }" else (compound_statement "{\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }" { (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" identifier = (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_124 = uVar4 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_124 = uVar4 + *(uint *)(local_88 + 0x40)" identifier = (binary_expression "uVar4 + *(uint *)(local_88 + 0x40)" identifier + (pointer_expression "*(uint *)(local_88 + 0x40)" * (cast_expression "(uint *)(local_88 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) )))))) ;) (labeled_statement "LAB_00309d1e:\n          local_110 = (byte *)0x0;" statement_identifier : (expression_statement "local_110 = (byte *)0x0;" (assignment_expression "local_110 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = 1;" (assignment_expression "uVar28 = 1" identifier = number_literal) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) }))) (expression_statement "pbVar15 = *(byte **)local_88;" (assignment_expression "pbVar15 = *(byte **)local_88" identifier = (pointer_expression "*(byte **)local_88" * (cast_expression "(byte **)local_88" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "lVar18 = 8;" (assignment_expression "lVar18 = 8" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)"__start_";" (assignment_expression "pbVar19 = (byte *)"__start_"" identifier = (cast_expression "(byte *)"__start_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__start_"" " string_content "))) ;) (expression_statement "pbVar21 = pbVar15;" (assignment_expression "pbVar21 = pbVar15" identifier = identifier) ;) (do_statement "do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);" do (compound_statement "{\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = *pbVar19 < *pbVar21;" (assignment_expression "uVar24 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "uVar28 = *pbVar19 == *pbVar21;" (assignment_expression "uVar28 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar21 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar21 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar28)" ( (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;" (assignment_expression "bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" identifier = (binary_expression "(!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar28)" ( (binary_expression "!(bool)uVar24 && !(bool)uVar28" (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }" if (parenthesized_expression "(bVar29)" ( identifier )) (compound_statement "{\n          pbVar15 = pbVar15 + 8;\n        }" { (expression_statement "pbVar15 = pbVar15 + 8;" (assignment_expression "pbVar15 = pbVar15 + 8" identifier = (binary_expression "pbVar15 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }" else (compound_statement "{\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }" { (expression_statement "lVar18 = 7;" (assignment_expression "lVar18 = 7" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)"__stop_";" (assignment_expression "pbVar19 = (byte *)"__stop_"" identifier = (cast_expression "(byte *)"__stop_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__stop_"" " string_content "))) ;) (expression_statement "pbVar21 = pbVar15;" (assignment_expression "pbVar21 = pbVar15" identifier = identifier) ;) (do_statement "do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);" do (compound_statement "{\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar19 < *pbVar21;" (assignment_expression "bVar25 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar29 = *pbVar19 == *pbVar21;" (assignment_expression "bVar29 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1" identifier = (binary_expression "pbVar21 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar21 + (ulong)bVar30 * -2" identifier + (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (expression_statement "pbVar15 = pbVar15 + 7;" (assignment_expression "pbVar15 = pbVar15 + 7" identifier = (binary_expression "pbVar15 + 7" identifier + number_literal)) ;) (if_statement "if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }" if (parenthesized_expression "((!bVar25 && !bVar29) != bVar25)" ( (binary_expression "(!bVar25 && !bVar29) != bVar25" (parenthesized_expression "(!bVar25 && !bVar29)" ( (binary_expression "!bVar25 && !bVar29" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) != identifier) )) (compound_statement "{\n            pbVar15 = local_138;\n          }" { (expression_statement "pbVar15 = local_138;" (assignment_expression "pbVar15 = local_138" identifier = identifier) ;) })) }))) (expression_statement "local_138 = pbVar15;" (assignment_expression "local_138 = pbVar15" identifier = identifier) ;) (if_statement "if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }" if (parenthesized_expression "(bVar27)" ( identifier )) (compound_statement "{\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }" { (if_statement "if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }" { (expression_statement "local_58 = (byte *)0x0;" (assignment_expression "local_58 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (ulong)local_50._4_4_ << 0x20;" (assignment_expression "local_50 = (ulong)local_50._4_4_ << 0x20" identifier = (binary_expression "(ulong)local_50._4_4_ << 0x20" (cast_expression "(ulong)local_50._4_4_" ( (type_descriptor "ulong" type_identifier) ) (field_expression "local_50._4_4_" identifier . field_identifier)) << number_literal)) ;) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }" else (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }" { (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar9);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar9)" identifier = (call_expression "CONCAT44(local_50._4_4_,uVar9)" identifier (argument_list "(local_50._4_4_,uVar9)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_58 = local_110;" (assignment_expression "local_58 = local_110" identifier = identifier) ;) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) }))) (expression_statement "puVar5 = *(undefined8 **)(local_150 + 8);" (assignment_expression "puVar5 = *(undefined8 **)(local_150 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_150 + 8)" * (cast_expression "(undefined8 **)(local_150 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_150 + 8)" ( (binary_expression "local_150 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }" if (parenthesized_expression "(puVar5 == *(undefined8 **)(local_150 + 0x10))" ( (binary_expression "puVar5 == *(undefined8 **)(local_150 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_150 + 0x10)" * (cast_expression "(undefined8 **)(local_150 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_150 + 0x10)" ( (binary_expression "local_150 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }" { (expression_statement "FUN_001a5d30(local_150,puVar5,&local_88);" (call_expression "FUN_001a5d30(local_150,puVar5,&local_88)" identifier (argument_list "(local_150,puVar5,&local_88)" ( identifier , identifier , (pointer_expression "&local_88" & identifier) ))) ;) }) (else_clause "else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }" else (compound_statement "{\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }" { (expression_statement "*puVar5 = local_88;" (assignment_expression "*puVar5 = local_88" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_150 + 8) = puVar5 + 1;" (assignment_expression "*(undefined8 **)(local_150 + 8) = puVar5 + 1" (pointer_expression "*(undefined8 **)(local_150 + 8)" * (cast_expression "(undefined8 **)(local_150 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_150 + 8)" ( (binary_expression "local_150 + 8" identifier + number_literal) )))) = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_58 = pbVar20;" (assignment_expression "local_58 = pbVar20" identifier = identifier) ;) (expression_statement "local_50 = (long)(int)uVar4;" (assignment_expression "local_50 = (long)(int)uVar4" identifier = (cast_expression "(long)(int)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "FUN_001a74a0(local_160,&local_58);" (call_expression "FUN_001a74a0(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "local_58 = (byte *)(ulong)*local_108;" (assignment_expression "local_58 = (byte *)(ulong)*local_108" identifier = (binary_expression "(byte *)(ulong)*local_108" (cast_expression "(byte *)(ulong)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * identifier)) ;) (expression_statement "puVar5 = *(undefined8 **)(local_140 + 8);" (assignment_expression "puVar5 = *(undefined8 **)(local_140 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_140 + 8)" * (cast_expression "(undefined8 **)(local_140 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 8)" ( (binary_expression "local_140 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" if (parenthesized_expression "(puVar5 == *(undefined8 **)(local_140 + 0x10))" ( (binary_expression "puVar5 == *(undefined8 **)(local_140 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_140 + 0x10)" * (cast_expression "(undefined8 **)(local_140 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 0x10)" ( (binary_expression "local_140 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }" { (expression_statement "FUN_001a6070(local_140,puVar5,&local_58);" (call_expression "FUN_001a6070(local_140,puVar5,&local_58)" identifier (argument_list "(local_140,puVar5,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" else (compound_statement "{\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" { (expression_statement "*puVar5 = local_58;" (assignment_expression "*puVar5 = local_58" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_140 + 8) = puVar5 + 1;" (assignment_expression "*(undefined8 **)(local_140 + 8) = puVar5 + 1" (pointer_expression "*(undefined8 **)(local_140 + 8)" * (cast_expression "(undefined8 **)(local_140 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_140 + 8)" ( (binary_expression "local_140 + 8" identifier + number_literal) )))) = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);" (assignment_expression "local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000)" identifier = (cast_expression "(byte *)((ulong)local_98 & 0xffffffff00000000)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)local_98 & 0xffffffff00000000)" ( (binary_expression "(ulong)local_98 & 0xffffffff00000000" (cast_expression "(ulong)local_98" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "FUN_001a7630(local_168,&local_98);" (call_expression "FUN_001a7630(local_168,&local_98)" identifier (argument_list "(local_168,&local_98)" ( identifier , (pointer_expression "&local_98" & identifier) ))) ;) })) (if_statement "if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }" if (parenthesized_expression "(bVar17 != 0)" ( (binary_expression "bVar17 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }" { (labeled_statement "LAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);" statement_identifier : (expression_statement "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);" (assignment_expression "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" ( (binary_expression "PTR_DAT_0067cb08 + 0x10" identifier + number_literal) ))))) ;)) (if_statement "if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" { (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../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 ") ))) ;) })) (goto_statement "goto LAB_00309900;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00309772:\n      local_100 = local_100 + 1;" statement_identifier : (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;)) (expression_statement "local_108 = local_108 + 3;" (assignment_expression "local_108 = local_108 + 3" identifier = (binary_expression "local_108 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_6 != local_100)" ( (binary_expression "param_6 != local_100" identifier != identifier) )) ;) }))) (if_statement "if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(local_78[0] != local_68)" ( (binary_expression "local_78[0] != local_68" (subscript_expression "local_78[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) 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 IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " ") ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }))))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = 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 ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = 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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (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 * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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)) ;) (goto_statement goto statement_identifier ;) })) })) })) })) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * 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) ))))) ;) (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 ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (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 : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , 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 = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) )) ))) )) (goto_statement goto statement_identifier ;))) }))) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , LIT ))) ;) })) })) })) }))) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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 (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (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 = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) })) }))) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (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 *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = 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 ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = 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 IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) << LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( 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) ))))) ;) (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 ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * 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) ))))) ;) (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 ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00309530(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)\n\n{\n  long *plVar1;\n  byte bVar2;\n  ushort uVar3;\n  uint uVar4;\n  undefined8 *puVar5;\n  code *pcVar6;\n  long lVar7;\n  char cVar8;\n  uint uVar9;\n  long lVar10;\n  long lVar11;\n  size_t sVar12;\n  long lVar13;\n  long lVar14;\n  byte *pbVar15;\n  byte bVar16;\n  byte bVar17;\n  long lVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  uint uVar22;\n  ulong uVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  byte bVar30;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_150;\n  long local_140;\n  byte *local_138;\n  char local_12d;\n  int local_124;\n  byte *local_110;\n  uint *local_108;\n  long local_100;\n  undefined1 local_ea;\n  undefined1 local_e9;\n  long local_e8;\n  long local_e0;\n  long local_d8;\n  long local_d0;\n  byte **local_c8;\n  byte **local_c0;\n  byte *local_b8;\n  uint local_b0;\n  byte *local_a8;\n  uint local_a0;\n  byte *local_98;\n  uint local_90;\n  byte *local_88;\n  uint local_80;\n  byte *local_78 [2];\n  byte local_68 [16];\n  byte *local_58;\n  undefined8 local_50;\n  byte local_48 [24];\n  \n  bVar30 = 0;\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar20 = local_78[0];\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }\n  local_12d = '\0';\nLAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00309530(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" (identifier "FUN_00309530") (parameter_list "(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,\n                 ulong param_7,long param_8)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "uint *param_5" (type_identifier "uint") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "long param_6" (sized_type_specifier "long" (long "long")) (identifier "param_6")) (, ",") (parameter_declaration "ulong param_7" (type_identifier "ulong") (identifier "param_7")) (, ",") (parameter_declaration "long param_8" (sized_type_specifier "long" (long "long")) (identifier "param_8")) () ")"))) (compound_statement "{\n  long *plVar1;\n  byte bVar2;\n  ushort uVar3;\n  uint uVar4;\n  undefined8 *puVar5;\n  code *pcVar6;\n  long lVar7;\n  char cVar8;\n  uint uVar9;\n  long lVar10;\n  long lVar11;\n  size_t sVar12;\n  long lVar13;\n  long lVar14;\n  byte *pbVar15;\n  byte bVar16;\n  byte bVar17;\n  long lVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  uint uVar22;\n  ulong uVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  byte bVar30;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_150;\n  long local_140;\n  byte *local_138;\n  char local_12d;\n  int local_124;\n  byte *local_110;\n  uint *local_108;\n  long local_100;\n  undefined1 local_ea;\n  undefined1 local_e9;\n  long local_e8;\n  long local_e0;\n  long local_d8;\n  long local_d0;\n  byte **local_c8;\n  byte **local_c0;\n  byte *local_b8;\n  uint local_b0;\n  byte *local_a8;\n  uint local_a0;\n  byte *local_98;\n  uint local_90;\n  byte *local_88;\n  uint local_80;\n  byte *local_78 [2];\n  byte local_68 [16];\n  byte *local_58;\n  undefined8 local_50;\n  byte local_48 [24];\n  \n  bVar30 = 0;\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar20 = local_78[0];\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }\n  local_12d = '\0';\nLAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "ushort uVar3;" (type_identifier "ushort") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "undefined8 *puVar5;" (type_identifier "undefined8") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "size_t sVar12;" (primitive_type "size_t") (identifier "sVar12") (; ";")) (declaration "long lVar13;" (sized_type_specifier "long" (long "long")) (identifier "lVar13") (; ";")) (declaration "long lVar14;" (sized_type_specifier "long" (long "long")) (identifier "lVar14") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "byte bVar16;" (type_identifier "byte") (identifier "bVar16") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "long lVar18;" (sized_type_specifier "long" (long "long")) (identifier "lVar18") (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "ulong uVar23;" (type_identifier "ulong") (identifier "uVar23") (; ";")) (declaration "undefined1 uVar24;" (type_identifier "undefined1") (identifier "uVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "bool bVar27;" (primitive_type "bool") (identifier "bVar27") (; ";")) (declaration "undefined1 uVar28;" (type_identifier "undefined1") (identifier "uVar28") (; ";")) (declaration "bool bVar29;" (primitive_type "bool") (identifier "bVar29") (; ";")) (declaration "byte bVar30;" (type_identifier "byte") (identifier "bVar30") (; ";")) (declaration "long local_168;" (sized_type_specifier "long" (long "long")) (identifier "local_168") (; ";")) (declaration "long local_160;" (sized_type_specifier "long" (long "long")) (identifier "local_160") (; ";")) (declaration "long local_158;" (sized_type_specifier "long" (long "long")) (identifier "local_158") (; ";")) (declaration "long local_150;" (sized_type_specifier "long" (long "long")) (identifier "local_150") (; ";")) (declaration "long local_140;" (sized_type_specifier "long" (long "long")) (identifier "local_140") (; ";")) (declaration "byte *local_138;" (type_identifier "byte") (pointer_declarator "*local_138" (* "*") (identifier "local_138")) (; ";")) (declaration "char local_12d;" (primitive_type "char") (identifier "local_12d") (; ";")) (declaration "int local_124;" (primitive_type "int") (identifier "local_124") (; ";")) (declaration "byte *local_110;" (type_identifier "byte") (pointer_declarator "*local_110" (* "*") (identifier "local_110")) (; ";")) (declaration "uint *local_108;" (type_identifier "uint") (pointer_declarator "*local_108" (* "*") (identifier "local_108")) (; ";")) (declaration "long local_100;" (sized_type_specifier "long" (long "long")) (identifier "local_100") (; ";")) (declaration "undefined1 local_ea;" (type_identifier "undefined1") (identifier "local_ea") (; ";")) (declaration "undefined1 local_e9;" (type_identifier "undefined1") (identifier "local_e9") (; ";")) (declaration "long local_e8;" (sized_type_specifier "long" (long "long")) (identifier "local_e8") (; ";")) (declaration "long local_e0;" (sized_type_specifier "long" (long "long")) (identifier "local_e0") (; ";")) (declaration "long local_d8;" (sized_type_specifier "long" (long "long")) (identifier "local_d8") (; ";")) (declaration "long local_d0;" (sized_type_specifier "long" (long "long")) (identifier "local_d0") (; ";")) (declaration "byte **local_c8;" (type_identifier "byte") (pointer_declarator "**local_c8" (* "*") (pointer_declarator "*local_c8" (* "*") (identifier "local_c8"))) (; ";")) (declaration "byte **local_c0;" (type_identifier "byte") (pointer_declarator "**local_c0" (* "*") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0"))) (; ";")) (declaration "byte *local_b8;" (type_identifier "byte") (pointer_declarator "*local_b8" (* "*") (identifier "local_b8")) (; ";")) (declaration "uint local_b0;" (type_identifier "uint") (identifier "local_b0") (; ";")) (declaration "byte *local_a8;" (type_identifier "byte") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8")) (; ";")) (declaration "uint local_a0;" (type_identifier "uint") (identifier "local_a0") (; ";")) (declaration "byte *local_98;" (type_identifier "byte") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "uint local_90;" (type_identifier "uint") (identifier "local_90") (; ";")) (declaration "byte *local_88;" (type_identifier "byte") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "uint local_80;" (type_identifier "uint") (identifier "local_80") (; ";")) (declaration "byte *local_78 [2];" (type_identifier "byte") (pointer_declarator "*local_78 [2]" (* "*") (array_declarator "local_78 [2]" (identifier "local_78") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "byte local_68 [16];" (type_identifier "byte") (array_declarator "local_68 [16]" (identifier "local_68") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte *local_58;" (type_identifier "byte") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "undefined8 local_50;" (type_identifier "undefined8") (identifier "local_50") (; ";")) (declaration "byte local_48 [24];" (type_identifier "byte") (array_declarator "local_48 [24]" (identifier "local_48") ([ "[") (number_literal "24") (] "]")) (; ";")) (expression_statement "bVar30 = 0;" (assignment_expression "bVar30 = 0" (identifier "bVar30") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00352af0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }\n  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" (if "if") (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0)" (( "(") (binary_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" (* "*") (cast_expression "(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x9050")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_78[0] = local_68;\n    FUN_001a61c0(local_78,"");\n  }" ({ "{") (expression_statement "local_78[0] = local_68;" (assignment_expression "local_78[0] = local_68" (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "FUN_001a61c0(local_78,"");" (call_expression "FUN_001a61c0(local_78,"")" (identifier "FUN_001a61c0") (argument_list "(local_78,"")" (( "(") (identifier "local_78") (, ",") (string_literal """" (" """) (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" (else "else") (if_statement "if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }\n  else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" (if "if") (parenthesized_expression "(*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0)" (( "(") (binary_expression "*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0" (pointer_expression "*(code **)(*(long *)param_3 + 0x80)" (* "*") (cast_expression "(code **)(*(long *)param_3 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)param_3 + 0x80)" (( "(") (binary_expression "*(long *)param_3 + 0x80" (pointer_expression "*(long *)param_3" (* "*") (cast_expression "(long *)param_3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))) (+ "+") (number_literal "0x80")) () ")")))) (== "==") (identifier "FUN_0022c0c0")) () ")")) (compound_statement "{\n    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);\n  }" ({ "{") (expression_statement "FUN_0022bf40(local_78,param_3 + 0xf8,param_4);" (call_expression "FUN_0022bf40(local_78,param_3 + 0xf8,param_4)" (identifier "FUN_0022bf40") (argument_list "(local_78,param_3 + 0xf8,param_4)" (( "(") (identifier "local_78") (, ",") (binary_expression "param_3 + 0xf8" (identifier "param_3") (+ "+") (number_literal "0xf8")) (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" (else "else") (compound_statement "{\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }" ({ "{") (expression_statement "(**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);" (call_expression "(**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4)" (parenthesized_expression "(**(code **)(*(long *)param_3 + 0x80))" (( "(") (pointer_expression "**(code **)(*(long *)param_3 + 0x80)" (* "*") (pointer_expression "*(code **)(*(long *)param_3 + 0x80)" (* "*") (cast_expression "(code **)(*(long *)param_3 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)param_3 + 0x80)" (( "(") (binary_expression "*(long *)param_3 + 0x80" (pointer_expression "*(long *)param_3" (* "*") (cast_expression "(long *)param_3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))) (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(local_78,param_3,param_4)" (( "(") (identifier "local_78") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")))))) (expression_statement "pbVar20 = local_78[0];" (assignment_expression "pbVar20 = local_78[0]" (identifier "pbVar20") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00352af0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }\n  else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0)" (( "(") (binary_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" (* "*") (cast_expression "(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x9050")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_003095e3:\n    bVar27 = false;\n    local_168 = 0;\n    local_140 = 0;\n    local_160 = 0;\n    local_150 = 0;\n    local_158 = 0;\n  }" ({ "{") (labeled_statement "LAB_003095e3:\n    bVar27 = false;" (statement_identifier "LAB_003095e3") (: ":") (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" (identifier "bVar27") (= "=") (false "false")) (; ";"))) (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" (identifier "local_168") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_140 = 0;" (assignment_expression "local_140 = 0" (identifier "local_140") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" (identifier "local_160") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_150 = 0;" (assignment_expression "local_150 = 0" (identifier "local_150") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" (identifier "local_158") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }" (else "else") (compound_statement "{\n    pbVar15 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar24 = 0;\n    uVar28 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }\n    FUN_001a61c0(&local_58,pbVar20,pbVar15);\n    lVar18 = 5;\n    pbVar20 = (byte *)".text";\n    pbVar15 = local_58;\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);\n    bVar27 = false;\n    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n    if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }\n    if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }\n    local_50 = CONCAT44(local_50._4_4_,param_4);\n    local_58 = param_3;\n    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_150 = local_158 + 0x18;\n    local_140 = local_158 + 0x48;\n    local_160 = local_158 + 0x30;\n    local_168 = local_158 + 0x60;\n    bVar27 = true;\n  }" ({ "{") (expression_statement "pbVar15 = (byte *)0xffffffffffffffff;" (assignment_expression "pbVar15 = (byte *)0xffffffffffffffff" (identifier "pbVar15") (= "=") (cast_expression "(byte *)0xffffffffffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) (; ";")) (expression_statement "local_58 = local_48;" (assignment_expression "local_58 = local_48" (identifier "local_58") (= "=") (identifier "local_48")) (; ";")) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar28 = local_78[0] == (byte *)0x0;" (assignment_expression "uVar28 = local_78[0] == (byte *)0x0" (identifier "uVar28") (= "=") (binary_expression "local_78[0] == (byte *)0x0" (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")) (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (!(bool)uVar28) {\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }" (if "if") (parenthesized_expression "(!(bool)uVar28)" (( "(") (unary_expression "!(bool)uVar28" (! "!") (cast_expression "(bool)uVar28" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar28"))) () ")")) (compound_statement "{\n      sVar12 = strlen((char *)local_78[0]);\n      pbVar15 = pbVar20 + sVar12;\n    }" ({ "{") (expression_statement "sVar12 = strlen((char *)local_78[0]);" (assignment_expression "sVar12 = strlen((char *)local_78[0])" (identifier "sVar12") (= "=") (call_expression "strlen((char *)local_78[0])" (identifier "strlen") (argument_list "((char *)local_78[0])" (( "(") (cast_expression "(char *)local_78[0]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) () ")")))) (; ";")) (expression_statement "pbVar15 = pbVar20 + sVar12;" (assignment_expression "pbVar15 = pbVar20 + sVar12" (identifier "pbVar15") (= "=") (binary_expression "pbVar20 + sVar12" (identifier "pbVar20") (+ "+") (identifier "sVar12"))) (; ";")) (} "}"))) (expression_statement "FUN_001a61c0(&local_58,pbVar20,pbVar15);" (call_expression "FUN_001a61c0(&local_58,pbVar20,pbVar15)" (identifier "FUN_001a61c0") (argument_list "(&local_58,pbVar20,pbVar15)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "pbVar20") (, ",") (identifier "pbVar15") () ")"))) (; ";")) (expression_statement "lVar18 = 5;" (assignment_expression "lVar18 = 5" (identifier "lVar18") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar20 = (byte *)".text";" (assignment_expression "pbVar20 = (byte *)".text"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".text"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".text"" (" """) (string_content ".text") (" """)))) (; ";")) (expression_statement "pbVar15 = local_58;" (assignment_expression "pbVar15 = local_58" (identifier "pbVar15") (= "=") (identifier "local_58")) (; ";")) (do_statement "do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while ((bool)uVar28);" (do "do") (compound_statement "{\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      uVar24 = *pbVar20 < *pbVar15;\n      uVar28 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar18 == 0) break;" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar24 = *pbVar20 < *pbVar15;" (assignment_expression "uVar24 = *pbVar20 < *pbVar15" (identifier "uVar24") (= "=") (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "uVar28 = *pbVar20 == *pbVar15;" (assignment_expression "uVar28 = *pbVar20 == *pbVar15" (identifier "uVar28") (= "=") (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar28)" (( "(") (cast_expression "(bool)uVar28" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar28")) () ")")) (; ";")) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" (identifier "bVar27") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;" (assignment_expression "bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" (identifier "bVar25") (= "=") (binary_expression "(!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar28)" (( "(") (binary_expression "!(bool)uVar24 && !(bool)uVar28" (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) (&& "&&") (unary_expression "!(bool)uVar28" (! "!") (cast_expression "(bool)uVar28" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar28")))) () ")")) (== "==") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")))) (; ";")) (if_statement "if (!bVar25) {\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (compound_statement "{\n      lVar18 = 0xf;\n      pbVar20 = (byte *)".gnu.linkonce.t";\n      pbVar15 = local_58;\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }\n    }" ({ "{") (expression_statement "lVar18 = 0xf;" (assignment_expression "lVar18 = 0xf" (identifier "lVar18") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "pbVar20 = (byte *)".gnu.linkonce.t";" (assignment_expression "pbVar20 = (byte *)".gnu.linkonce.t"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".gnu.linkonce.t"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".gnu.linkonce.t"" (" """) (string_content ".gnu.linkonce.t") (" """)))) (; ";")) (expression_statement "pbVar15 = local_58;" (assignment_expression "pbVar15 = local_58" (identifier "pbVar15") (= "=") (identifier "local_58")) (; ";")) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);" (do "do") (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar27 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar18 == 0) break;" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar27 = *pbVar20 < *pbVar15;" (assignment_expression "bVar27 = *pbVar20 < *pbVar15" (identifier "bVar27") (= "=") (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" (identifier "bVar25") (= "=") (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (if_statement "if ((!bVar27 && !bVar25) != bVar27) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }" (if "if") (parenthesized_expression "((!bVar27 && !bVar25) != bVar27)" (( "(") (binary_expression "(!bVar27 && !bVar25) != bVar27" (parenthesized_expression "(!bVar27 && !bVar25)" (( "(") (binary_expression "!bVar27 && !bVar25" (unary_expression "!bVar27" (! "!") (identifier "bVar27")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (!= "!=") (identifier "bVar27")) () ")")) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_003095e3;\n      }" ({ "{") (if_statement "if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }" (if "if") (parenthesized_expression "(local_58 != local_48)" (( "(") (binary_expression "local_58 != local_48" (identifier "local_58") (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n          FUN_0049e330(local_58);\n        }" ({ "{") (expression_statement "FUN_0049e330(local_58);" (call_expression "FUN_0049e330(local_58)" (identifier "FUN_0049e330") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_003095e3;" (goto "goto") (statement_identifier "LAB_003095e3") (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_58 != local_48) {\n      FUN_0049e330(local_58);\n    }" (if "if") (parenthesized_expression "(local_58 != local_48)" (( "(") (binary_expression "local_58 != local_48" (identifier "local_58") (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n      FUN_0049e330(local_58);\n    }" ({ "{") (expression_statement "FUN_0049e330(local_58);" (call_expression "FUN_0049e330(local_58)" (identifier "FUN_0049e330") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (} "}"))) (expression_statement "local_50 = CONCAT44(local_50._4_4_,param_4);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,param_4)" (identifier "local_50") (= "=") (call_expression "CONCAT44(local_50._4_4_,param_4)" (identifier "CONCAT44") (argument_list "(local_50._4_4_,param_4)" (( "(") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" (identifier "local_58") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);" (assignment_expression "local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" (identifier "local_158") (= "=") (call_expression "FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" (identifier "FUN_001a7bd0") (argument_list "(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" (( "(") (binary_expression "*(long *)(param_1 + 0x298) + 0xa8" (pointer_expression "*(long *)(param_1 + 0x298)" (* "*") (cast_expression "(long *)(param_1 + 0x298)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (+ "+") (number_literal "0xa8")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (expression_statement "local_150 = local_158 + 0x18;" (assignment_expression "local_150 = local_158 + 0x18" (identifier "local_150") (= "=") (binary_expression "local_158 + 0x18" (identifier "local_158") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "local_140 = local_158 + 0x48;" (assignment_expression "local_140 = local_158 + 0x48" (identifier "local_140") (= "=") (binary_expression "local_158 + 0x48" (identifier "local_158") (+ "+") (number_literal "0x48"))) (; ";")) (expression_statement "local_160 = local_158 + 0x30;" (assignment_expression "local_160 = local_158 + 0x30" (identifier "local_160") (= "=") (binary_expression "local_158 + 0x30" (identifier "local_158") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "local_168 = local_158 + 0x60;" (assignment_expression "local_168 = local_158 + 0x60" (identifier "local_168") (= "=") (binary_expression "local_158 + 0x60" (identifier "local_158") (+ "+") (number_literal "0x60"))) (; ";")) (expression_statement "bVar27 = true;" (assignment_expression "bVar27 = true" (identifier "bVar27") (= "=") (true "true")) (; ";")) (} "}")))) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00352af0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0'))" (( "(") (binary_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')" (parenthesized_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2)" (( "(") (binary_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2" (pointer_expression "*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" (* "*") (cast_expression "(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x9050")) () ")")))) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')" (( "(") (comma_expression "cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0'" (assignment_expression "cVar8 = (**(code **)(*param_2 + 0x90))(param_2)" (identifier "cVar8") (= "=") (call_expression "(**(code **)(*param_2 + 0x90))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x90))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x90)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x90)" (* "*") (cast_expression "(code **)(*param_2 + 0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x90)" (( "(") (binary_expression "*param_2 + 0x90" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x90")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (, ",") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n    pcVar6 = *(code **)(*param_2 + 0x10);\n    if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    pcVar6 = *(code **)(*param_2 + 0x98);\n    bVar25 = pcVar6 < FUN_001a53d0;\n    bVar29 = pcVar6 == FUN_001a53d0;\n    if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }\n    lVar18 = 0xc;\n    pbVar20 = (byte *)".rodata._ZTV";\n    pbVar15 = local_78[0];\n    do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);\n    bVar26 = false;\n    bVar25 = (!bVar25 && !bVar29) == bVar25;\n    if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "pcVar6 = *(code **)(*param_2 + 0x10);" (assignment_expression "pcVar6 = *(code **)(*param_2 + 0x10)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(*param_2 + 0x10)" (* "*") (cast_expression "(code **)(*param_2 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x10)" (( "(") (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (pcVar6 != FUN_001a5310) {\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" (if "if") (parenthesized_expression "(pcVar6 != FUN_001a5310)" (( "(") (binary_expression "pcVar6 != FUN_001a5310" (identifier "pcVar6") (!= "!=") (identifier "FUN_001a5310")) () ")")) (compound_statement "{\n                    \n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" ({ "{") (expression_statement "local_12d = (*pcVar6)(param_2,local_78[0]);" (assignment_expression "local_12d = (*pcVar6)(param_2,local_78[0])" (identifier "local_12d") (= "=") (call_expression "(*pcVar6)(param_2,local_78[0])" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "(param_2,local_78[0])" (( "(") (identifier "param_2") (, ",") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (goto_statement "goto LAB_00309642;" (goto "goto") (statement_identifier "LAB_00309642") (; ";")) (} "}"))) (expression_statement "pcVar6 = *(code **)(*param_2 + 0x98);" (assignment_expression "pcVar6 = *(code **)(*param_2 + 0x98)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(*param_2 + 0x98)" (* "*") (cast_expression "(code **)(*param_2 + 0x98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x98)" (( "(") (binary_expression "*param_2 + 0x98" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "bVar25 = pcVar6 < FUN_001a53d0;" (assignment_expression "bVar25 = pcVar6 < FUN_001a53d0" (identifier "bVar25") (= "=") (binary_expression "pcVar6 < FUN_001a53d0" (identifier "pcVar6") (< "<") (identifier "FUN_001a53d0"))) (; ";")) (expression_statement "bVar29 = pcVar6 == FUN_001a53d0;" (assignment_expression "bVar29 = pcVar6 == FUN_001a53d0" (identifier "bVar29") (= "=") (binary_expression "pcVar6 == FUN_001a53d0" (identifier "pcVar6") (== "==") (identifier "FUN_001a53d0"))) (; ";")) (if_statement "if (!bVar29) {\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" (if "if") (parenthesized_expression "(!bVar29)" (( "(") (unary_expression "!bVar29" (! "!") (identifier "bVar29")) () ")")) (compound_statement "{\n      local_12d = (*pcVar6)(param_2,local_78[0]);\n      goto LAB_00309642;\n    }" ({ "{") (expression_statement "local_12d = (*pcVar6)(param_2,local_78[0]);" (assignment_expression "local_12d = (*pcVar6)(param_2,local_78[0])" (identifier "local_12d") (= "=") (call_expression "(*pcVar6)(param_2,local_78[0])" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "(param_2,local_78[0])" (( "(") (identifier "param_2") (, ",") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (goto_statement "goto LAB_00309642;" (goto "goto") (statement_identifier "LAB_00309642") (; ";")) (} "}"))) (expression_statement "lVar18 = 0xc;" (assignment_expression "lVar18 = 0xc" (identifier "lVar18") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar20 = (byte *)".rodata._ZTV";" (assignment_expression "pbVar20 = (byte *)".rodata._ZTV"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".rodata._ZTV"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".rodata._ZTV"" (" """) (string_content ".rodata._ZTV") (" """)))) (; ";")) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" (identifier "pbVar15") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    } while (bVar29);" (do "do") (compound_statement "{\n      if (lVar18 == 0) break;\n      lVar18 = lVar18 + -1;\n      bVar25 = *pbVar20 < *pbVar15;\n      bVar29 = *pbVar20 == *pbVar15;\n      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar18 == 0) break;" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar20 < *pbVar15;" (assignment_expression "bVar25 = *pbVar20 < *pbVar15" (identifier "bVar25") (= "=") (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar29 = *pbVar20 == *pbVar15;" (assignment_expression "bVar29 = *pbVar20 == *pbVar15" (identifier "bVar29") (= "=") (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar29)" (( "(") (identifier "bVar29") () ")")) (; ";")) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = (!bVar25 && !bVar29) == bVar25;" (assignment_expression "bVar25 = (!bVar25 && !bVar29) == bVar25" (identifier "bVar25") (= "=") (binary_expression "(!bVar25 && !bVar29) == bVar25" (parenthesized_expression "(!bVar25 && !bVar29)" (( "(") (binary_expression "!bVar25 && !bVar29" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar29" (! "!") (identifier "bVar29"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar25) {\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (compound_statement "{\n      lVar18 = 0x11;\n      pbVar20 = (byte *)".data.rel.ro._ZTV";\n      pbVar15 = local_78[0];\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);\n      bVar29 = false;\n      bVar25 = (!bVar26 && !bVar25) == bVar26;\n      if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "lVar18 = 0x11;" (assignment_expression "lVar18 = 0x11" (identifier "lVar18") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "pbVar20 = (byte *)".data.rel.ro._ZTV";" (assignment_expression "pbVar20 = (byte *)".data.rel.ro._ZTV"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".data.rel.ro._ZTV"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".data.rel.ro._ZTV"" (" """) (string_content ".data.rel.ro._ZTV") (" """)))) (; ";")) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" (identifier "pbVar15") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      } while (bVar25);" (do "do") (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar26 = *pbVar20 < *pbVar15;\n        bVar25 = *pbVar20 == *pbVar15;\n        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar18 == 0) break;" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar26 = *pbVar20 < *pbVar15;" (assignment_expression "bVar26 = *pbVar20 < *pbVar15" (identifier "bVar26") (= "=") (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" (identifier "bVar25") (= "=") (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" (identifier "bVar29") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = (!bVar26 && !bVar25) == bVar26;" (assignment_expression "bVar25 = (!bVar26 && !bVar25) == bVar26" (identifier "bVar25") (= "=") (binary_expression "(!bVar26 && !bVar25) == bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" (( "(") (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar26"))) (; ";")) (if_statement "if (!bVar25) {\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (compound_statement "{\n        lVar18 = 0xc;\n        pbVar20 = (byte *)".rodata._ZTC";\n        pbVar15 = local_78[0];\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);\n        bVar26 = false;\n        bVar25 = (!bVar29 && !bVar25) == bVar29;\n        if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }\n      }" ({ "{") (expression_statement "lVar18 = 0xc;" (assignment_expression "lVar18 = 0xc" (identifier "lVar18") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar20 = (byte *)".rodata._ZTC";" (assignment_expression "pbVar20 = (byte *)".rodata._ZTC"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".rodata._ZTC"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".rodata._ZTC"" (" """) (string_content ".rodata._ZTC") (" """)))) (; ";")) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" (identifier "pbVar15") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        } while (bVar25);" (do "do") (compound_statement "{\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          bVar29 = *pbVar20 < *pbVar15;\n          bVar25 = *pbVar20 == *pbVar15;\n          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar18 == 0) break;" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar29 = *pbVar20 < *pbVar15;" (assignment_expression "bVar29 = *pbVar20 < *pbVar15" (identifier "bVar29") (= "=") (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" (identifier "bVar25") (= "=") (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = (!bVar29 && !bVar25) == bVar29;" (assignment_expression "bVar25 = (!bVar29 && !bVar25) == bVar29" (identifier "bVar25") (= "=") (binary_expression "(!bVar29 && !bVar25) == bVar29" (parenthesized_expression "(!bVar29 && !bVar25)" (( "(") (binary_expression "!bVar29 && !bVar25" (unary_expression "!bVar29" (! "!") (identifier "bVar29")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar29"))) (; ";")) (if_statement "if (!bVar25) {\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (compound_statement "{\n          lVar18 = 0x11;\n          pbVar20 = (byte *)".data.rel.ro._ZTC";\n          pbVar15 = local_78[0];\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);\n          bVar29 = false;\n          bVar25 = (!bVar26 && !bVar25) == bVar26;\n          if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }\n        }" ({ "{") (expression_statement "lVar18 = 0x11;" (assignment_expression "lVar18 = 0x11" (identifier "lVar18") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "pbVar20 = (byte *)".data.rel.ro._ZTC";" (assignment_expression "pbVar20 = (byte *)".data.rel.ro._ZTC"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".data.rel.ro._ZTC"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".data.rel.ro._ZTC"" (" """) (string_content ".data.rel.ro._ZTC") (" """)))) (; ";")) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" (identifier "pbVar15") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          } while (bVar25);" (do "do") (compound_statement "{\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar26 = *pbVar20 < *pbVar15;\n            bVar25 = *pbVar20 == *pbVar15;\n            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar18 == 0) break;" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar26 = *pbVar20 < *pbVar15;" (assignment_expression "bVar26 = *pbVar20 < *pbVar15" (identifier "bVar26") (= "=") (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" (identifier "bVar25") (= "=") (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" (identifier "bVar29") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = (!bVar26 && !bVar25) == bVar26;" (assignment_expression "bVar25 = (!bVar26 && !bVar25) == bVar26" (identifier "bVar25") (= "=") (binary_expression "(!bVar26 && !bVar25) == bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" (( "(") (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar26"))) (; ";")) (if_statement "if (!bVar25) {\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (compound_statement "{\n            lVar18 = 9;\n            pbVar20 = (byte *)".eh_frame";\n            pbVar15 = local_78[0];\n            do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);\n            local_12d = (!bVar29 && !bVar25) != bVar29;\n            goto LAB_00309642;\n          }" ({ "{") (expression_statement "lVar18 = 9;" (assignment_expression "lVar18 = 9" (identifier "lVar18") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar20 = (byte *)".eh_frame";" (assignment_expression "pbVar20 = (byte *)".eh_frame"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".eh_frame"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".eh_frame"" (" """) (string_content ".eh_frame") (" """)))) (; ";")) (expression_statement "pbVar15 = local_78[0];" (assignment_expression "pbVar15 = local_78[0]" (identifier "pbVar15") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            } while (bVar25);" (do "do") (compound_statement "{\n              if (lVar18 == 0) break;\n              lVar18 = lVar18 + -1;\n              bVar29 = *pbVar20 < *pbVar15;\n              bVar25 = *pbVar20 == *pbVar15;\n              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;\n              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar18 == 0) break;" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar29 = *pbVar20 < *pbVar15;" (assignment_expression "bVar29 = *pbVar20 < *pbVar15" (identifier "bVar29") (= "=") (binary_expression "*pbVar20 < *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar25 = *pbVar20 == *pbVar15;" (assignment_expression "bVar25 = *pbVar20 == *pbVar15" (identifier "bVar25") (= "=") (binary_expression "*pbVar20 == *pbVar15" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar30 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar30 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "local_12d = (!bVar29 && !bVar25) != bVar29;" (assignment_expression "local_12d = (!bVar29 && !bVar25) != bVar29" (identifier "local_12d") (= "=") (binary_expression "(!bVar29 && !bVar25) != bVar29" (parenthesized_expression "(!bVar29 && !bVar25)" (( "(") (binary_expression "!bVar29 && !bVar25" (unary_expression "!bVar29" (! "!") (identifier "bVar29")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (!= "!=") (identifier "bVar29"))) (; ";")) (goto_statement "goto LAB_00309642;" (goto "goto") (statement_identifier "LAB_00309642") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_12d = '\0';" (assignment_expression "local_12d = '\0'" (identifier "local_12d") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (labeled_statement "LAB_00309642:\n  if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }" (statement_identifier "LAB_00309642") (: ":") (if_statement "if (param_6 != 0) {\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }" (if "if") (parenthesized_expression "(param_6 != 0)" (( "(") (binary_expression "param_6 != 0" (identifier "param_6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_138 = (byte *)0x0;\n    local_100 = 0;\n    local_108 = param_5;\n    do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);\n  }" ({ "{") (expression_statement "local_138 = (byte *)0x0;" (assignment_expression "local_138 = (byte *)0x0" (identifier "local_138") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_108 = param_5;" (assignment_expression "local_108 = param_5" (identifier "local_108") (= "=") (identifier "param_5")) (; ";")) (do_statement "do {\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    } while (param_6 != local_100);" (do "do") (compound_statement "{\n      uVar4 = local_108[2];\n      uVar22 = local_108[1] >> 8;\n      if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }\nLAB_00309772:\n      local_100 = local_100 + 1;\n      local_108 = local_108 + 3;\n    }" ({ "{") (expression_statement "uVar4 = local_108[2];" (assignment_expression "uVar4 = local_108[2]" (identifier "uVar4") (= "=") (subscript_expression "local_108[2]" (identifier "local_108") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar22 = local_108[1] >> 8;" (assignment_expression "uVar22 = local_108[1] >> 8" (identifier "uVar22") (= "=") (binary_expression "local_108[1] >> 8" (subscript_expression "local_108[1]" (identifier "local_108") ([ "[") (number_literal "1") (] "]")) (>> ">>") (number_literal "8"))) (; ";")) (if_statement "if (uVar22 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" (if "if") (parenthesized_expression "(uVar22 < param_7)" (( "(") (binary_expression "uVar22 < param_7" (identifier "uVar22") (< "<") (identifier "param_7")) () ")")) (compound_statement "{\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar18 = (ulong)(uVar22 << 4) + param_8;\n        uVar3 = *(ushort *)(lVar18 + 0xe);\n        uVar9 = (uint)uVar3;\n        if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }\n        local_110 = param_3;\n        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" (if "if") (parenthesized_expression "(param_8 == 0)" (( "(") (binary_expression "param_8 == 0" (identifier "param_8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }" ({ "{") (expression_statement "FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");" (call_expression "FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs")" (identifier "FUN_00352af0") (argument_list "("../../gold/gc.h",0xea,"gc_process_relocs")" (( "(") (string_literal ""../../gold/gc.h"" (" """) (string_content "../../gold/gc.h") (" """)) (, ",") (number_literal "0xea") (, ",") (string_literal ""gc_process_relocs"" (" """) (string_content "gc_process_relocs") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar18 = (ulong)(uVar22 << 4) + param_8;" (assignment_expression "lVar18 = (ulong)(uVar22 << 4) + param_8" (identifier "lVar18") (= "=") (binary_expression "(ulong)(uVar22 << 4) + param_8" (call_expression "(ulong)(uVar22 << 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar22 << 4)" (( "(") (binary_expression "uVar22 << 4" (identifier "uVar22") (<< "<<") (number_literal "4")) () ")"))) (+ "+") (identifier "param_8"))) (; ";")) (expression_statement "uVar3 = *(ushort *)(lVar18 + 0xe);" (assignment_expression "uVar3 = *(ushort *)(lVar18 + 0xe)" (identifier "uVar3") (= "=") (pointer_expression "*(ushort *)(lVar18 + 0xe)" (* "*") (cast_expression "(ushort *)(lVar18 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 0xe)" (( "(") (binary_expression "lVar18 + 0xe" (identifier "lVar18") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (expression_statement "uVar9 = (uint)uVar3;" (assignment_expression "uVar9 = (uint)uVar3" (identifier "uVar9") (= "=") (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3"))) (; ";")) (if_statement "if (uVar3 < 0xff00) {\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }\n        else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }" (if "if") (parenthesized_expression "(uVar3 < 0xff00)" (( "(") (binary_expression "uVar3 < 0xff00" (identifier "uVar3") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\nLAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }\n        }" ({ "{") (labeled_statement "LAB_003097e5:\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);" (statement_identifier "LAB_003097e5") (: ":") (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4)" (identifier "pbVar20") (= "=") (binary_expression "(byte *)(ulong)*(uint *)(lVar18 + 4)" (cast_expression "(byte *)(ulong)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (cast_expression "(uint *)(lVar18 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 4)" (( "(") (binary_expression "lVar18 + 4" (identifier "lVar18") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (expression_statement "local_124 = uVar4 + *(uint *)(lVar18 + 4);" (assignment_expression "local_124 = uVar4 + *(uint *)(lVar18 + 4)" (identifier "local_124") (= "=") (binary_expression "uVar4 + *(uint *)(lVar18 + 4)" (identifier "uVar4") (+ "+") (pointer_expression "*(uint *)(lVar18 + 4)" (* "*") (cast_expression "(uint *)(lVar18 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 4)" (( "(") (binary_expression "lVar18 + 4" (identifier "lVar18") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (bVar27) {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }" (if "if") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = param_3;\n            FUN_001a7180(local_158,&local_58);\n            bVar25 = true;\n            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;\nLAB_003096e8:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_150,&local_58);\n            goto LAB_00309703;\n          }" ({ "{") (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar9);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar9)" (identifier "local_50") (= "=") (call_expression "CONCAT44(local_50._4_4_,uVar9)" (identifier "CONCAT44") (argument_list "(local_50._4_4_,uVar9)" (( "(") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" (identifier "local_58") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" (identifier "FUN_001a7180") (argument_list "(local_158,&local_58)" (( "(") (identifier "local_158") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "bVar25 = true;" (assignment_expression "bVar25 = true" (identifier "bVar25") (= "=") (true "true")) (; ";")) (if_statement "if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;" (if "if") (parenthesized_expression "((*(byte *)(lVar18 + 0xc) & 0xf) == 3)" (( "(") (binary_expression "(*(byte *)(lVar18 + 0xc) & 0xf) == 3" (parenthesized_expression "(*(byte *)(lVar18 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(lVar18 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar18 + 0xc)" (* "*") (cast_expression "(byte *)(lVar18 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 0xc)" (( "(") (binary_expression "lVar18 + 0xc" (identifier "lVar18") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_0030982d;" (goto "goto") (statement_identifier "LAB_0030982d") (; ";"))) (labeled_statement "LAB_003096e8:\n            local_58 = (byte *)0x0;" (statement_identifier "LAB_003096e8") (: ":") (expression_statement "local_58 = (byte *)0x0;" (assignment_expression "local_58 = (byte *)0x0" (identifier "local_58") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "FUN_001a7300(local_150,&local_58);" (call_expression "FUN_001a7300(local_150,&local_58)" (identifier "FUN_001a7300") (argument_list "(local_150,&local_58)" (( "(") (identifier "local_150") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (goto_statement "goto LAB_00309703;" (goto "goto") (statement_identifier "LAB_00309703") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }" (else "else") (compound_statement "{\n          if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }\n          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);\n          local_124 = uVar4 + *(uint *)(lVar18 + 4);\n          if (!bVar27) goto LAB_00309772;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_158,&local_58);\n          bVar25 = false;\n          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;\nLAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_150,&local_58);\nLAB_00309703:\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_88);\n          if (!bVar25) goto LAB_00309772;\n        }" ({ "{") (if_statement "if (uVar3 == 0xffff) {\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }" (if "if") (parenthesized_expression "(uVar3 == 0xffff)" (( "(") (binary_expression "uVar3 == 0xffff" (identifier "uVar3") (== "==") (number_literal "0xffff")) () ")")) (compound_statement "{\n            lVar13 = *(long *)(param_3 + 0x40);\n            if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }\n            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);\n            goto LAB_003097e5;\n          }" ({ "{") (expression_statement "lVar13 = *(long *)(param_3 + 0x40);" (assignment_expression "lVar13 = *(long *)(param_3 + 0x40)" (identifier "lVar13") (= "=") (pointer_expression "*(long *)(param_3 + 0x40)" (* "*") (cast_expression "(long *)(param_3 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x40)" (( "(") (binary_expression "param_3 + 0x40" (identifier "param_3") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (if_statement "if (lVar13 == 0) {\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar13;\n            }" ({ "{") (expression_statement "lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);" (assignment_expression "lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3)" (identifier "lVar13") (= "=") (call_expression "(**(code **)(*(long *)param_3 + 0xd8))(param_3)" (parenthesized_expression "(**(code **)(*(long *)param_3 + 0xd8))" (( "(") (pointer_expression "**(code **)(*(long *)param_3 + 0xd8)" (* "*") (pointer_expression "*(code **)(*(long *)param_3 + 0xd8)" (* "*") (cast_expression "(code **)(*(long *)param_3 + 0xd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)param_3 + 0xd8)" (( "(") (binary_expression "*(long *)param_3 + 0xd8" (pointer_expression "*(long *)param_3" (* "*") (cast_expression "(long *)param_3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))) (+ "+") (number_literal "0xd8")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "*(long *)(param_3 + 0x40) = lVar13;" (assignment_expression "*(long *)(param_3 + 0x40) = lVar13" (pointer_expression "*(long *)(param_3 + 0x40)" (* "*") (cast_expression "(long *)(param_3 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x40)" (( "(") (binary_expression "param_3 + 0x40" (identifier "param_3") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "lVar13")) (; ";")) (} "}"))) (expression_statement "uVar9 = FUN_00392c60(lVar13,param_3,uVar22);" (assignment_expression "uVar9 = FUN_00392c60(lVar13,param_3,uVar22)" (identifier "uVar9") (= "=") (call_expression "FUN_00392c60(lVar13,param_3,uVar22)" (identifier "FUN_00392c60") (argument_list "(lVar13,param_3,uVar22)" (( "(") (identifier "lVar13") (, ",") (identifier "param_3") (, ",") (identifier "uVar22") () ")")))) (; ";")) (goto_statement "goto LAB_003097e5;" (goto "goto") (statement_identifier "LAB_003097e5") (; ";")) (} "}"))) (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4)" (identifier "pbVar20") (= "=") (binary_expression "(byte *)(ulong)*(uint *)(lVar18 + 4)" (cast_expression "(byte *)(ulong)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (cast_expression "(uint *)(lVar18 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 4)" (( "(") (binary_expression "lVar18 + 4" (identifier "lVar18") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_124 = uVar4 + *(uint *)(lVar18 + 4);" (assignment_expression "local_124 = uVar4 + *(uint *)(lVar18 + 4)" (identifier "local_124") (= "=") (binary_expression "uVar4 + *(uint *)(lVar18 + 4)" (identifier "uVar4") (+ "+") (pointer_expression "*(uint *)(lVar18 + 4)" (* "*") (cast_expression "(uint *)(lVar18 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 4)" (( "(") (binary_expression "lVar18 + 4" (identifier "lVar18") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (!bVar27) goto LAB_00309772;" (if "if") (parenthesized_expression "(!bVar27)" (( "(") (unary_expression "!bVar27" (! "!") (identifier "bVar27")) () ")")) (goto_statement "goto LAB_00309772;" (goto "goto") (statement_identifier "LAB_00309772") (; ";"))) (expression_statement "local_58 = (byte *)0x0;" (assignment_expression "local_58 = (byte *)0x0" (identifier "local_58") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50 = local_50 & 0xffffffff00000000;" (assignment_expression "local_50 = local_50 & 0xffffffff00000000" (identifier "local_50") (= "=") (binary_expression "local_50 & 0xffffffff00000000" (identifier "local_50") (& "&") (number_literal "0xffffffff00000000"))) (; ";")) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" (identifier "FUN_001a7180") (argument_list "(local_158,&local_58)" (( "(") (identifier "local_158") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (if_statement "if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;" (if "if") (parenthesized_expression "((*(byte *)(lVar18 + 0xc) & 0xf) != 3)" (( "(") (binary_expression "(*(byte *)(lVar18 + 0xc) & 0xf) != 3" (parenthesized_expression "(*(byte *)(lVar18 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(lVar18 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar18 + 0xc)" (* "*") (cast_expression "(byte *)(lVar18 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 0xc)" (( "(") (binary_expression "lVar18 + 0xc" (identifier "lVar18") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_003096e8;" (goto "goto") (statement_identifier "LAB_003096e8") (; ";"))) (labeled_statement "LAB_0030982d:\n          local_58 = (byte *)0xffffffffffffffff;" (statement_identifier "LAB_0030982d") (: ":") (expression_statement "local_58 = (byte *)0xffffffffffffffff;" (assignment_expression "local_58 = (byte *)0xffffffffffffffff" (identifier "local_58") (= "=") (cast_expression "(byte *)0xffffffffffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) (; ";"))) (expression_statement "FUN_001a7300(local_150,&local_58);" (call_expression "FUN_001a7300(local_150,&local_58)" (identifier "FUN_001a7300") (argument_list "(local_150,&local_58)" (( "(") (identifier "local_150") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (labeled_statement "LAB_00309703:\n          local_58 = pbVar20;" (statement_identifier "LAB_00309703") (: ":") (expression_statement "local_58 = pbVar20;" (assignment_expression "local_58 = pbVar20" (identifier "local_58") (= "=") (identifier "pbVar20")) (; ";"))) (expression_statement "local_50 = (long)(int)uVar4;" (assignment_expression "local_50 = (long)(int)uVar4" (identifier "local_50") (= "=") (cast_expression "(long)(int)uVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")))) (; ";")) (expression_statement "FUN_001a74a0(local_160,&local_58);" (call_expression "FUN_001a74a0(local_160,&local_58)" (identifier "FUN_001a74a0") (argument_list "(local_160,&local_58)" (( "(") (identifier "local_160") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "local_58 = (byte *)(ulong)*local_108;" (assignment_expression "local_58 = (byte *)(ulong)*local_108" (identifier "local_58") (= "=") (binary_expression "(byte *)(ulong)*local_108" (cast_expression "(byte *)(ulong)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (identifier "local_108"))) (; ";")) (expression_statement "puVar5 = *(undefined8 **)(local_140 + 8);" (assignment_expression "puVar5 = *(undefined8 **)(local_140 + 8)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined8 **)(local_140 + 8)" (* "*") (cast_expression "(undefined8 **)(local_140 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_140 + 8)" (( "(") (binary_expression "local_140 + 8" (identifier "local_140") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" (if "if") (parenthesized_expression "(puVar5 == *(undefined8 **)(local_140 + 0x10))" (( "(") (binary_expression "puVar5 == *(undefined8 **)(local_140 + 0x10)" (identifier "puVar5") (== "==") (pointer_expression "*(undefined8 **)(local_140 + 0x10)" (* "*") (cast_expression "(undefined8 **)(local_140 + 0x10)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_140 + 0x10)" (( "(") (binary_expression "local_140 + 0x10" (identifier "local_140") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }" ({ "{") (expression_statement "FUN_001a6070(local_140,puVar5,&local_58);" (call_expression "FUN_001a6070(local_140,puVar5,&local_58)" (identifier "FUN_001a6070") (argument_list "(local_140,puVar5,&local_58)" (( "(") (identifier "local_140") (, ",") (identifier "puVar5") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" ({ "{") (expression_statement "*puVar5 = local_58;" (assignment_expression "*puVar5 = local_58" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(undefined8 **)(local_140 + 8) = puVar5 + 1;" (assignment_expression "*(undefined8 **)(local_140 + 8) = puVar5 + 1" (pointer_expression "*(undefined8 **)(local_140 + 8)" (* "*") (cast_expression "(undefined8 **)(local_140 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_140 + 8)" (( "(") (binary_expression "local_140 + 8" (identifier "local_140") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);" (assignment_expression "local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000)" (identifier "local_88") (= "=") (cast_expression "(byte *)((ulong)local_88 & 0xffffffff00000000)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)local_88 & 0xffffffff00000000)" (( "(") (binary_expression "(ulong)local_88 & 0xffffffff00000000" (cast_expression "(ulong)local_88" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_88")) (& "&") (number_literal "0xffffffff00000000")) () ")")))) (; ";")) (expression_statement "FUN_001a7630(local_168,&local_88);" (call_expression "FUN_001a7630(local_168,&local_88)" (identifier "FUN_001a7630") (argument_list "(local_168,&local_88)" (( "(") (identifier "local_168") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")"))) (; ";")) (if_statement "if (!bVar25) goto LAB_00309772;" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_00309772;" (goto "goto") (statement_identifier "LAB_00309772") (; ";"))) (} "}")))) (expression_statement "local_110 = param_3;" (assignment_expression "local_110 = param_3" (identifier "local_110") (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }\n        else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1))" (( "(") (binary_expression "(local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)" (parenthesized_expression "(local_12d == '\0')" (( "(") (binary_expression "local_12d == '\0'" (identifier "local_12d") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(lVar18 + 0xc) & 0xf) == 1)" (( "(") (binary_expression "(*(byte *)(lVar18 + 0xc) & 0xf) == 1" (parenthesized_expression "(*(byte *)(lVar18 + 0xc) & 0xf)" (( "(") (binary_expression "*(byte *)(lVar18 + 0xc) & 0xf" (pointer_expression "*(byte *)(lVar18 + 0xc)" (* "*") (cast_expression "(byte *)(lVar18 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 0xc)" (( "(") (binary_expression "lVar18 + 0xc" (identifier "lVar18") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\nLAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;\n        }" ({ "{") (labeled_statement "LAB_003098d8:\n          if (param_4 != uVar9) goto LAB_003098ec;" (statement_identifier "LAB_003098d8") (: ":") (if_statement "if (param_4 != uVar9) goto LAB_003098ec;" (if "if") (parenthesized_expression "(param_4 != uVar9)" (( "(") (binary_expression "param_4 != uVar9" (identifier "param_4") (!= "!=") (identifier "uVar9")) () ")")) (goto_statement "goto LAB_003098ec;" (goto "goto") (statement_identifier "LAB_003098ec") (; ";")))) (} "}")) (else_clause "else {\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" (else "else") (compound_statement "{\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }\n          if (param_4 == uVar9) goto LAB_00309772;\nLAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);" (assignment_expression "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10)" (identifier "lVar13") (= "=") (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" ({ "{") (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00352af0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(lVar13 + 0x2a61) != '\0') {\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }" (if "if") (parenthesized_expression "(*(char *)(lVar13 + 0x2a61) != '\0')" (( "(") (binary_expression "*(char *)(lVar13 + 0x2a61) != '\0'" (pointer_expression "*(char *)(lVar13 + 0x2a61)" (* "*") (cast_expression "(char *)(lVar13 + 0x2a61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x2a61)" (( "(") (binary_expression "lVar13 + 0x2a61" (identifier "lVar13") (+ "+") (number_literal "0x2a61")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);\n            local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n            local_a8 = param_3;\n            FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n            goto LAB_003098d8;\n          }" ({ "{") (expression_statement "local_a0 = (uint)*(ushort *)(lVar18 + 0xe);" (assignment_expression "local_a0 = (uint)*(ushort *)(lVar18 + 0xe)" (identifier "local_a0") (= "=") (binary_expression "(uint)*(ushort *)(lVar18 + 0xe)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(lVar18 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 0xe)" (( "(") (binary_expression "lVar18 + 0xe" (identifier "lVar18") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (expression_statement "local_e8 = *(long *)(param_1 + 0x298) + 0x68;" (assignment_expression "local_e8 = *(long *)(param_1 + 0x298) + 0x68" (identifier "local_e8") (= "=") (binary_expression "*(long *)(param_1 + 0x298) + 0x68" (pointer_expression "*(long *)(param_1 + 0x298)" (* "*") (cast_expression "(long *)(param_1 + 0x298)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (+ "+") (number_literal "0x68"))) (; ";")) (expression_statement "local_a8 = param_3;" (assignment_expression "local_a8 = param_3" (identifier "local_a8") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_001a7850(local_e8,&local_a8,&local_e8,1);" (call_expression "FUN_001a7850(local_e8,&local_a8,&local_e8,1)" (identifier "FUN_001a7850") (argument_list "(local_e8,&local_a8,&local_e8,1)" (( "(") (identifier "local_e8") (, ",") (pointer_expression "&local_a8" (& "&") (identifier "local_a8")) (, ",") (pointer_expression "&local_e8" (& "&") (identifier "local_e8")) (, ",") (number_literal "1") () ")"))) (; ";")) (goto_statement "goto LAB_003098d8;" (goto "goto") (statement_identifier "LAB_003098d8") (; ";")) (} "}"))) (if_statement "if (param_4 == uVar9) goto LAB_00309772;" (if "if") (parenthesized_expression "(param_4 == uVar9)" (( "(") (binary_expression "param_4 == uVar9" (identifier "param_4") (== "==") (identifier "uVar9")) () ")")) (goto_statement "goto LAB_00309772;" (goto "goto") (statement_identifier "LAB_00309772") (; ";"))) (labeled_statement "LAB_00309900:\n          if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" (statement_identifier "LAB_00309900") (: ":") (if_statement "if (*(char *)(lVar13 + 0x2809) != '\0') {\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(*(char *)(lVar13 + 0x2809) != '\0')" (( "(") (binary_expression "*(char *)(lVar13 + 0x2809) != '\0'" (pointer_expression "*(char *)(lVar13 + 0x2809)" (* "*") (cast_expression "(char *)(lVar13 + 0x2809)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x2809)" (( "(") (binary_expression "lVar13 + 0x2809" (identifier "lVar13") (+ "+") (number_literal "0x2809")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            lVar13 = *(long *)(param_1 + 0x290);\n            lVar18 = lVar13 + 0x28;\n            local_88 = local_110;\n            lVar10 = lVar18;\n            lVar11 = lVar18;\n            lVar14 = *(long *)(lVar13 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            local_80 = uVar9;\n            if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }\n            local_d0 = lVar11 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }\n            if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "lVar13 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar13 = *(long *)(param_1 + 0x290)" (identifier "lVar13") (= "=") (pointer_expression "*(long *)(param_1 + 0x290)" (* "*") (cast_expression "(long *)(param_1 + 0x290)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x290)" (( "(") (binary_expression "param_1 + 0x290" (identifier "param_1") (+ "+") (number_literal "0x290")) () ")"))))) (; ";")) (expression_statement "lVar18 = lVar13 + 0x28;" (assignment_expression "lVar18 = lVar13 + 0x28" (identifier "lVar18") (= "=") (binary_expression "lVar13 + 0x28" (identifier "lVar13") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "local_88 = local_110;" (assignment_expression "local_88 = local_110" (identifier "local_88") (= "=") (identifier "local_110")) (; ";")) (expression_statement "lVar10 = lVar18;" (assignment_expression "lVar10 = lVar18" (identifier "lVar10") (= "=") (identifier "lVar18")) (; ";")) (expression_statement "lVar11 = lVar18;" (assignment_expression "lVar11 = lVar18" (identifier "lVar11") (= "=") (identifier "lVar18")) (; ";")) (expression_statement "lVar14 = *(long *)(lVar13 + 0x30);" (assignment_expression "lVar14 = *(long *)(lVar13 + 0x30)" (identifier "lVar14") (= "=") (pointer_expression "*(long *)(lVar13 + 0x30)" (* "*") (cast_expression "(long *)(lVar13 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x30)" (( "(") (binary_expression "lVar13 + 0x30" (identifier "lVar13") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_98 = param_3;" (assignment_expression "local_98 = param_3" (identifier "local_98") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_90 = param_4;" (assignment_expression "local_90 = param_4" (identifier "local_90") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_80 = uVar9;" (assignment_expression "local_80 = uVar9" (identifier "local_80") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }" (if "if") (parenthesized_expression "(*(long *)(lVar13 + 0x30) == 0)" (( "(") (binary_expression "*(long *)(lVar13 + 0x30) == 0" (pointer_expression "*(long *)(lVar13 + 0x30)" (* "*") (cast_expression "(long *)(lVar13 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x30)" (( "(") (binary_expression "lVar13 + 0x30" (identifier "lVar13") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_003099a8:\n              local_c8 = &local_98;\n              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);\n            }" ({ "{") (labeled_statement "LAB_003099a8:\n              local_c8 = &local_98;" (statement_identifier "LAB_003099a8") (: ":") (expression_statement "local_c8 = &local_98;" (assignment_expression "local_c8 = &local_98" (identifier "local_c8") (= "=") (pointer_expression "&local_98" (& "&") (identifier "local_98"))) (; ";"))) (expression_statement "lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);" (assignment_expression "lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea)" (identifier "lVar11") (= "=") (call_expression "FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea)" (identifier "FUN_001a64f0") (argument_list "(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea)" (( "(") (binary_expression "lVar13 + 0x20" (identifier "lVar13") (+ "+") (number_literal "0x20")) (, ",") (identifier "lVar11") (, ",") (pointer_expression "&DAT_00567620" (& "&") (identifier "DAT_00567620")) (, ",") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) (, ",") (pointer_expression "&local_ea" (& "&") (identifier "local_ea")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }" (else "else") (compound_statement "{\n              do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;\n            }" ({ "{") (do_statement "do {\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              } while (*(long *)(lVar11 + 0x10) != 0);" (do "do") (compound_statement "{\n                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }\n                lVar10 = lVar11;\n                lVar14 = *(long *)(lVar11 + 0x10);\n              }" ({ "{") (while_statement "while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }" (while "while") (parenthesized_expression "((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))))" (( "(") (parenthesized_expression "(lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))))" (( "(") (comma_expression "lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))" (assignment_expression "lVar11 = lVar14" (identifier "lVar11") (= "=") (identifier "lVar14")) (, ",") (binary_expression "*(byte **)(lVar11 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))" (binary_expression "*(byte **)(lVar11 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar11 + 0x20)" (* "*") (cast_expression "(byte **)(lVar11 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar11 + 0x20)" (( "(") (binary_expression "lVar11 + 0x20" (identifier "lVar11") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (identifier "param_3")) (|| "||") (parenthesized_expression "((param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)))" (( "(") (parenthesized_expression "(param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4))" (( "(") (binary_expression "param_3 == *(byte **)(lVar11 + 0x20) &&\n                        (*(uint *)(lVar11 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar11 + 0x20)" (identifier "param_3") (== "==") (pointer_expression "*(byte **)(lVar11 + 0x20)" (* "*") (cast_expression "(byte **)(lVar11 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar11 + 0x20)" (( "(") (binary_expression "lVar11 + 0x20" (identifier "lVar11") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(*(uint *)(lVar11 + 0x28) < param_4)" (( "(") (binary_expression "*(uint *)(lVar11 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar11 + 0x28)" (* "*") (cast_expression "(uint *)(lVar11 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x28)" (( "(") (binary_expression "lVar11 + 0x28" (identifier "lVar11") (+ "+") (number_literal "0x28")) () ")")))) (< "<") (identifier "param_4")) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                  plVar1 = (long *)(lVar11 + 0x18);\n                  lVar11 = lVar10;\n                  lVar14 = *plVar1;\n                  if (*plVar1 == 0) goto LAB_00309982;\n                }" ({ "{") (expression_statement "plVar1 = (long *)(lVar11 + 0x18);" (assignment_expression "plVar1 = (long *)(lVar11 + 0x18)" (identifier "plVar1") (= "=") (cast_expression "(long *)(lVar11 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x18)" (( "(") (binary_expression "lVar11 + 0x18" (identifier "lVar11") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "lVar11 = lVar10;" (assignment_expression "lVar11 = lVar10" (identifier "lVar11") (= "=") (identifier "lVar10")) (; ";")) (expression_statement "lVar14 = *plVar1;" (assignment_expression "lVar14 = *plVar1" (identifier "lVar14") (= "=") (pointer_expression "*plVar1" (* "*") (identifier "plVar1"))) (; ";")) (if_statement "if (*plVar1 == 0) goto LAB_00309982;" (if "if") (parenthesized_expression "(*plVar1 == 0)" (( "(") (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00309982;" (goto "goto") (statement_identifier "LAB_00309982") (; ";"))) (} "}"))) (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" (identifier "lVar10") (= "=") (identifier "lVar11")) (; ";")) (expression_statement "lVar14 = *(long *)(lVar11 + 0x10);" (assignment_expression "lVar14 = *(long *)(lVar11 + 0x10)" (identifier "lVar14") (= "=") (pointer_expression "*(long *)(lVar11 + 0x10)" (* "*") (cast_expression "(long *)(lVar11 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x10)" (( "(") (binary_expression "lVar11 + 0x10" (identifier "lVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(long *)(lVar11 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(lVar11 + 0x10) != 0" (pointer_expression "*(long *)(lVar11 + 0x10)" (* "*") (cast_expression "(long *)(lVar11 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x10)" (( "(") (binary_expression "lVar11 + 0x10" (identifier "lVar11") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_00309982:\n              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;" (statement_identifier "LAB_00309982") (: ":") (if_statement "if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))\n              goto LAB_003099a8;" (if "if") (parenthesized_expression "(((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))" (( "(") (binary_expression "((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28))))" (parenthesized_expression "((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20)))" (( "(") (binary_expression "(lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))" (parenthesized_expression "(lVar11 == lVar18)" (( "(") (binary_expression "lVar11 == lVar18" (identifier "lVar11") (== "==") (identifier "lVar18")) () ")")) (|| "||") (parenthesized_expression "(param_3 < *(byte **)(lVar11 + 0x20))" (( "(") (binary_expression "param_3 < *(byte **)(lVar11 + 0x20)" (identifier "param_3") (< "<") (pointer_expression "*(byte **)(lVar11 + 0x20)" (* "*") (cast_expression "(byte **)(lVar11 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar11 + 0x20)" (( "(") (binary_expression "lVar11 + 0x20" (identifier "lVar11") (+ "+") (number_literal "0x20")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28))))" (( "(") (parenthesized_expression "(param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))" (( "(") (binary_expression "param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar11 + 0x20)" (identifier "param_3") (== "==") (pointer_expression "*(byte **)(lVar11 + 0x20)" (* "*") (cast_expression "(byte **)(lVar11 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar11 + 0x20)" (( "(") (binary_expression "lVar11 + 0x20" (identifier "lVar11") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(param_4 < *(uint *)(lVar11 + 0x28))" (( "(") (binary_expression "param_4 < *(uint *)(lVar11 + 0x28)" (identifier "param_4") (< "<") (pointer_expression "*(uint *)(lVar11 + 0x28)" (* "*") (cast_expression "(uint *)(lVar11 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + 0x28)" (( "(") (binary_expression "lVar11 + 0x28" (identifier "lVar11") (+ "+") (number_literal "0x28")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_003099a8;" (goto "goto") (statement_identifier "LAB_003099a8") (; ";")))) (} "}")))) (expression_statement "local_d0 = lVar11 + 0x30;" (assignment_expression "local_d0 = lVar11 + 0x30" (identifier "local_d0") (= "=") (binary_expression "lVar11 + 0x30" (identifier "lVar11") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "FUN_001a78f0(local_d0,&local_88,&local_d0,1);" (call_expression "FUN_001a78f0(local_d0,&local_88,&local_d0,1)" (identifier "FUN_001a78f0") (argument_list "(local_d0,&local_88,&local_d0,1)" (( "(") (identifier "local_d0") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) (, ",") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);" (assignment_expression "plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18)" (identifier "plVar1") (= "=") (pointer_expression "*(long **)(PTR_DAT_0067cb08 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0067cb08 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x18)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x18" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (plVar1 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }" (if "if") (parenthesized_expression "(plVar1 == (long *)0x0)" (( "(") (binary_expression "plVar1 == (long *)0x0" (identifier "plVar1") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }" ({ "{") (expression_statement "FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x73,"sized_target")" (identifier "FUN_00352af0") (argument_list "("../../gold/parameters.h",0x73,"sized_target")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x73") (, ",") (string_literal ""sized_target"" (" """) (string_content "sized_target") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }" (if "if") (parenthesized_expression "(*(code **)(*plVar1 + 0x208) != FUN_001a4ba0)" (( "(") (binary_expression "*(code **)(*plVar1 + 0x208) != FUN_001a4ba0" (pointer_expression "*(code **)(*plVar1 + 0x208)" (* "*") (cast_expression "(code **)(*plVar1 + 0x208)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar1 + 0x208)" (( "(") (binary_expression "*plVar1 + 0x208" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (+ "+") (number_literal "0x208")) () ")")))) (!= "!=") (identifier "FUN_001a4ba0")) () ")")) (compound_statement "{\n              (**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);\n            }" ({ "{") (expression_statement "(**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);" (call_expression "(**(code **)(*plVar1 + 0x208))\n                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124)" (parenthesized_expression "(**(code **)(*plVar1 + 0x208))" (( "(") (pointer_expression "**(code **)(*plVar1 + 0x208)" (* "*") (pointer_expression "*(code **)(*plVar1 + 0x208)" (* "*") (cast_expression "(code **)(*plVar1 + 0x208)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar1 + 0x208)" (( "(") (binary_expression "*plVar1 + 0x208" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (+ "+") (number_literal "0x208")) () ")"))))) () ")")) (argument_list "(plVar1,param_1,param_3,param_4,local_110,uVar9,local_124)" (( "(") (identifier "plVar1") (, ",") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "local_110") (, ",") (identifier "uVar9") (, ",") (identifier "local_124") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_138 != (byte *)0x0) {\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }" (if "if") (parenthesized_expression "(local_138 != (byte *)0x0)" (( "(") (binary_expression "local_138 != (byte *)0x0" (identifier "local_138") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              lVar18 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar12 = strlen((char *)local_138);\n              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);\n              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar13 = *(long *)(param_1 + 0x290);\n              if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }\n            }" ({ "{") (expression_statement "lVar18 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar18 = *(long *)(param_1 + 0x290)" (identifier "lVar18") (= "=") (pointer_expression "*(long *)(param_1 + 0x290)" (* "*") (cast_expression "(long *)(param_1 + 0x290)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x290)" (( "(") (binary_expression "param_1 + 0x290" (identifier "param_1") (+ "+") (number_literal "0x290")) () ")"))))) (; ";")) (expression_statement "local_58 = local_48;" (assignment_expression "local_58 = local_48" (identifier "local_58") (= "=") (identifier "local_48")) (; ";")) (expression_statement "sVar12 = strlen((char *)local_138);" (assignment_expression "sVar12 = strlen((char *)local_138)" (identifier "sVar12") (= "=") (call_expression "strlen((char *)local_138)" (identifier "strlen") (argument_list "((char *)local_138)" (( "(") (cast_expression "(char *)local_138" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_138")) () ")")))) (; ";")) (expression_statement "FUN_001a61c0(&local_58,local_138,local_138 + sVar12);" (call_expression "FUN_001a61c0(&local_58,local_138,local_138 + sVar12)" (identifier "FUN_001a61c0") (argument_list "(&local_58,local_138,local_138 + sVar12)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "local_138") (, ",") (binary_expression "local_138 + sVar12" (identifier "local_138") (+ "+") (identifier "sVar12")) () ")"))) (; ";")) (expression_statement "lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);" (assignment_expression "lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58)" (identifier "lVar18") (= "=") (call_expression "FUN_001c4d80(lVar18 + 0x88,&local_58)" (identifier "FUN_001c4d80") (argument_list "(lVar18 + 0x88,&local_58)" (( "(") (binary_expression "lVar18 + 0x88" (identifier "lVar18") (+ "+") (number_literal "0x88")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (if_statement "if (local_58 != local_48) {\n                FUN_0049e330();\n              }" (if "if") (parenthesized_expression "(local_58 != local_48)" (( "(") (binary_expression "local_58 != local_48" (identifier "local_58") (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n                FUN_0049e330();\n              }" ({ "{") (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" (identifier "FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar13 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar13 = *(long *)(param_1 + 0x290)" (identifier "lVar13") (= "=") (pointer_expression "*(long *)(param_1 + 0x290)" (* "*") (cast_expression "(long *)(param_1 + 0x290)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x290)" (( "(") (binary_expression "param_1 + 0x290" (identifier "param_1") (+ "+") (number_literal "0x290")) () ")"))))) (; ";")) (if_statement "if (lVar18 != lVar13 + 0x90) {\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }" (if "if") (parenthesized_expression "(lVar18 != lVar13 + 0x90)" (( "(") (binary_expression "lVar18 != lVar13 + 0x90" (identifier "lVar18") (!= "!=") (binary_expression "lVar13 + 0x90" (identifier "lVar13") (+ "+") (number_literal "0x90"))) () ")")) (compound_statement "{\n                lVar10 = lVar13 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar11 = lVar10;\n                lVar14 = lVar10;\n                lVar7 = *(long *)(lVar13 + 0x30);\n                if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }\n                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }\n              }" ({ "{") (expression_statement "lVar10 = lVar13 + 0x28;" (assignment_expression "lVar10 = lVar13 + 0x28" (identifier "lVar10") (= "=") (binary_expression "lVar13 + 0x28" (identifier "lVar13") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "local_50 = CONCAT44(local_50._4_4_,param_4);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,param_4)" (identifier "local_50") (= "=") (call_expression "CONCAT44(local_50._4_4_,param_4)" (identifier "CONCAT44") (argument_list "(local_50._4_4_,param_4)" (( "(") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "lVar11 = lVar10;" (assignment_expression "lVar11 = lVar10" (identifier "lVar11") (= "=") (identifier "lVar10")) (; ";")) (expression_statement "lVar14 = lVar10;" (assignment_expression "lVar14 = lVar10" (identifier "lVar14") (= "=") (identifier "lVar10")) (; ";")) (expression_statement "lVar7 = *(long *)(lVar13 + 0x30);" (assignment_expression "lVar7 = *(long *)(lVar13 + 0x30)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(lVar13 + 0x30)" (* "*") (cast_expression "(long *)(lVar13 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x30)" (( "(") (binary_expression "lVar13 + 0x30" (identifier "lVar13") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (*(long *)(lVar13 + 0x30) == 0) {\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }" (if "if") (parenthesized_expression "(*(long *)(lVar13 + 0x30) == 0)" (( "(") (binary_expression "*(long *)(lVar13 + 0x30) == 0" (pointer_expression "*(long *)(lVar13 + 0x30)" (* "*") (cast_expression "(long *)(lVar13 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x30)" (( "(") (binary_expression "lVar13 + 0x30" (identifier "lVar13") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00309ea0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);\n                }" ({ "{") (labeled_statement "LAB_00309ea0:\n                  local_c0 = &local_58;" (statement_identifier "LAB_00309ea0") (: ":") (expression_statement "local_c0 = &local_58;" (assignment_expression "local_c0 = &local_58" (identifier "local_c0") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";"))) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" (identifier "local_58") (= "=") (identifier "param_3")) (; ";")) (expression_statement "lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);" (assignment_expression "lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9)" (identifier "lVar14") (= "=") (call_expression "FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9)" (identifier "FUN_001a64f0") (argument_list "(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9)" (( "(") (binary_expression "lVar13 + 0x20" (identifier "lVar13") (+ "+") (number_literal "0x20")) (, ",") (identifier "lVar14") (, ",") (pointer_expression "&DAT_00567620" (& "&") (identifier "DAT_00567620")) (, ",") (pointer_expression "&local_c0" (& "&") (identifier "local_c0")) (, ",") (pointer_expression "&local_e9" (& "&") (identifier "local_e9")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }" (else "else") (compound_statement "{\n                  do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);\nLAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;\n                }" ({ "{") (do_statement "do {\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  } while (*(long *)(lVar14 + 0x10) != 0);" (do "do") (compound_statement "{\n                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }\n                    lVar11 = lVar14;\n                    lVar7 = *(long *)(lVar14 + 0x10);\n                  }" ({ "{") (while_statement "while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))) {\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }" (while "while") (parenthesized_expression "((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))))" (( "(") (parenthesized_expression "(lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))))" (( "(") (comma_expression "lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))" (assignment_expression "lVar14 = lVar7" (identifier "lVar14") (= "=") (identifier "lVar7")) (, ",") (binary_expression "*(byte **)(lVar14 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))" (binary_expression "*(byte **)(lVar14 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar14 + 0x20)" (* "*") (cast_expression "(byte **)(lVar14 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar14 + 0x20)" (( "(") (binary_expression "lVar14 + 0x20" (identifier "lVar14") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (identifier "param_3")) (|| "||") (parenthesized_expression "((param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)))" (( "(") (parenthesized_expression "(param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4))" (( "(") (binary_expression "param_3 == *(byte **)(lVar14 + 0x20) &&\n                            (*(uint *)(lVar14 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar14 + 0x20)" (identifier "param_3") (== "==") (pointer_expression "*(byte **)(lVar14 + 0x20)" (* "*") (cast_expression "(byte **)(lVar14 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar14 + 0x20)" (( "(") (binary_expression "lVar14 + 0x20" (identifier "lVar14") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(*(uint *)(lVar14 + 0x28) < param_4)" (( "(") (binary_expression "*(uint *)(lVar14 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar14 + 0x28)" (* "*") (cast_expression "(uint *)(lVar14 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x28)" (( "(") (binary_expression "lVar14 + 0x28" (identifier "lVar14") (+ "+") (number_literal "0x28")) () ")")))) (< "<") (identifier "param_4")) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                      plVar1 = (long *)(lVar14 + 0x18);\n                      lVar14 = lVar11;\n                      lVar7 = *plVar1;\n                      if (*plVar1 == 0) goto LAB_00309b02;\n                    }" ({ "{") (expression_statement "plVar1 = (long *)(lVar14 + 0x18);" (assignment_expression "plVar1 = (long *)(lVar14 + 0x18)" (identifier "plVar1") (= "=") (cast_expression "(long *)(lVar14 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x18)" (( "(") (binary_expression "lVar14 + 0x18" (identifier "lVar14") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "lVar14 = lVar11;" (assignment_expression "lVar14 = lVar11" (identifier "lVar14") (= "=") (identifier "lVar11")) (; ";")) (expression_statement "lVar7 = *plVar1;" (assignment_expression "lVar7 = *plVar1" (identifier "lVar7") (= "=") (pointer_expression "*plVar1" (* "*") (identifier "plVar1"))) (; ";")) (if_statement "if (*plVar1 == 0) goto LAB_00309b02;" (if "if") (parenthesized_expression "(*plVar1 == 0)" (( "(") (binary_expression "*plVar1 == 0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00309b02;" (goto "goto") (statement_identifier "LAB_00309b02") (; ";"))) (} "}"))) (expression_statement "lVar11 = lVar14;" (assignment_expression "lVar11 = lVar14" (identifier "lVar11") (= "=") (identifier "lVar14")) (; ";")) (expression_statement "lVar7 = *(long *)(lVar14 + 0x10);" (assignment_expression "lVar7 = *(long *)(lVar14 + 0x10)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(lVar14 + 0x10)" (* "*") (cast_expression "(long *)(lVar14 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x10)" (( "(") (binary_expression "lVar14 + 0x10" (identifier "lVar14") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(long *)(lVar14 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(lVar14 + 0x10) != 0" (pointer_expression "*(long *)(lVar14 + 0x10)" (* "*") (cast_expression "(long *)(lVar14 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x10)" (( "(") (binary_expression "lVar14 + 0x10" (identifier "lVar14") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_00309b02:\n                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;" (statement_identifier "LAB_00309b02") (: ":") (if_statement "if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;" (if "if") (parenthesized_expression "(((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28)))))" (( "(") (binary_expression "((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))" (parenthesized_expression "((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20)))" (( "(") (binary_expression "(lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))" (parenthesized_expression "(lVar14 == lVar10)" (( "(") (binary_expression "lVar14 == lVar10" (identifier "lVar14") (== "==") (identifier "lVar10")) () ")")) (|| "||") (parenthesized_expression "(param_3 < *(byte **)(lVar14 + 0x20))" (( "(") (binary_expression "param_3 < *(byte **)(lVar14 + 0x20)" (identifier "param_3") (< "<") (pointer_expression "*(byte **)(lVar14 + 0x20)" (* "*") (cast_expression "(byte **)(lVar14 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar14 + 0x20)" (( "(") (binary_expression "lVar14 + 0x20" (identifier "lVar14") (+ "+") (number_literal "0x20")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))))" (( "(") (parenthesized_expression "(local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28)))" (( "(") (comma_expression "local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))" (assignment_expression "local_58 = param_3" (identifier "local_58") (= "=") (identifier "param_3")) (, ",") (binary_expression "param_3 == *(byte **)(lVar14 + 0x20) &&\n                      (param_4 < *(uint *)(lVar14 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar14 + 0x20)" (identifier "param_3") (== "==") (pointer_expression "*(byte **)(lVar14 + 0x20)" (* "*") (cast_expression "(byte **)(lVar14 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar14 + 0x20)" (( "(") (binary_expression "lVar14 + 0x20" (identifier "lVar14") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(param_4 < *(uint *)(lVar14 + 0x28))" (( "(") (binary_expression "param_4 < *(uint *)(lVar14 + 0x28)" (identifier "param_4") (< "<") (pointer_expression "*(uint *)(lVar14 + 0x28)" (* "*") (cast_expression "(uint *)(lVar14 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x28)" (( "(") (binary_expression "lVar14 + 0x28" (identifier "lVar14") (+ "+") (number_literal "0x28")) () ")"))))) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00309ea0;" (goto "goto") (statement_identifier "LAB_00309ea0") (; ";")))) (} "}")))) (for_statement "for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;\n                    puVar5 = (undefined8 *)*puVar5) {\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }" (for "for") (( "(") (assignment_expression "puVar5 = *(undefined8 **)(lVar18 + 0x50)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined8 **)(lVar18 + 0x50)" (* "*") (cast_expression "(undefined8 **)(lVar18 + 0x50)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar18 + 0x50)" (( "(") (binary_expression "lVar18 + 0x50" (identifier "lVar18") (+ "+") (number_literal "0x50")) () ")"))))) (; ";") (binary_expression "puVar5 != (undefined8 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar5 = (undefined8 *)*puVar5" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)*puVar5" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) () ")") (compound_statement "{\n                  local_d8 = lVar14 + 0x30;\n                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);\n                }" ({ "{") (expression_statement "local_d8 = lVar14 + 0x30;" (assignment_expression "local_d8 = lVar14 + 0x30" (identifier "local_d8") (= "=") (binary_expression "lVar14 + 0x30" (identifier "lVar14") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);" (call_expression "FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1)" (identifier "FUN_001a78f0") (argument_list "(lVar14 + 0x30,puVar5 + 1,&local_d8,1)" (( "(") (binary_expression "lVar14 + 0x30" (identifier "lVar14") (+ "+") (number_literal "0x30")) (, ",") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_d8" (& "&") (identifier "local_d8")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" (else "else") (compound_statement "{\n        if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_00309db8;\n        if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }\n        if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }\n        pbVar15 = *(byte **)local_88;\n        lVar18 = 8;\n        pbVar19 = (byte *)"__start_";\n        pbVar21 = pbVar15;\n        do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);\n        bVar25 = false;\n        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;\n        if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }\n        local_138 = pbVar15;\n        if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }\n        if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }\n      }" ({ "{") (if_statement "if (uVar22 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" (if "if") (parenthesized_expression "(uVar22 < *(uint *)(param_3 + 0x120))" (( "(") (binary_expression "uVar22 < *(uint *)(param_3 + 0x120)" (identifier "uVar22") (< "<") (pointer_expression "*(uint *)(param_3 + 0x120)" (* "*") (cast_expression "(uint *)(param_3 + 0x120)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x120)" (( "(") (binary_expression "param_3 + 0x120" (identifier "param_3") (+ "+") (number_literal "0x120")) () ")"))))) () ")")) (compound_statement "{\n          local_88 = (byte *)0x0;\nLAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" ({ "{") (expression_statement "local_88 = (byte *)0x0;" (assignment_expression "local_88 = (byte *)0x0" (identifier "local_88") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00309db8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");" (statement_identifier "LAB_00309db8") (: ":") (expression_statement "FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");" (call_expression "FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs")" (identifier "FUN_00352af0") (argument_list "("../../gold/gc.h",0x11c,"gc_process_relocs")" (( "(") (string_literal ""../../gold/gc.h"" (" """) (string_content "../../gold/gc.h") (" """)) (, ",") (number_literal "0x11c") (, ",") (string_literal ""gc_process_relocs"" (" """) (string_content "gc_process_relocs") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));" (assignment_expression "uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120))" (identifier "uVar23") (= "=") (call_expression "(ulong)(uVar22 - *(uint *)(param_3 + 0x120))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar22 - *(uint *)(param_3 + 0x120))" (( "(") (binary_expression "uVar22 - *(uint *)(param_3 + 0x120)" (identifier "uVar22") (- "-") (pointer_expression "*(uint *)(param_3 + 0x120)" (* "*") (cast_expression "(uint *)(param_3 + 0x120)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x120)" (( "(") (binary_expression "param_3 + 0x120" (identifier "param_3") (+ "+") (number_literal "0x120")) () ")"))))) () ")")))) (; ";")) (if_statement "if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }" (if "if") (parenthesized_expression "((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23)" (( "(") (binary_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23" (call_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3)" (( "(") (binary_expression "*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3" (binary_expression "*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130)" (pointer_expression "*(long *)(param_3 + 0x138)" (* "*") (cast_expression "(long *)(param_3 + 0x138)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x138)" (( "(") (binary_expression "param_3 + 0x138" (identifier "param_3") (+ "+") (number_literal "0x138")) () ")")))) (- "-") (pointer_expression "*(long *)(param_3 + 0x130)" (* "*") (cast_expression "(long *)(param_3 + 0x130)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x130)" (( "(") (binary_expression "param_3 + 0x130" (identifier "param_3") (+ "+") (number_literal "0x130")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))) (<= "<=") (identifier "uVar23")) () ")")) (compound_statement "{\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }" ({ "{") (expression_statement "FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");" (call_expression "FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol")" (identifier "FUN_00352af0") (argument_list "("../../gold/object.h",0x8ad,"global_symbol")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x8ad") (, ",") (string_literal ""global_symbol"" (" """) (string_content "global_symbol") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);" (assignment_expression "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8)" (identifier "local_88") (= "=") (pointer_expression "*(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8)" (* "*") (cast_expression "(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0x130) + uVar23 * 8)" (( "(") (binary_expression "*(long *)(param_3 + 0x130) + uVar23 * 8" (pointer_expression "*(long *)(param_3 + 0x130)" (* "*") (cast_expression "(long *)(param_3 + 0x130)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x130)" (( "(") (binary_expression "param_3 + 0x130" (identifier "param_3") (+ "+") (number_literal "0x130")) () ")")))) (+ "+") (binary_expression "uVar23 * 8" (identifier "uVar23") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (local_88 == (byte *)0x0) goto LAB_00309db8;" (if "if") (parenthesized_expression "(local_88 == (byte *)0x0)" (( "(") (binary_expression "local_88 == (byte *)0x0" (identifier "local_88") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00309db8;" (goto "goto") (statement_identifier "LAB_00309db8") (; ";"))) (if_statement "if ((local_88[0x3a] & 0x10) != 0) {\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }" (if "if") (parenthesized_expression "((local_88[0x3a] & 0x10) != 0)" (( "(") (binary_expression "(local_88[0x3a] & 0x10) != 0" (parenthesized_expression "(local_88[0x3a] & 0x10)" (( "(") (binary_expression "local_88[0x3a] & 0x10" (subscript_expression "local_88[0x3a]" (identifier "local_88") ([ "[") (number_literal "0x3a") (] "]")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_88 = (byte *)FUN_00443570(param_1,local_88);\n        }" ({ "{") (expression_statement "local_88 = (byte *)FUN_00443570(param_1,local_88);" (assignment_expression "local_88 = (byte *)FUN_00443570(param_1,local_88)" (identifier "local_88") (= "=") (cast_expression "(byte *)FUN_00443570(param_1,local_88)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00443570(param_1,local_88)" (identifier "FUN_00443570") (argument_list "(param_1,local_88)" (( "(") (identifier "param_1") (, ",") (identifier "local_88") () ")"))))) (; ";")) (} "}"))) (if_statement "if ((local_88[0x3a] & 7) == 0) {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }\n        else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }" (if "if") (parenthesized_expression "((local_88[0x3a] & 7) == 0)" (( "(") (binary_expression "(local_88[0x3a] & 7) == 0" (parenthesized_expression "(local_88[0x3a] & 7)" (( "(") (binary_expression "local_88[0x3a] & 7" (subscript_expression "local_88[0x3a]" (identifier "local_88") ([ "[") (number_literal "0x3a") (] "]")) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_110 = *(byte **)(local_88 + 0x10);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\n          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;\n          uVar9 = *(uint *)(local_88 + 0x18);\n          bVar16 = local_88[0x3b] >> 5 & 1;\n          uVar24 = (local_88[0x38] & 0xf) < 2;\n          uVar28 = (local_88[0x38] & 0xf) == 2;\n          bVar17 = bVar16;\n          if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" (identifier "pbVar20") (= "=") (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (cast_expression "(uint *)(local_88 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x40)" (( "(") (binary_expression "local_88 + 0x40" (identifier "local_88") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_110 = *(byte **)(local_88 + 0x10);" (assignment_expression "local_110 = *(byte **)(local_88 + 0x10)" (identifier "local_110") (= "=") (pointer_expression "*(byte **)(local_88 + 0x10)" (* "*") (cast_expression "(byte **)(local_88 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_88 + 0x10)" (( "(") (binary_expression "local_88 + 0x10" (identifier "local_88") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "local_124 = uVar4 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_124 = uVar4 + *(uint *)(local_88 + 0x40)" (identifier "local_124") (= "=") (binary_expression "uVar4 + *(uint *)(local_88 + 0x40)" (identifier "uVar4") (+ "+") (pointer_expression "*(uint *)(local_88 + 0x40)" (* "*") (cast_expression "(uint *)(local_88 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x40)" (( "(") (binary_expression "local_88 + 0x40" (identifier "local_88") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (if_statement "if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;" (if "if") (parenthesized_expression "((local_110[0x3c] & 1) != 0)" (( "(") (binary_expression "(local_110[0x3c] & 1) != 0" (parenthesized_expression "(local_110[0x3c] & 1)" (( "(") (binary_expression "local_110[0x3c] & 1" (subscript_expression "local_110[0x3c]" (identifier "local_110") ([ "[") (number_literal "0x3c") (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00309d1e;" (goto "goto") (statement_identifier "LAB_00309d1e") (; ";"))) (expression_statement "uVar9 = *(uint *)(local_88 + 0x18);" (assignment_expression "uVar9 = *(uint *)(local_88 + 0x18)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(local_88 + 0x18)" (* "*") (cast_expression "(uint *)(local_88 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x18)" (( "(") (binary_expression "local_88 + 0x18" (identifier "local_88") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "bVar16 = local_88[0x3b] >> 5 & 1;" (assignment_expression "bVar16 = local_88[0x3b] >> 5 & 1" (identifier "bVar16") (= "=") (binary_expression "local_88[0x3b] >> 5 & 1" (binary_expression "local_88[0x3b] >> 5" (subscript_expression "local_88[0x3b]" (identifier "local_88") ([ "[") (number_literal "0x3b") (] "]")) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar24 = (local_88[0x38] & 0xf) < 2;" (assignment_expression "uVar24 = (local_88[0x38] & 0xf) < 2" (identifier "uVar24") (= "=") (binary_expression "(local_88[0x38] & 0xf) < 2" (parenthesized_expression "(local_88[0x38] & 0xf)" (( "(") (binary_expression "local_88[0x38] & 0xf" (subscript_expression "local_88[0x38]" (identifier "local_88") ([ "[") (number_literal "0x38") (] "]")) (& "&") (number_literal "0xf")) () ")")) (< "<") (number_literal "2"))) (; ";")) (expression_statement "uVar28 = (local_88[0x38] & 0xf) == 2;" (assignment_expression "uVar28 = (local_88[0x38] & 0xf) == 2" (identifier "uVar28") (= "=") (binary_expression "(local_88[0x38] & 0xf) == 2" (parenthesized_expression "(local_88[0x38] & 0xf)" (( "(") (binary_expression "local_88[0x38] & 0xf" (subscript_expression "local_88[0x38]" (identifier "local_88") ([ "[") (number_literal "0x38") (] "]")) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "2"))) (; ";")) (expression_statement "bVar17 = bVar16;" (assignment_expression "bVar17 = bVar16" (identifier "bVar17") (= "=") (identifier "bVar16")) (; ";")) (if_statement "if ((bool)uVar28) {\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "((bool)uVar28)" (( "(") (cast_expression "(bool)uVar28" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar28")) () ")")) (compound_statement "{\n            uVar24 = 0;\n            uVar28 = local_12d == '\0';\n            if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar28 = local_12d == '\0';" (assignment_expression "uVar28 = local_12d == '\0'" (identifier "uVar28") (= "=") (binary_expression "local_12d == '\0'" (identifier "local_12d") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!(bool)uVar28) {\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(!(bool)uVar28)" (( "(") (unary_expression "!(bool)uVar28" (! "!") (cast_expression "(bool)uVar28" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar28"))) () ")")) (compound_statement "{\n              uVar28 = bVar16 == 0;\n              if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }\n            }" ({ "{") (expression_statement "uVar28 = bVar16 == 0;" (assignment_expression "uVar28 = bVar16 == 0" (identifier "uVar28") (= "=") (binary_expression "bVar16 == 0" (identifier "bVar16") (== "==") (number_literal "0"))) (; ";")) (if_statement "if ((bool)uVar28) {\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }\n              else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }" (if "if") (parenthesized_expression "((bool)uVar28)" (( "(") (cast_expression "(bool)uVar28" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar28")) () ")")) (compound_statement "{\nLAB_00309f71:\n                uVar24 = 0;\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_110;\n                local_b0 = uVar9;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n                bVar17 = bVar16;\n              }" ({ "{") (labeled_statement "LAB_00309f71:\n                uVar24 = 0;" (statement_identifier "LAB_00309f71") (: ":") (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_e0 = *(long *)(param_1 + 0x298) + 0x68;" (assignment_expression "local_e0 = *(long *)(param_1 + 0x298) + 0x68" (identifier "local_e0") (= "=") (binary_expression "*(long *)(param_1 + 0x298) + 0x68" (pointer_expression "*(long *)(param_1 + 0x298)" (* "*") (cast_expression "(long *)(param_1 + 0x298)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (+ "+") (number_literal "0x68"))) (; ";")) (expression_statement "local_b8 = local_110;" (assignment_expression "local_b8 = local_110" (identifier "local_b8") (= "=") (identifier "local_110")) (; ";")) (expression_statement "local_b0 = uVar9;" (assignment_expression "local_b0 = uVar9" (identifier "local_b0") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_001a7850(local_e0,&local_b8,&local_e0,1);" (call_expression "FUN_001a7850(local_e0,&local_b8,&local_e0,1)" (identifier "FUN_001a7850") (argument_list "(local_e0,&local_b8,&local_e0,1)" (( "(") (identifier "local_e0") (, ",") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) (, ",") (pointer_expression "&local_e0" (& "&") (identifier "local_e0")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "bVar17 = bVar16;" (assignment_expression "bVar17 = bVar16" (identifier "bVar17") (= "=") (identifier "bVar16")) (; ";")) (} "}")) (else_clause "else {\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }" (else "else") (compound_statement "{\n                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }\n                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);\n                uVar24 = 0;\n                uVar28 = bVar2 == 0;\n                if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }\n              }" ({ "{") (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                }" ({ "{") (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00352af0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);" (assignment_expression "bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" (* "*") (cast_expression "(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61" (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x2a61")) () ")"))))) (; ";")) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar28 = bVar2 == 0;" (assignment_expression "uVar28 = bVar2 == 0" (identifier "uVar28") (= "=") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!(bool)uVar28) {\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }" (if "if") (parenthesized_expression "(!(bool)uVar28)" (( "(") (unary_expression "!(bool)uVar28" (! "!") (cast_expression "(bool)uVar28" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar28"))) () ")")) (compound_statement "{\n                  uVar24 = 0;\n                  uVar28 = (local_88[0x39] & 3) == 0;\n                  bVar17 = bVar2;\n                  if (!(bool)uVar28) goto LAB_00309f71;\n                }" ({ "{") (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar28 = (local_88[0x39] & 3) == 0;" (assignment_expression "uVar28 = (local_88[0x39] & 3) == 0" (identifier "uVar28") (= "=") (binary_expression "(local_88[0x39] & 3) == 0" (parenthesized_expression "(local_88[0x39] & 3)" (( "(") (binary_expression "local_88[0x39] & 3" (subscript_expression "local_88[0x39]" (identifier "local_88") ([ "[") (number_literal "0x39") (] "]")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar17 = bVar2;" (assignment_expression "bVar17 = bVar2" (identifier "bVar17") (= "=") (identifier "bVar2")) (; ";")) (if_statement "if (!(bool)uVar28) goto LAB_00309f71;" (if "if") (parenthesized_expression "(!(bool)uVar28)" (( "(") (unary_expression "!(bool)uVar28" (! "!") (cast_expression "(bool)uVar28" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar28"))) () ")")) (goto_statement "goto LAB_00309f71;" (goto "goto") (statement_identifier "LAB_00309f71") (; ";"))) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }" (else "else") (compound_statement "{\n          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);\n          local_124 = uVar4 + *(uint *)(local_88 + 0x40);\nLAB_00309d1e:\n          local_110 = (byte *)0x0;\n          uVar24 = 0;\n          uVar9 = 0;\n          uVar28 = 1;\n          bVar17 = 0;\n        }" ({ "{") (expression_statement "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);" (assignment_expression "pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40)" (identifier "pbVar20") (= "=") (binary_expression "(byte *)(ulong)*(uint *)(local_88 + 0x40)" (cast_expression "(byte *)(ulong)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (cast_expression "(uint *)(local_88 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x40)" (( "(") (binary_expression "local_88 + 0x40" (identifier "local_88") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_124 = uVar4 + *(uint *)(local_88 + 0x40);" (assignment_expression "local_124 = uVar4 + *(uint *)(local_88 + 0x40)" (identifier "local_124") (= "=") (binary_expression "uVar4 + *(uint *)(local_88 + 0x40)" (identifier "uVar4") (+ "+") (pointer_expression "*(uint *)(local_88 + 0x40)" (* "*") (cast_expression "(uint *)(local_88 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_88 + 0x40)" (( "(") (binary_expression "local_88 + 0x40" (identifier "local_88") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (labeled_statement "LAB_00309d1e:\n          local_110 = (byte *)0x0;" (statement_identifier "LAB_00309d1e") (: ":") (expression_statement "local_110 = (byte *)0x0;" (assignment_expression "local_110 = (byte *)0x0" (identifier "local_110") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar28 = 1;" (assignment_expression "uVar28 = 1" (identifier "uVar28") (= "=") (number_literal "1")) (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "pbVar15 = *(byte **)local_88;" (assignment_expression "pbVar15 = *(byte **)local_88" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)local_88" (* "*") (cast_expression "(byte **)local_88" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_88")))) (; ";")) (expression_statement "lVar18 = 8;" (assignment_expression "lVar18 = 8" (identifier "lVar18") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar19 = (byte *)"__start_";" (assignment_expression "pbVar19 = (byte *)"__start_"" (identifier "pbVar19") (= "=") (cast_expression "(byte *)"__start_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""__start_"" (" """) (string_content "__start_") (" """)))) (; ";")) (expression_statement "pbVar21 = pbVar15;" (assignment_expression "pbVar21 = pbVar15" (identifier "pbVar21") (= "=") (identifier "pbVar15")) (; ";")) (do_statement "do {\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        } while ((bool)uVar28);" (do "do") (compound_statement "{\n          if (lVar18 == 0) break;\n          lVar18 = lVar18 + -1;\n          uVar24 = *pbVar19 < *pbVar21;\n          uVar28 = *pbVar19 == *pbVar21;\n          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar18 == 0) break;" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar24 = *pbVar19 < *pbVar21;" (assignment_expression "uVar24 = *pbVar19 < *pbVar21" (identifier "uVar24") (= "=") (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "uVar28 = *pbVar19 == *pbVar21;" (assignment_expression "uVar28 = *pbVar19 == *pbVar21" (identifier "uVar28") (= "=") (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar30 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar21 + (ulong)bVar30 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar28)" (( "(") (cast_expression "(bool)uVar28" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar28")) () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;" (assignment_expression "bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" (identifier "bVar29") (= "=") (binary_expression "(!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar28)" (( "(") (binary_expression "!(bool)uVar24 && !(bool)uVar28" (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) (&& "&&") (unary_expression "!(bool)uVar28" (! "!") (cast_expression "(bool)uVar28" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar28")))) () ")")) (== "==") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")))) (; ";")) (if_statement "if (bVar29) {\n          pbVar15 = pbVar15 + 8;\n        }\n        else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }" (if "if") (parenthesized_expression "(bVar29)" (( "(") (identifier "bVar29") () ")")) (compound_statement "{\n          pbVar15 = pbVar15 + 8;\n        }" ({ "{") (expression_statement "pbVar15 = pbVar15 + 8;" (assignment_expression "pbVar15 = pbVar15 + 8" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 8" (identifier "pbVar15") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }" (else "else") (compound_statement "{\n          lVar18 = 7;\n          pbVar19 = (byte *)"__stop_";\n          pbVar21 = pbVar15;\n          do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);\n          pbVar15 = pbVar15 + 7;\n          if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }\n        }" ({ "{") (expression_statement "lVar18 = 7;" (assignment_expression "lVar18 = 7" (identifier "lVar18") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar19 = (byte *)"__stop_";" (assignment_expression "pbVar19 = (byte *)"__stop_"" (identifier "pbVar19") (= "=") (cast_expression "(byte *)"__stop_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""__stop_"" (" """) (string_content "__stop_") (" """)))) (; ";")) (expression_statement "pbVar21 = pbVar15;" (assignment_expression "pbVar21 = pbVar15" (identifier "pbVar21") (= "=") (identifier "pbVar15")) (; ";")) (do_statement "do {\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          } while (bVar29);" (do "do") (compound_statement "{\n            if (lVar18 == 0) break;\n            lVar18 = lVar18 + -1;\n            bVar25 = *pbVar19 < *pbVar21;\n            bVar29 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;\n            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar18 == 0) break;" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar19 < *pbVar21;" (assignment_expression "bVar25 = *pbVar19 < *pbVar21" (identifier "bVar25") (= "=") (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "bVar29 = *pbVar19 == *pbVar21;" (assignment_expression "bVar29 = *pbVar19 == *pbVar21" (identifier "bVar29") (= "=") (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar30 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (ulong)bVar30 * -2 + 1" (binary_expression "pbVar21 + (ulong)bVar30 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(ulong)bVar30 * -2" (cast_expression "(ulong)bVar30" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar30")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar29)" (( "(") (identifier "bVar29") () ")")) (; ";")) (expression_statement "pbVar15 = pbVar15 + 7;" (assignment_expression "pbVar15 = pbVar15 + 7" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 7" (identifier "pbVar15") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if ((!bVar25 && !bVar29) != bVar25) {\n            pbVar15 = local_138;\n          }" (if "if") (parenthesized_expression "((!bVar25 && !bVar29) != bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar29) != bVar25" (parenthesized_expression "(!bVar25 && !bVar29)" (( "(") (binary_expression "!bVar25 && !bVar29" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar29" (! "!") (identifier "bVar29"))) () ")")) (!= "!=") (identifier "bVar25")) () ")")) (compound_statement "{\n            pbVar15 = local_138;\n          }" ({ "{") (expression_statement "pbVar15 = local_138;" (assignment_expression "pbVar15 = local_138" (identifier "pbVar15") (= "=") (identifier "local_138")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_138 = pbVar15;" (assignment_expression "local_138 = pbVar15" (identifier "local_138") (= "=") (identifier "pbVar15")) (; ";")) (if_statement "if (bVar27) {\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }" (if "if") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (compound_statement "{\n          if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }\n          puVar5 = *(undefined8 **)(local_150 + 8);\n          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }\n          local_58 = pbVar20;\n          local_50 = (long)(int)uVar4;\n          FUN_001a74a0(local_160,&local_58);\n          local_58 = (byte *)(ulong)*local_108;\n          puVar5 = *(undefined8 **)(local_140 + 8);\n          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_168,&local_98);\n        }" ({ "{") (if_statement "if (bVar17 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }\n          else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }" (if "if") (parenthesized_expression "(bVar17 == 0)" (( "(") (binary_expression "bVar17 == 0" (identifier "bVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_158,&local_58);\n          }" ({ "{") (expression_statement "local_58 = (byte *)0x0;" (assignment_expression "local_58 = (byte *)0x0" (identifier "local_58") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50 = (ulong)local_50._4_4_ << 0x20;" (assignment_expression "local_50 = (ulong)local_50._4_4_ << 0x20" (identifier "local_50") (= "=") (binary_expression "(ulong)local_50._4_4_ << 0x20" (cast_expression "(ulong)local_50._4_4_" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_"))) (<< "<<") (number_literal "0x20"))) (; ";")) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" (identifier "FUN_001a7180") (argument_list "(local_158,&local_58)" (( "(") (identifier "local_158") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }" (else "else") (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,uVar9);\n            local_58 = local_110;\n            FUN_001a7180(local_158,&local_58);\n          }" ({ "{") (expression_statement "local_50 = CONCAT44(local_50._4_4_,uVar9);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,uVar9)" (identifier "local_50") (= "=") (call_expression "CONCAT44(local_50._4_4_,uVar9)" (identifier "CONCAT44") (argument_list "(local_50._4_4_,uVar9)" (( "(") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "local_58 = local_110;" (assignment_expression "local_58 = local_110" (identifier "local_58") (= "=") (identifier "local_110")) (; ";")) (expression_statement "FUN_001a7180(local_158,&local_58);" (call_expression "FUN_001a7180(local_158,&local_58)" (identifier "FUN_001a7180") (argument_list "(local_158,&local_58)" (( "(") (identifier "local_158") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")))) (expression_statement "puVar5 = *(undefined8 **)(local_150 + 8);" (assignment_expression "puVar5 = *(undefined8 **)(local_150 + 8)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined8 **)(local_150 + 8)" (* "*") (cast_expression "(undefined8 **)(local_150 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_150 + 8)" (( "(") (binary_expression "local_150 + 8" (identifier "local_150") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }\n          else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }" (if "if") (parenthesized_expression "(puVar5 == *(undefined8 **)(local_150 + 0x10))" (( "(") (binary_expression "puVar5 == *(undefined8 **)(local_150 + 0x10)" (identifier "puVar5") (== "==") (pointer_expression "*(undefined8 **)(local_150 + 0x10)" (* "*") (cast_expression "(undefined8 **)(local_150 + 0x10)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_150 + 0x10)" (( "(") (binary_expression "local_150 + 0x10" (identifier "local_150") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n            FUN_001a5d30(local_150,puVar5,&local_88);\n          }" ({ "{") (expression_statement "FUN_001a5d30(local_150,puVar5,&local_88);" (call_expression "FUN_001a5d30(local_150,puVar5,&local_88)" (identifier "FUN_001a5d30") (argument_list "(local_150,puVar5,&local_88)" (( "(") (identifier "local_150") (, ",") (identifier "puVar5") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar5 = local_88;\n            *(undefined8 **)(local_150 + 8) = puVar5 + 1;\n          }" ({ "{") (expression_statement "*puVar5 = local_88;" (assignment_expression "*puVar5 = local_88" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "local_88")) (; ";")) (expression_statement "*(undefined8 **)(local_150 + 8) = puVar5 + 1;" (assignment_expression "*(undefined8 **)(local_150 + 8) = puVar5 + 1" (pointer_expression "*(undefined8 **)(local_150 + 8)" (* "*") (cast_expression "(undefined8 **)(local_150 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_150 + 8)" (( "(") (binary_expression "local_150 + 8" (identifier "local_150") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "local_58 = pbVar20;" (assignment_expression "local_58 = pbVar20" (identifier "local_58") (= "=") (identifier "pbVar20")) (; ";")) (expression_statement "local_50 = (long)(int)uVar4;" (assignment_expression "local_50 = (long)(int)uVar4" (identifier "local_50") (= "=") (cast_expression "(long)(int)uVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")))) (; ";")) (expression_statement "FUN_001a74a0(local_160,&local_58);" (call_expression "FUN_001a74a0(local_160,&local_58)" (identifier "FUN_001a74a0") (argument_list "(local_160,&local_58)" (( "(") (identifier "local_160") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "local_58 = (byte *)(ulong)*local_108;" (assignment_expression "local_58 = (byte *)(ulong)*local_108" (identifier "local_58") (= "=") (binary_expression "(byte *)(ulong)*local_108" (cast_expression "(byte *)(ulong)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (identifier "local_108"))) (; ";")) (expression_statement "puVar5 = *(undefined8 **)(local_140 + 8);" (assignment_expression "puVar5 = *(undefined8 **)(local_140 + 8)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined8 **)(local_140 + 8)" (* "*") (cast_expression "(undefined8 **)(local_140 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_140 + 8)" (( "(") (binary_expression "local_140 + 8" (identifier "local_140") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }\n          else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" (if "if") (parenthesized_expression "(puVar5 == *(undefined8 **)(local_140 + 0x10))" (( "(") (binary_expression "puVar5 == *(undefined8 **)(local_140 + 0x10)" (identifier "puVar5") (== "==") (pointer_expression "*(undefined8 **)(local_140 + 0x10)" (* "*") (cast_expression "(undefined8 **)(local_140 + 0x10)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_140 + 0x10)" (( "(") (binary_expression "local_140 + 0x10" (identifier "local_140") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n            FUN_001a6070(local_140,puVar5,&local_58);\n          }" ({ "{") (expression_statement "FUN_001a6070(local_140,puVar5,&local_58);" (call_expression "FUN_001a6070(local_140,puVar5,&local_58)" (identifier "FUN_001a6070") (argument_list "(local_140,puVar5,&local_58)" (( "(") (identifier "local_140") (, ",") (identifier "puVar5") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar5 = local_58;\n            *(undefined8 **)(local_140 + 8) = puVar5 + 1;\n          }" ({ "{") (expression_statement "*puVar5 = local_58;" (assignment_expression "*puVar5 = local_58" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(undefined8 **)(local_140 + 8) = puVar5 + 1;" (assignment_expression "*(undefined8 **)(local_140 + 8) = puVar5 + 1" (pointer_expression "*(undefined8 **)(local_140 + 8)" (* "*") (cast_expression "(undefined8 **)(local_140 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_140 + 8)" (( "(") (binary_expression "local_140 + 8" (identifier "local_140") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);" (assignment_expression "local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000)" (identifier "local_98") (= "=") (cast_expression "(byte *)((ulong)local_98 & 0xffffffff00000000)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)local_98 & 0xffffffff00000000)" (( "(") (binary_expression "(ulong)local_98 & 0xffffffff00000000" (cast_expression "(ulong)local_98" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_98")) (& "&") (number_literal "0xffffffff00000000")) () ")")))) (; ";")) (expression_statement "FUN_001a7630(local_168,&local_98);" (call_expression "FUN_001a7630(local_168,&local_98)" (identifier "FUN_001a7630") (argument_list "(local_168,&local_98)" (( "(") (identifier "local_168") (, ",") (pointer_expression "&local_98" (& "&") (identifier "local_98")) () ")"))) (; ";")) (} "}"))) (if_statement "if (bVar17 != 0) {\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }" (if "if") (parenthesized_expression "(bVar17 != 0)" (( "(") (binary_expression "bVar17 != 0" (identifier "bVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);\n          if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          goto LAB_00309900;\n        }" ({ "{") (labeled_statement "LAB_003098ec:\n          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);" (statement_identifier "LAB_003098ec") (: ":") (expression_statement "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);" (assignment_expression "lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10)" (identifier "lVar13") (= "=") (pointer_expression "*(long *)(PTR_DAT_0067cb08 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0067cb08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0067cb08 + 0x10)" (( "(") (binary_expression "PTR_DAT_0067cb08 + 0x10" (identifier "PTR_DAT_0067cb08") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (if_statement "if (lVar13 == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" ({ "{") (expression_statement "FUN_00352af0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_00352af0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_00352af0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00309900;" (goto "goto") (statement_identifier "LAB_00309900") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00309772:\n      local_100 = local_100 + 1;" (statement_identifier "LAB_00309772") (: ":") (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "local_108 = local_108 + 3;" (assignment_expression "local_108 = local_108 + 3" (identifier "local_108") (= "=") (binary_expression "local_108 + 3" (identifier "local_108") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_6 != local_100)" (( "(") (binary_expression "param_6 != local_100" (identifier "param_6") (!= "!=") (identifier "local_100")) () ")")) (; ";")) (} "}")))) (if_statement "if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }" (if "if") (parenthesized_expression "(local_78[0] != local_68)" (( "(") (binary_expression "local_78[0] != local_68" (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_68")) () ")")) (compound_statement "{\n    FUN_0049e330();\n  }" ({ "{") (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" (identifier "FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original name: gc_process_relocs<32, false, (anonymous namespace)::Target_aarch64<32,
   false>, (anonymous namespace)::Target_aarch64<32, false>::Scan, gold::Default_classify_reloc<4,
   32, false> > */

void var_45::
     gc_process_relocs<32,var_15,var_23(anonymous_namespace)::var_8<32,var_15>,var_23(anonymous_namespace)::var_8<32,var_15>::Scan,_gold::Default_classify_reloc<4,_32,var_15>var_23>
               (Symbol_table *symtab,Layout *param_2,var_8<32,var_15> *var_63,
               var_14<32,var_15> *src_obj,type_3 src_indx,type_24 *var_37,size_t var_39
               ,type_29 *var_40,bool param_9,size_t param_10,type_24 *plocal_syms)

{
  type_32 *var_64;
  type_1 *pp_Var2;
  type_2 var_41;
  type_3 var_42;
  type_4 iVar5;
  type_5 *pGVar6;
  type_1 var_61;
  type_6 *var_65;
  type_1 var_70;
  type_7 **var_75;
  type_4 __position;
  type_8 *pcVar11;
  char var_33;
  type_9 to;
  type_10 *var_60;
  type_11 cVar14;
  size_t var_20;
  type_4 iVar16;
  type_1 p_Var17;
  var_1<32,var_15> *var_47;
  type_3 var_59;
  long var_25;
  type_12 var_26;
  type_13 pcVar20;
  type_12 var_74;
  type_3 uVar22;
  type_12 *var_27;
  type_7 **pp_Var24;
  type_14 _Var25;
  type_15 *pRVar26;
  type_16 in_register_00000084;
  type_9 var_71;
  type_3 var_38;
  type_17 uVar29;
  bool var_34;
  bool var_35;
  bool var_28;
  type_17 uVar33;
  bool var_36;
  type_12 bVar35;
  type_18 *local_168;
  type_19 *local_160;
  type_20 *local_158;
  type_21 *local_150;
  type_22 *local_140;
  type_7 **var_68;
  char var_58;
  type_3 var_43;
  type_23 *local_110;
  type_3 *var_51;
  type_24 *var_77;
  var_2<> var_3;
  var_2<> var_4;
  type_25 __node_gen_2;
  type_25 __node_gen_3;
  type_25 __node_gen;
  type_25 __node_gen_1;
  _Head_base<0,_const_std::var_44<var_45::type_15*,var_5>&,var_15> var_6;
  _Head_base<0,_const_std::var_44<var_45::type_15*,var_5>&,var_15> var_7;
  type_23 *local_b8;
  type_3 local_b0;
  var_8<32,var_15> *local_a8;
  type_3 local_a0;
  type_26 src_id_2;
  type_26 dst_id;
  type_27 src_section_name;
  type_26 var_24;
  
  var_51 = (type_3 *)var_9(in_register_00000084,src_indx);
  bVar35 = 0;
  var_59 = (type_3)src_obj;
  if (parameters->options_ == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_10("../../gold/parameters.h",0x5c,"options");
  }
  if (parameters->options_->icf_status_ == var_11) {
    src_section_name._M_dataplus._M_p = (type_13)&src_section_name.field_2;
    std::__cxx11::basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23>::
    var_12<var_13*>(&src_section_name,"");
  }
  else if (*(type_8 **)(*(long *)var_63 + 0x80) == var_14<32,var_15>::var_16) {
    elfcpp::Elf_file<32,var_15,_gold::var_18>::var_17
              (&src_section_name,
               (Elf_file<32,var_15,_gold::var_18> *var_53)
               &(var_63->aarch64_input_section_map_)._M_h._M_rehash_policy,var_59);
  }
  else {
    (**(type_8 **)(*(long *)var_63 + 0x80))(&src_section_name,var_63,(type_9)src_obj & 0xffffffff);
  }
  _Var25._M_p = src_section_name._M_dataplus._M_p;
  if (parameters->options_ == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_10("../../gold/parameters.h",0x5c,"options");
  }
  if (parameters->options_->icf_status_ == var_11) {
LAB_003095e3:
    var_28 = false;
    local_168 = (type_18 *)0x0;
    local_140 = (type_22 *)0x0;
    local_160 = (type_19 *)0x0;
    local_150 = (type_21 *)0x0;
    local_158 = (type_20 *)0x0;
  }
  else {
    pcVar20 = (type_13)0xffffffffffffffff;
    var_24.first = (type_15 *)&stack0xffffffffffffffb8;
    uVar29 = 0;
    uVar33 = src_section_name._M_dataplus._M_p == (type_13)0x0;
    if (!(bool)uVar33) {
      var_20 = var_19(src_section_name._M_dataplus._M_p);
      pcVar20 = _Var25._M_p + var_20;
    }
    std::__cxx11::basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23>::
    var_12<var_13*>
              ((basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23> *var_53)&var_24,
               _Var25._M_p,pcVar20);
    var_25 = 5;
    var_27 = (type_12 *)".text";
    pRVar26 = var_24.first;
    do {
      if (var_25 == 0) break;
      var_25 = var_25 + -1;
      var_26 = *(type_12 *)&(pRVar26->super_Object)._vptr_Object;
      uVar29 = *var_27 < var_26;
      uVar33 = *var_27 == var_26;
      var_27 = var_27 + (type_9)bVar35 * -2 + 1;
      pRVar26 = (type_15 *)((long)pRVar26 + (type_9)bVar35 * -2 + 1);
    } while ((bool)uVar33);
    var_28 = false;
    var_34 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;
    if (!var_34) {
      var_25 = 0xf;
      var_27 = (type_12 *)".gnu.linkonce.t";
      pRVar26 = var_24.first;
      do {
        if (var_25 == 0) break;
        var_25 = var_25 + -1;
        var_26 = *(type_12 *)&(pRVar26->super_Object)._vptr_Object;
        var_28 = *var_27 < var_26;
        var_34 = *var_27 == var_26;
        var_27 = var_27 + (type_9)bVar35 * -2 + 1;
        pRVar26 = (type_15 *)((long)pRVar26 + (type_9)bVar35 * -2 + 1);
      } while (var_34);
      if ((!var_28 && !var_34) != var_28) {
        if (var_24.first != (type_15 *)&stack0xffffffffffffffb8) {
          var_29(var_24.first);
        }
        goto LAB_003095e3;
      }
    }
    if (var_24.first != (type_15 *)&stack0xffffffffffffffb8) {
      var_29(var_24.first);
    }
    var_24.second = var_59;
    var_24.first = (type_15 *)var_63;
    local_158 = std::__detail::
                _Map_base<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_62::var_44<var_45::type_15*,var_5>,_gold::Icf::Reloc_info>,var_73::var_21<std::var_44<var_62::var_44<var_45::type_15*,var_5>,_gold::Icf::Reloc_info>var_23>,var_73::__detail::_Select1st,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,_gold::Section_id_hash,var_73::__detail::_Mod_range_hashing,var_73::__detail::_Default_ranged_hash,var_73::__detail::_Prime_rehash_policy,var_73::__detail::var_30<true,var_15,var_31>,var_31>
                ::operator[var_53]((_Map_base<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_62::var_44<var_45::type_15*,var_5>,_gold::Icf::Reloc_info>,var_73::var_21<std::var_44<var_62::var_44<var_45::type_15*,var_5>,_gold::Icf::Reloc_info>var_23>,var_73::__detail::_Select1st,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,_gold::Section_id_hash,var_73::__detail::_Mod_range_hashing,var_73::__detail::_Default_ranged_hash,var_73::__detail::_Prime_rehash_policy,var_73::__detail::var_30<true,var_15,var_31>,var_31>
                              *var_53)&symtab->icf_->reloc_info_list_,(type_28 *)&var_24);
    local_150 = &local_158->symbol_info;
    local_140 = &local_158->offset_info;
    local_160 = &local_158->addend_info;
    local_168 = &local_158->reloc_addend_size_info;
    var_28 = true;
  }
  if (parameters->options_ == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_10("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->icf_status_ == var_32) &&
     (var_33 = (**(type_8 **)(*(long *)param_2 + 0x90))(param_2), var_33 != '\0')) {
    pcVar11 = *(type_8 **)(*(long *)param_2 + 0x10);
    if (pcVar11 != type_6::section_may_have_icf_unsafe_pointers) {
                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */
      var_58 = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00309642;
    }
    pcVar11 = *(type_8 **)(*(long *)param_2 + 0x98);
    var_34 = pcVar11 < type_6::do_section_may_have_icf_unsafe_pointers;
    var_36 = pcVar11 == type_6::do_section_may_have_icf_unsafe_pointers;
    if (!var_36) {
      var_58 = (*pcVar11)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00309642;
    }
    var_25 = 0xc;
    var_27 = (type_12 *)".rodata._ZTV";
    _Var25 = src_section_name._M_dataplus;
    do {
      if (var_25 == 0) break;
      var_25 = var_25 + -1;
      var_34 = *var_27 < (type_12)*_Var25._M_p;
      var_36 = *var_27 == *_Var25._M_p;
      var_27 = var_27 + (type_9)bVar35 * -2 + 1;
      _Var25._M_p = (type_13)((type_12 *)_Var25._M_p + (type_9)bVar35 * -2 + 1);
    } while (var_36);
    var_35 = false;
    var_34 = (!var_34 && !var_36) == var_34;
    if (!var_34) {
      var_25 = 0x11;
      var_27 = (type_12 *)".data.rel.ro._ZTV";
      _Var25 = src_section_name._M_dataplus;
      do {
        if (var_25 == 0) break;
        var_25 = var_25 + -1;
        var_35 = *var_27 < (type_12)*_Var25._M_p;
        var_34 = *var_27 == *_Var25._M_p;
        var_27 = var_27 + (type_9)bVar35 * -2 + 1;
        _Var25._M_p = (type_13)((type_12 *)_Var25._M_p + (type_9)bVar35 * -2 + 1);
      } while (var_34);
      var_36 = false;
      var_34 = (!var_35 && !var_34) == var_35;
      if (!var_34) {
        var_25 = 0xc;
        var_27 = (type_12 *)".rodata._ZTC";
        _Var25 = src_section_name._M_dataplus;
        do {
          if (var_25 == 0) break;
          var_25 = var_25 + -1;
          var_36 = *var_27 < (type_12)*_Var25._M_p;
          var_34 = *var_27 == *_Var25._M_p;
          var_27 = var_27 + (type_9)bVar35 * -2 + 1;
          _Var25._M_p = (type_13)((type_12 *)_Var25._M_p + (type_9)bVar35 * -2 + 1);
        } while (var_34);
        var_35 = false;
        var_34 = (!var_36 && !var_34) == var_36;
        if (!var_34) {
          var_25 = 0x11;
          var_27 = (type_12 *)".data.rel.ro._ZTC";
          _Var25 = src_section_name._M_dataplus;
          do {
            if (var_25 == 0) break;
            var_25 = var_25 + -1;
            var_35 = *var_27 < (type_12)*_Var25._M_p;
            var_34 = *var_27 == *_Var25._M_p;
            var_27 = var_27 + (type_9)bVar35 * -2 + 1;
            _Var25._M_p = (type_13)((type_12 *)_Var25._M_p + (type_9)bVar35 * -2 + 1);
          } while (var_34);
          var_36 = false;
          var_34 = (!var_35 && !var_34) == var_35;
          if (!var_34) {
            var_25 = 9;
            var_27 = (type_12 *)".eh_frame";
            _Var25 = src_section_name._M_dataplus;
            do {
              if (var_25 == 0) break;
              var_25 = var_25 + -1;
              var_36 = *var_27 < (type_12)*_Var25._M_p;
              var_34 = *var_27 == *_Var25._M_p;
              var_27 = var_27 + (type_9)bVar35 * -2 + 1;
              _Var25._M_p = (type_13)((type_12 *)_Var25._M_p + (type_9)bVar35 * -2 + 1);
            } while (var_34);
            var_58 = (!var_36 && !var_34) != var_36;
            goto LAB_00309642;
          }
        }
      }
    }
  }
  var_58 = '\0';
LAB_00309642:
  if (var_37 != (type_24 *)0x0) {
    var_68 = (type_7 **)0x0;
    var_77 = (type_24 *)0x0;
    do {
      var_42 = var_51[2];
      var_38 = var_51[1] >> 8;
      if (var_38 < var_39) {
        if (var_40 == (type_29 *)0x0) {
                    /* WARNING: Subroutine does not return */
          var_10("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        uVar22 = var_38 << 4;
        var_41 = *(type_2 *)((long)&(var_40->super_Output_data).address_ + (type_9)uVar22 + 6);
        var_71 = (type_9)var_41;
        if (var_41 < 0xff00) {
LAB_003097e5:
          var_43 = *(type_3 *)((long)&(var_40->super_Output_data)._vptr_Output_data +
                               (type_9)uVar22 + 4);
          pRVar26 = (type_15 *)(type_9)var_43;
          var_43 = var_42 + var_43;
          if (var_28) {
            var_24.second = (type_3)var_71;
            var_24.first = (type_15 *)var_63;
            std::
            vector<std::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>
            ::var_56<std::var_44<var_45::type_15*,var_5>var_23>
                      (&local_158->section_info,(var_44<var_45::type_15*,var_5> *var_53)&var_24);
            var_34 = true;
            if ((*(type_12 *)((long)&(var_40->super_Output_data).address_ + (type_9)uVar22 + 4) & 0xf)
                == 3) goto LAB_0030982d;
LAB_003096e8:
            var_24.first = (type_15 *)0x0;
            std::vector<var_45::var_46*,var_73::var_21<var_45::var_46*>var_23>::var_56<var_45::var_46*>
                      (local_150,(var_46 **)&var_24);
            goto LAB_00309703;
          }
        }
        else {
          if (var_41 == 0xffff) {
            var_47 = var_63->got_tlsdesc_;
            if (var_47 == (var_1<32,var_15> *)0x0) {
              var_47 = (var_1<32,var_15> *var_53)(**(type_8 **)(*(long *)var_63 + 0xd8))(var_63);
              var_63->got_tlsdesc_ = var_47;
            }
            var_38 = type_30::var_48((type_30 *)var_47,(var_18 *)var_63,var_38);
            var_71 = (type_9)var_38;
            goto LAB_003097e5;
          }
          var_43 = *(type_3 *)((long)&(var_40->super_Output_data)._vptr_Output_data +
                               (type_9)uVar22 + 4);
          pRVar26 = (type_15 *)(type_9)var_43;
          var_43 = var_42 + var_43;
          if (!var_28) goto LAB_00309772;
          var_24.first = (type_15 *)0x0;
          var_24._8_8_ = var_24._8_8_ & 0xffffffff00000000;
                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */
          std::
          vector<std::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>
          ::var_56<std::var_44<var_45::type_15*,var_5>var_23>
                    (&local_158->section_info,(var_44<var_45::type_15*,var_5> *var_53)&var_24);
          var_34 = false;
          if ((*(type_12 *)((long)&(var_40->super_Output_data).address_ + (type_9)uVar22 + 4) & 0xf) !=
              3) goto LAB_003096e8;
LAB_0030982d:
          var_24.first = (type_15 *)0xffffffffffffffff;
          std::vector<var_45::var_46*,var_73::var_21<var_45::var_46*>var_23>::var_56<var_45::var_46*>
                    (local_150,(var_46 **)&var_24);
LAB_00309703:
          var_24.first = pRVar26;
          var_24._8_8_ = (long)(int)var_42;
          std::
          vector<std::var_44<var_49,var_50>,var_73::var_21<std::var_44<var_49,var_50>var_23>var_23>
          ::var_56<std::var_44<var_49,var_50>var_23>
                    (local_160,(var_44<var_49,var_50> *var_53)&var_24);
          var_24.first = (type_15 *)(type_9)*var_51;
          iVar5._M_current =
               (local_140->super__Vector_base<var_52,var_73::var_21<var_52>var_23>var_53
               )._M_impl._M_finish;
          if (iVar5._M_current ==
              (local_140->super__Vector_base<var_52,var_73::var_21<var_52>var_23>var_53)
              ._M_impl._M_end_of_storage) {
            std::vector<var_52,var_73::var_21<var_52>var_23>::
            var_54<var_55&>(local_140,iVar5,(type_9 *)&var_24);
          }
          else {
            *iVar5._M_current = (type_9)var_24.first;
            (local_140->super__Vector_base<var_52,var_73::var_21<var_52>var_23>var_53).
            _M_impl._M_finish = iVar5._M_current + 1;
          }
          dst_id.first = (type_15 *)((type_9)dst_id.first & 0xffffffff00000000);
          std::vector<var_57,var_73::var_21<var_57>var_23>::var_56<var_57>
                    (local_168,(type_3 *)&dst_id);
          if (!var_34) goto LAB_00309772;
        }
        local_110 = (type_23 *)var_63;
        if ((var_58 == '\0') ||
           ((*(type_12 *)((long)&(var_40->super_Output_data).address_ + (type_9)uVar22 + 4) & 0xf) == 1
           )) {
LAB_003098d8:
          if (var_59 != (type_3)var_71) goto LAB_003098ec;
        }
        else {
          var_60 = parameters->options_;
          if (var_60 == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_10("../../gold/parameters.h",0x5c,"options");
          }
          if ((var_60->shared_).value != false) {
            local_a0 = (type_3)*(type_2 *)
                              ((long)&(var_40->super_Output_data).address_ + (type_9)uVar22 + 6);
            __node_gen_2._M_h = (type_31 *)&symtab->icf_->fptr_section_id_;
            local_a8 = var_63;
            std::
            _Hashtable<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>,var_73::__detail::_Identity,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,_gold::Section_id_hash,var_73::__detail::_Mod_range_hashing,var_73::__detail::_Default_ranged_hash,var_73::__detail::_Prime_rehash_policy,var_73::__detail::var_30<true,var_31,var_31>var_23>
            ::
            _M_insert<std::var_44<var_45::type_15*,var_5>,var_73::__detail::_AllocNode<std::var_21<std::__detail::_Hash_node<std::var_44<var_45::type_15*,var_5>,var_31>var_23>var_23>var_23>
                      ((_Hashtable<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>,var_73::__detail::_Identity,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,_gold::Section_id_hash,var_73::__detail::_Mod_range_hashing,var_73::__detail::_Default_ranged_hash,var_73::__detail::_Prime_rehash_policy,var_73::__detail::var_30<true,var_31,var_31>var_23>
                        *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);
            goto LAB_003098d8;
          }
          if (var_59 == (type_3)var_71) goto LAB_00309772;
LAB_00309900:
          if ((var_60->gc_sections_).value != false) {
            dst_id.second = (type_3)var_71;
            pGVar6 = symtab->gc_;
            var_61 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            var_64 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
            dst_id.first = (type_15 *)local_110;
            p_Var17 = &var_64->_M_header;
            cVar14._M_node = &var_64->_M_header;
            src_id_2.first = (type_15 *)var_63;
            src_id_2.second = var_59;
            if (var_61 == (type_1)0x0) {
LAB_003099a8:
              var_6._M_head_impl = &src_id_2;
              cVar14._M_node =
                   (type_1)
                   std::
                   _Rb_tree<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_62::var_44<var_45::type_15*,var_5>,var_73::unordered_set<std::var_44<var_45::type_15*,var_5>,_gold::Section_id_hash,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>var_23>,var_73::_Select1st<std::var_44<var_62::var_44<var_45::type_15*,var_5>,var_73::unordered_set<std::var_44<var_45::type_15*,var_5>,_gold::Section_id_hash,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>var_23>var_23>,var_73::less<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_62::var_44<var_45::type_15*,var_5>,var_73::unordered_set<std::var_44<var_45::type_15*,var_5>,_gold::Section_id_hash,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>var_23>var_23>var_23>
                   ::
                   _M_emplace_hint_unique<var_62::piecewise_construct_t&,var_73::var_2<var_62::var_44<var_45::type_15*,var_5>&>,var_73::var_2<>var_23>
                             (&(pGVar6->section_reloc_map_)._M_t,cVar14,
                              (piecewise_construct_t *)&std::piecewise_construct,
                              (var_2<var_62::var_44<var_45::type_15*,var_5>&> *var_53)&var_6,
                              &var_3);
            }
            else {
              do {
                while ((cVar14._M_node = var_61,
                       *(var_8<32,var_15> **var_53)(cVar14._M_node + 1) < var_63 ||
                       ((var_63 == *(var_8<32,var_15> **var_53)(cVar14._M_node + 1) &&
                        (*(type_3 *)&cVar14._M_node[1]._M_parent < var_59))))) {
                  pp_Var2 = &(cVar14._M_node)->_M_right;
                  cVar14._M_node = p_Var17;
                  var_61 = *pp_Var2;
                  if (*pp_Var2 == (type_1)0x0) goto LAB_00309982;
                }
                p_Var17 = cVar14._M_node;
                var_61 = (cVar14._M_node)->_M_left;
              } while ((cVar14._M_node)->_M_left != (type_1)0x0);
LAB_00309982:
              if ((((type_32 *)cVar14._M_node == var_64) ||
                  (var_63 < *(var_8<32,var_15> **var_53)(cVar14._M_node + 1))) ||
                 ((var_63 == *(var_8<32,var_15> **var_53)(cVar14._M_node + 1) &&
                  (var_59 < *(type_3 *)&cVar14._M_node[1]._M_parent)))) goto LAB_003099a8;
            }
            __node_gen_1._M_h = (type_31 *)&cVar14._M_node[1]._M_left;
            std::
            _Hashtable<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>,var_73::__detail::_Identity,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,_gold::Section_id_hash,var_73::__detail::_Mod_range_hashing,var_73::__detail::_Default_ranged_hash,var_73::__detail::_Prime_rehash_policy,var_73::__detail::var_30<true,var_31,var_31>var_23>
            ::
            _M_insert<var_62::var_44<var_45::type_15*,var_5>&,var_73::__detail::_AllocNode<std::var_21<std::__detail::_Hash_node<std::var_44<var_45::type_15*,var_5>,var_31>var_23>var_23>var_23>
                      ((_Hashtable<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>,var_73::__detail::_Identity,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,_gold::Section_id_hash,var_73::__detail::_Mod_range_hashing,var_73::__detail::_Default_ranged_hash,var_73::__detail::_Prime_rehash_policy,var_73::__detail::var_30<true,var_31,var_31>var_23>
                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);
            var_65 = parameters->target_;
            if (var_65 == (type_6 *)0x0) {
                    /* WARNING: Subroutine does not return */
              var_10("../../gold/parameters.h",0x73,"sized_target");
            }
            if (var_65->_vptr_Target[0x41] != var_66<32,var_15>::var_67) {
              (*var_65->_vptr_Target[0x41])
                        (var_65,symtab,var_63,(type_9)src_obj & 0xffffffff,local_110,var_71,
                         (type_9)var_43);
            }
            if (var_68 != (type_7 **)0x0) {
              pGVar6 = symtab->gc_;
              var_24.first = (type_15 *)&stack0xffffffffffffffb8;
              var_20 = var_19((char *)var_68);
              std::__cxx11::basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23>::
              var_12<var_13*>
                        ((basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23> *var_53)
                         &var_24,var_68,(type_12 *)((long)var_68 + var_20));
              iVar16 = std::
                       _Rb_tree<std::__cxx11::basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23>,var_73::var_44<var_62::__cxx11::basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23>,var_73::unordered_set<std::var_44<var_45::type_15*,var_5>,_gold::Section_id_hash,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>var_23>,var_73::_Select1st<std::var_44<var_62::__cxx11::basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23>,var_73::unordered_set<std::var_44<var_45::type_15*,var_5>,_gold::Section_id_hash,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>var_23>var_23>,var_73::less<std::__cxx11::basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23>var_23>,var_73::var_21<std::var_44<var_62::__cxx11::basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23>,var_73::unordered_set<std::var_44<var_45::type_15*,var_5>,_gold::Section_id_hash,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>var_23>var_23>var_23>
                       ::var_69(&(pGVar6->cident_sections_)._M_t,
                              (basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23> *var_53)
                              &var_24);
              if (var_24.first != (type_15 *)&stack0xffffffffffffffb8) {
                var_29(var_24.first);
              }
              pGVar6 = symtab->gc_;
              if ((type_32 *)iVar16._M_node !=
                  &(pGVar6->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {
                var_61 = (pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                         _M_parent;
                var_64 = &(pGVar6->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
                var_24.second = var_59;
                p_Var17 = &var_64->_M_header;
                cVar14._M_node = &var_64->_M_header;
                if (var_61 == (type_1)0x0) {
LAB_00309ea0:
                  var_7._M_head_impl = (var_44<var_45::type_15*,var_5> *var_53)&var_24;
                  var_24.first = (type_15 *)var_63;
                  cVar14._M_node =
                       (type_1)
                       std::
                       _Rb_tree<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_62::var_44<var_45::type_15*,var_5>,var_73::unordered_set<std::var_44<var_45::type_15*,var_5>,_gold::Section_id_hash,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>var_23>,var_73::_Select1st<std::var_44<var_62::var_44<var_45::type_15*,var_5>,var_73::unordered_set<std::var_44<var_45::type_15*,var_5>,_gold::Section_id_hash,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>var_23>var_23>,var_73::less<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_62::var_44<var_45::type_15*,var_5>,var_73::unordered_set<std::var_44<var_45::type_15*,var_5>,_gold::Section_id_hash,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>var_23>var_23>var_23>
                       ::
                       _M_emplace_hint_unique<var_62::piecewise_construct_t&,var_73::var_2<var_62::var_44<var_45::type_15*,var_5>&>,var_73::var_2<>var_23>
                                 (&(pGVar6->section_reloc_map_)._M_t,cVar14,
                                  (piecewise_construct_t *)&std::piecewise_construct,
                                  (var_2<var_62::var_44<var_45::type_15*,var_5>&> *var_53)&var_7,
                                  &var_4);
                }
                else {
                  do {
                    while ((cVar14._M_node = var_61,
                           *(var_8<32,var_15> **var_53)(cVar14._M_node + 1) < var_63 ||
                           ((var_63 == *(var_8<32,var_15> **var_53)(cVar14._M_node + 1) &&
                            (*(type_3 *)&cVar14._M_node[1]._M_parent < var_59))))) {
                      pp_Var2 = &(cVar14._M_node)->_M_right;
                      cVar14._M_node = p_Var17;
                      var_61 = *pp_Var2;
                      if (*pp_Var2 == (type_1)0x0) goto LAB_00309b02;
                    }
                    p_Var17 = cVar14._M_node;
                    var_61 = (cVar14._M_node)->_M_left;
                  } while ((cVar14._M_node)->_M_left != (type_1)0x0);
LAB_00309b02:
                  if ((((type_32 *)cVar14._M_node == var_64) ||
                      (var_63 < *(var_8<32,var_15> **var_53)(cVar14._M_node + 1))) ||
                     ((var_24.first = (type_15 *)var_63,
                      var_63 == *(var_8<32,var_15> **var_53)(cVar14._M_node + 1) &&
                      (var_59 < *(type_3 *)&cVar14._M_node[1]._M_parent)))) goto LAB_00309ea0;
                }
                for (var_70 = iVar16._M_node[2]._M_left; var_70 != (type_1)0x0;
                    var_70 = *(type_1 *)var_70) {
                  __node_gen._M_h = (type_31 *)&cVar14._M_node[1]._M_left;
                  std::
                  _Hashtable<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>,var_73::__detail::_Identity,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,_gold::Section_id_hash,var_73::__detail::_Mod_range_hashing,var_73::__detail::_Default_ranged_hash,var_73::__detail::_Prime_rehash_policy,var_73::__detail::var_30<true,var_31,var_31>var_23>
                  ::
                  _M_insert<var_62::var_44<var_45::type_15*,var_5>&,var_73::__detail::_AllocNode<std::var_21<std::__detail::_Hash_node<std::var_44<var_45::type_15*,var_5>,var_31>var_23>var_23>var_23>
                            ((_Hashtable<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>,var_73::__detail::_Identity,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,_gold::Section_id_hash,var_73::__detail::_Mod_range_hashing,var_73::__detail::_Default_ranged_hash,var_73::__detail::_Prime_rehash_policy,var_73::__detail::var_30<true,var_31,var_31>var_23>
                              *var_53)&cVar14._M_node[1]._M_left,&var_70->_M_parent,&__node_gen,1);
                }
              }
            }
          }
        }
      }
      else {
        if (var_38 < *(type_3 *)&var_63[1].field_0x10) {
          dst_id.first = (type_15 *)0x0;
LAB_00309db8:
                    /* WARNING: Subroutine does not return */
          var_10("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        var_71 = (type_9)(var_38 - *(type_3 *)&var_63[1].field_0x10);
        if ((type_9)((long)var_63[1].plt_ - (long)var_63[1].got_ >> 3) <= var_71) {
                    /* WARNING: Subroutine does not return */
          var_10("../../gold/object.h",0x8ad,"global_symbol");
        }
        dst_id.first = (type_15 *)
                       (&((var_63[1].got_)->super_Output_data_got<32,var_15>).
                         super_Output_data_got_base.super_Output_section_data_build.
                         super_Output_section_data.super_Output_data._vptr_Output_data)[var_71];
        if (dst_id.first == (type_15 *)0x0) goto LAB_00309db8;
        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {
          dst_id.first = (type_15 *)Symbol_table::var_72(symtab,(var_46 *)dst_id.first);
        }
        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {
          var_43 = *(type_3 *)&((dst_id.first)->super_Object).xindex_;
          pRVar26 = (type_15 *)(type_9)var_43;
          local_110 = ((type_33 *)
                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;
          var_43 = var_42 + var_43;
          if (((type_9)local_110->output_lists_[2].
                      super__Vector_base<var_45::Output_data*,var_73::var_21<var_45::Output_data*>var_23>.
                      _M_impl._M_finish & 0x100000000) != 0) goto LAB_00309d1e;
          var_38 = *(type_3 *)&((dst_id.first)->super_Object).name_.field_2;
          var_71 = (type_9)var_38;
          var_26 = (type_12)((dst_id.first)->super_Object).shnum_ & 0xf;
          var_74 = *(type_12 *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;
          uVar29 = var_26 < 2;
          uVar33 = var_26 == 2;
          var_26 = var_74;
          if ((bool)uVar33) {
            uVar29 = 0;
            uVar33 = var_58 == '\0';
            if (!(bool)uVar33) {
              uVar33 = var_74 == 0;
              if ((bool)uVar33) {
LAB_00309f71:
                uVar29 = 0;
                __node_gen_3._M_h = (type_31 *)&symtab->icf_->fptr_section_id_;
                local_b8 = local_110;
                local_b0 = var_38;
                std::
                _Hashtable<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>,var_73::__detail::_Identity,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,_gold::Section_id_hash,var_73::__detail::_Mod_range_hashing,var_73::__detail::_Default_ranged_hash,var_73::__detail::_Prime_rehash_policy,var_73::__detail::var_30<true,var_31,var_31>var_23>
                ::
                _M_insert<std::var_44<var_45::type_15*,var_5>,var_73::__detail::_AllocNode<std::var_21<std::__detail::_Hash_node<std::var_44<var_45::type_15*,var_5>,var_31>var_23>var_23>var_23>
                          ((_Hashtable<std::var_44<var_45::type_15*,var_5>,var_73::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>,var_73::__detail::_Identity,var_73::equal_to<std::var_44<var_45::type_15*,var_5>var_23>,_gold::Section_id_hash,var_73::__detail::_Mod_range_hashing,var_73::__detail::_Default_ranged_hash,var_73::__detail::_Prime_rehash_policy,var_73::__detail::var_30<true,var_31,var_31>var_23>
                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);
                var_26 = var_74;
              }
              else {
                if (parameters->options_ == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
                  var_10("../../gold/parameters.h",0x5c,"options");
                }
                var_34 = (parameters->options_->shared_).value;
                uVar29 = 0;
                uVar33 = var_34 == false;
                if (!(bool)uVar33) {
                  uVar29 = 0;
                  uVar33 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;
                  var_26 = var_34;
                  if (!(bool)uVar33) goto LAB_00309f71;
                }
              }
            }
          }
        }
        else {
          var_43 = *(type_3 *)&((dst_id.first)->super_Object).xindex_;
          pRVar26 = (type_15 *)(type_9)var_43;
          var_43 = var_42 + var_43;
LAB_00309d1e:
          local_110 = (type_23 *)0x0;
          uVar29 = 0;
          var_71 = 0;
          uVar33 = 1;
          var_26 = 0;
        }
        var_75 = ((dst_id.first)->super_Object)._vptr_Object;
        var_25 = 8;
        var_27 = (type_12 *)"__start_";
        pp_Var24 = var_75;
        do {
          if (var_25 == 0) break;
          var_25 = var_25 + -1;
          uVar29 = *var_27 < *(type_12 *)pp_Var24;
          uVar33 = *var_27 == *(type_12 *)pp_Var24;
          var_27 = var_27 + (type_9)bVar35 * -2 + 1;
          pp_Var24 = (type_7 **)((long)pp_Var24 + (type_9)bVar35 * -2 + 1);
        } while ((bool)uVar33);
        var_34 = false;
        var_36 = (!(bool)uVar29 && !(bool)uVar33) == (bool)uVar29;
        if (var_36) {
          var_75 = var_75 + 1;
        }
        else {
          var_25 = 7;
          var_27 = (type_12 *)"__stop_";
          pp_Var24 = var_75;
          do {
            if (var_25 == 0) break;
            var_25 = var_25 + -1;
            var_34 = *var_27 < *(type_12 *)pp_Var24;
            var_36 = *var_27 == *(type_12 *)pp_Var24;
            var_27 = var_27 + (type_9)bVar35 * -2 + 1;
            pp_Var24 = (type_7 **)((long)pp_Var24 + (type_9)bVar35 * -2 + 1);
          } while (var_36);
          var_75 = (type_7 **)((long)var_75 + 7);
          if ((!var_34 && !var_36) != var_34) {
            var_75 = var_68;
          }
        }
        var_68 = var_75;
        if (var_28) {
          if (var_26 == 0) {
            var_24.first = (type_15 *)0x0;
            var_24._8_8_ = (type_9)(type_3)var_24._12_4_ << 0x20;
            std::
            vector<std::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>
            ::var_56<std::var_44<var_45::type_15*,var_5>var_23>
                      (&local_158->section_info,(var_44<var_45::type_15*,var_5> *var_53)&var_24);
          }
          else {
            var_24.second = (type_3)var_71;
            var_24.first = (type_15 *)local_110;
            std::
            vector<std::var_44<var_45::type_15*,var_5>,var_73::var_21<std::var_44<var_45::type_15*,var_5>var_23>var_23>
            ::var_56<std::var_44<var_45::type_15*,var_5>var_23>
                      (&local_158->section_info,(var_44<var_45::type_15*,var_5> *var_53)&var_24);
          }
          __position._M_current =
               (local_150->super__Vector_base<var_45::var_46*,var_73::var_21<var_45::var_46*>var_23>var_53).
               _M_impl._M_finish;
          if (__position._M_current ==
              (local_150->super__Vector_base<var_45::var_46*,var_73::var_21<var_45::var_46*>var_23>var_53)._M_impl
              ._M_end_of_storage) {
            std::vector<var_45::var_46*,var_73::var_21<var_45::var_46*>var_23>::
            var_54<var_45::var_46*var_76&>(local_150,__position,(var_46 **)&dst_id);
          }
          else {
            *__position._M_current = (var_46 *)dst_id.first;
            (local_150->super__Vector_base<var_45::var_46*,var_73::var_21<var_45::var_46*>var_23>var_53)._M_impl.
            _M_finish = __position._M_current + 1;
          }
          var_24.first = pRVar26;
          var_24._8_8_ = (long)(int)var_42;
          std::
          vector<std::var_44<var_49,var_50>,var_73::var_21<std::var_44<var_49,var_50>var_23>var_23>
          ::var_56<std::var_44<var_49,var_50>var_23>
                    (local_160,(var_44<var_49,var_50> *var_53)&var_24);
          var_24.first = (type_15 *)(type_9)*var_51;
          iVar5._M_current =
               (local_140->super__Vector_base<var_52,var_73::var_21<var_52>var_23>var_53
               )._M_impl._M_finish;
          if (iVar5._M_current ==
              (local_140->super__Vector_base<var_52,var_73::var_21<var_52>var_23>var_53)
              ._M_impl._M_end_of_storage) {
            std::vector<var_52,var_73::var_21<var_52>var_23>::
            var_54<var_55&>(local_140,iVar5,(type_9 *)&var_24);
          }
          else {
            *iVar5._M_current = (type_9)var_24.first;
            (local_140->super__Vector_base<var_52,var_73::var_21<var_52>var_23>var_53).
            _M_impl._M_finish = iVar5._M_current + 1;
          }
          src_id_2.first = (type_15 *)((type_9)src_id_2.first & 0xffffffff00000000);
          std::vector<var_57,var_73::var_21<var_57>var_23>::var_56<var_57>
                    (local_168,(type_3 *)&src_id_2);
        }
        if (var_26 != 0) {
LAB_003098ec:
          var_60 = parameters->options_;
          if (var_60 == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_10("../../gold/parameters.h",0x5c,"options");
          }
          goto LAB_00309900;
        }
      }
LAB_00309772:
      var_77 = var_77 + 1;
      var_51 = var_51 + 3;
    } while (var_37 != var_77);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<var_22,var_73::char_traits<var_22>,var_73::var_21<var_22>var_23>var_78
       *)src_section_name._M_dataplus._M_p != &src_section_name.field_2) {
    var_29(src_section_name._M_dataplus._M_p);
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) 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: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (pointer_declarator 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_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: (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (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 (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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: (binary_expression left: (identifier) right: (number_literal)))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (true)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))) (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: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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)))) (goto_statement label: (statement_identifier)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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 (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) 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) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) 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 (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (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)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (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)))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (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))))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (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)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (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 (field_expression argument: (identifier) field: (field_identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (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)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (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)))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (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))))))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (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)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))) consequence: (goto_statement label: (statement_identifier))))))) (for_statement initializer: (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)))))) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal))))))))))))))))) alternative: (else_clause (compound_statement (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)) value: (parenthesized_expression (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: (number_literal)))) (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: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (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 (identifier) (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_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 (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (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))) (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (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 (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)))) (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 (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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))))))) (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 (identifier) (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: (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: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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 (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement))))

void MASKED(long param_1,long *param_2,byte *param_3,uint param_4,uint *param_5,long param_6,
                 ulong param_7,long param_8)

{
  long *plVar1;
  byte bVar2;
  ushort uVar3;
  uint uVar4;
  undefined8 *puVar5;
  code *pcVar6;
  long lVar7;
  char cVar8;
  uint uVar9;
  long lVar10;
  long lVar11;
  size_t sVar12;
  long lVar13;
  long lVar14;
  byte *pbVar15;
  byte bVar16;
  byte bVar17;
  long lVar18;
  byte *pbVar19;
  byte *pbVar20;
  byte *pbVar21;
  uint uVar22;
  ulong uVar23;
  undefined1 uVar24;
  bool bVar25;
  bool bVar26;
  bool bVar27;
  undefined1 uVar28;
  bool bVar29;
  byte bVar30;
  long local_168;
  long local_160;
  long local_158;
  long local_150;
  long local_140;
  byte *local_138;
  char local_12d;
  int local_124;
  byte *local_110;
  uint *local_108;
  long local_100;
  undefined1 local_ea;
  undefined1 local_e9;
  long local_e8;
  long local_e0;
  long local_d8;
  long local_d0;
  byte **local_c8;
  byte **local_c0;
  byte *local_b8;
  uint local_b0;
  byte *local_a8;
  uint local_a0;
  byte *local_98;
  uint local_90;
  byte *local_88;
  uint local_80;
  byte *local_78 [2];
  byte local_68 [16];
  byte *local_58;
  undefined8 local_50;
  byte local_48 [24];
  
  bVar30 = 0;
  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {
    local_78[0] = local_68;
    FUN_001a61c0(local_78,"");
  }
  else if (*(code **)(*(long *)param_3 + 0x80) == FUN_0022c0c0) {
    FUN_0022bf40(local_78,param_3 + 0xf8,param_4);
  }
  else {
    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);
  }
  pbVar20 = local_78[0];
  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 0) {
LAB_003095e3:
    bVar27 = false;
    local_168 = 0;
    local_140 = 0;
    local_160 = 0;
    local_150 = 0;
    local_158 = 0;
  }
  else {
    pbVar15 = (byte *)0xffffffffffffffff;
    local_58 = local_48;
    uVar24 = 0;
    uVar28 = local_78[0] == (byte *)0x0;
    if (!(bool)uVar28) {
      sVar12 = strlen((char *)local_78[0]);
      pbVar15 = pbVar20 + sVar12;
    }
    FUN_001a61c0(&local_58,pbVar20,pbVar15);
    lVar18 = 5;
    pbVar20 = (byte *)".text";
    pbVar15 = local_58;
    do {
      if (lVar18 == 0) break;
      lVar18 = lVar18 + -1;
      uVar24 = *pbVar20 < *pbVar15;
      uVar28 = *pbVar20 == *pbVar15;
      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
    } while ((bool)uVar28);
    bVar27 = false;
    bVar25 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;
    if (!bVar25) {
      lVar18 = 0xf;
      pbVar20 = (byte *)".gnu.linkonce.t";
      pbVar15 = local_58;
      do {
        if (lVar18 == 0) break;
        lVar18 = lVar18 + -1;
        bVar27 = *pbVar20 < *pbVar15;
        bVar25 = *pbVar20 == *pbVar15;
        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
      } while (bVar25);
      if ((!bVar27 && !bVar25) != bVar27) {
        if (local_58 != local_48) {
          FUN_0049e330(local_58);
        }
        goto LAB_003095e3;
      }
    }
    if (local_58 != local_48) {
      FUN_0049e330(local_58);
    }
    local_50 = CONCAT44(local_50._4_4_,param_4);
    local_58 = param_3;
    local_158 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);
    local_150 = local_158 + 0x18;
    local_140 = local_158 + 0x48;
    local_160 = local_158 + 0x30;
    local_168 = local_158 + 0x60;
    bVar27 = true;
  }
  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/parameters.h",0x5c,"options");
  }
  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&
     (cVar8 = (**(code **)(*param_2 + 0x90))(param_2), cVar8 != '\0')) {
    pcVar6 = *(code **)(*param_2 + 0x10);
    if (pcVar6 != FUN_001a5310) {
                    /* try { // try from 0030a21e to 0030a301 has its CatchHandler @ 0030a31a */
      local_12d = (*pcVar6)(param_2,local_78[0]);
      goto LAB_00309642;
    }
    pcVar6 = *(code **)(*param_2 + 0x98);
    bVar25 = pcVar6 < FUN_001a53d0;
    bVar29 = pcVar6 == FUN_001a53d0;
    if (!bVar29) {
      local_12d = (*pcVar6)(param_2,local_78[0]);
      goto LAB_00309642;
    }
    lVar18 = 0xc;
    pbVar20 = (byte *)".rodata._ZTV";
    pbVar15 = local_78[0];
    do {
      if (lVar18 == 0) break;
      lVar18 = lVar18 + -1;
      bVar25 = *pbVar20 < *pbVar15;
      bVar29 = *pbVar20 == *pbVar15;
      pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
      pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
    } while (bVar29);
    bVar26 = false;
    bVar25 = (!bVar25 && !bVar29) == bVar25;
    if (!bVar25) {
      lVar18 = 0x11;
      pbVar20 = (byte *)".data.rel.ro._ZTV";
      pbVar15 = local_78[0];
      do {
        if (lVar18 == 0) break;
        lVar18 = lVar18 + -1;
        bVar26 = *pbVar20 < *pbVar15;
        bVar25 = *pbVar20 == *pbVar15;
        pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
        pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
      } while (bVar25);
      bVar29 = false;
      bVar25 = (!bVar26 && !bVar25) == bVar26;
      if (!bVar25) {
        lVar18 = 0xc;
        pbVar20 = (byte *)".rodata._ZTC";
        pbVar15 = local_78[0];
        do {
          if (lVar18 == 0) break;
          lVar18 = lVar18 + -1;
          bVar29 = *pbVar20 < *pbVar15;
          bVar25 = *pbVar20 == *pbVar15;
          pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
          pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
        } while (bVar25);
        bVar26 = false;
        bVar25 = (!bVar29 && !bVar25) == bVar29;
        if (!bVar25) {
          lVar18 = 0x11;
          pbVar20 = (byte *)".data.rel.ro._ZTC";
          pbVar15 = local_78[0];
          do {
            if (lVar18 == 0) break;
            lVar18 = lVar18 + -1;
            bVar26 = *pbVar20 < *pbVar15;
            bVar25 = *pbVar20 == *pbVar15;
            pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
            pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
          } while (bVar25);
          bVar29 = false;
          bVar25 = (!bVar26 && !bVar25) == bVar26;
          if (!bVar25) {
            lVar18 = 9;
            pbVar20 = (byte *)".eh_frame";
            pbVar15 = local_78[0];
            do {
              if (lVar18 == 0) break;
              lVar18 = lVar18 + -1;
              bVar29 = *pbVar20 < *pbVar15;
              bVar25 = *pbVar20 == *pbVar15;
              pbVar20 = pbVar20 + (ulong)bVar30 * -2 + 1;
              pbVar15 = pbVar15 + (ulong)bVar30 * -2 + 1;
            } while (bVar25);
            local_12d = (!bVar29 && !bVar25) != bVar29;
            goto LAB_00309642;
          }
        }
      }
    }
  }
  local_12d = '\0';
LAB_00309642:
  if (param_6 != 0) {
    local_138 = (byte *)0x0;
    local_100 = 0;
    local_108 = param_5;
    do {
      uVar4 = local_108[2];
      uVar22 = local_108[1] >> 8;
      if (uVar22 < param_7) {
        if (param_8 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        lVar18 = (ulong)(uVar22 << 4) + param_8;
        uVar3 = *(ushort *)(lVar18 + 0xe);
        uVar9 = (uint)uVar3;
        if (uVar3 < 0xff00) {
LAB_003097e5:
          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);
          local_124 = uVar4 + *(uint *)(lVar18 + 4);
          if (bVar27) {
            local_50 = CONCAT44(local_50._4_4_,uVar9);
            local_58 = param_3;
            FUN_001a7180(local_158,&local_58);
            bVar25 = true;
            if ((*(byte *)(lVar18 + 0xc) & 0xf) == 3) goto LAB_0030982d;
LAB_003096e8:
            local_58 = (byte *)0x0;
            FUN_001a7300(local_150,&local_58);
            goto LAB_00309703;
          }
        }
        else {
          if (uVar3 == 0xffff) {
            lVar13 = *(long *)(param_3 + 0x40);
            if (lVar13 == 0) {
              lVar13 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);
              *(long *)(param_3 + 0x40) = lVar13;
            }
            uVar9 = FUN_00392c60(lVar13,param_3,uVar22);
            goto LAB_003097e5;
          }
          pbVar20 = (byte *)(ulong)*(uint *)(lVar18 + 4);
          local_124 = uVar4 + *(uint *)(lVar18 + 4);
          if (!bVar27) goto LAB_00309772;
          local_58 = (byte *)0x0;
          local_50 = local_50 & 0xffffffff00000000;
                    /* try { // try from 003096cd to 0030a188 has its CatchHandler @ 0030a31a */
          FUN_001a7180(local_158,&local_58);
          bVar25 = false;
          if ((*(byte *)(lVar18 + 0xc) & 0xf) != 3) goto LAB_003096e8;
LAB_0030982d:
          local_58 = (byte *)0xffffffffffffffff;
          FUN_001a7300(local_150,&local_58);
LAB_00309703:
          local_58 = pbVar20;
          local_50 = (long)(int)uVar4;
          FUN_001a74a0(local_160,&local_58);
          local_58 = (byte *)(ulong)*local_108;
          puVar5 = *(undefined8 **)(local_140 + 8);
          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {
            FUN_001a6070(local_140,puVar5,&local_58);
          }
          else {
            *puVar5 = local_58;
            *(undefined8 **)(local_140 + 8) = puVar5 + 1;
          }
          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);
          FUN_001a7630(local_168,&local_88);
          if (!bVar25) goto LAB_00309772;
        }
        local_110 = param_3;
        if ((local_12d == '\0') || ((*(byte *)(lVar18 + 0xc) & 0xf) == 1)) {
LAB_003098d8:
          if (param_4 != uVar9) goto LAB_003098ec;
        }
        else {
          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);
          if (lVar13 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/parameters.h",0x5c,"options");
          }
          if (*(char *)(lVar13 + 0x2a61) != '\0') {
            local_a0 = (uint)*(ushort *)(lVar18 + 0xe);
            local_e8 = *(long *)(param_1 + 0x298) + 0x68;
            local_a8 = param_3;
            FUN_001a7850(local_e8,&local_a8,&local_e8,1);
            goto LAB_003098d8;
          }
          if (param_4 == uVar9) goto LAB_00309772;
LAB_00309900:
          if (*(char *)(lVar13 + 0x2809) != '\0') {
            lVar13 = *(long *)(param_1 + 0x290);
            lVar18 = lVar13 + 0x28;
            local_88 = local_110;
            lVar10 = lVar18;
            lVar11 = lVar18;
            lVar14 = *(long *)(lVar13 + 0x30);
            local_98 = param_3;
            local_90 = param_4;
            local_80 = uVar9;
            if (*(long *)(lVar13 + 0x30) == 0) {
LAB_003099a8:
              local_c8 = &local_98;
              lVar11 = FUN_001a64f0(lVar13 + 0x20,lVar11,&DAT_00567620,&local_c8,&local_ea);
            }
            else {
              do {
                while ((lVar11 = lVar14, *(byte **)(lVar11 + 0x20) < param_3 ||
                       ((param_3 == *(byte **)(lVar11 + 0x20) &&
                        (*(uint *)(lVar11 + 0x28) < param_4))))) {
                  plVar1 = (long *)(lVar11 + 0x18);
                  lVar11 = lVar10;
                  lVar14 = *plVar1;
                  if (*plVar1 == 0) goto LAB_00309982;
                }
                lVar10 = lVar11;
                lVar14 = *(long *)(lVar11 + 0x10);
              } while (*(long *)(lVar11 + 0x10) != 0);
LAB_00309982:
              if (((lVar11 == lVar18) || (param_3 < *(byte **)(lVar11 + 0x20))) ||
                 ((param_3 == *(byte **)(lVar11 + 0x20) && (param_4 < *(uint *)(lVar11 + 0x28)))))
              goto LAB_003099a8;
            }
            local_d0 = lVar11 + 0x30;
            FUN_001a78f0(local_d0,&local_88,&local_d0,1);
            plVar1 = *(long **)(PTR_DAT_0067cb08 + 0x18);
            if (plVar1 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");
            }
            if (*(code **)(*plVar1 + 0x208) != FUN_001a4ba0) {
              (**(code **)(*plVar1 + 0x208))
                        (plVar1,param_1,param_3,param_4,local_110,uVar9,local_124);
            }
            if (local_138 != (byte *)0x0) {
              lVar18 = *(long *)(param_1 + 0x290);
              local_58 = local_48;
              sVar12 = strlen((char *)local_138);
              FUN_001a61c0(&local_58,local_138,local_138 + sVar12);
              lVar18 = FUN_001c4d80(lVar18 + 0x88,&local_58);
              if (local_58 != local_48) {
                FUN_0049e330();
              }
              lVar13 = *(long *)(param_1 + 0x290);
              if (lVar18 != lVar13 + 0x90) {
                lVar10 = lVar13 + 0x28;
                local_50 = CONCAT44(local_50._4_4_,param_4);
                lVar11 = lVar10;
                lVar14 = lVar10;
                lVar7 = *(long *)(lVar13 + 0x30);
                if (*(long *)(lVar13 + 0x30) == 0) {
LAB_00309ea0:
                  local_c0 = &local_58;
                  local_58 = param_3;
                  lVar14 = FUN_001a64f0(lVar13 + 0x20,lVar14,&DAT_00567620,&local_c0,&local_e9);
                }
                else {
                  do {
                    while ((lVar14 = lVar7, *(byte **)(lVar14 + 0x20) < param_3 ||
                           ((param_3 == *(byte **)(lVar14 + 0x20) &&
                            (*(uint *)(lVar14 + 0x28) < param_4))))) {
                      plVar1 = (long *)(lVar14 + 0x18);
                      lVar14 = lVar11;
                      lVar7 = *plVar1;
                      if (*plVar1 == 0) goto LAB_00309b02;
                    }
                    lVar11 = lVar14;
                    lVar7 = *(long *)(lVar14 + 0x10);
                  } while (*(long *)(lVar14 + 0x10) != 0);
LAB_00309b02:
                  if (((lVar14 == lVar10) || (param_3 < *(byte **)(lVar14 + 0x20))) ||
                     ((local_58 = param_3, param_3 == *(byte **)(lVar14 + 0x20) &&
                      (param_4 < *(uint *)(lVar14 + 0x28))))) goto LAB_00309ea0;
                }
                for (puVar5 = *(undefined8 **)(lVar18 + 0x50); puVar5 != (undefined8 *)0x0;
                    puVar5 = (undefined8 *)*puVar5) {
                  local_d8 = lVar14 + 0x30;
                  FUN_001a78f0(lVar14 + 0x30,puVar5 + 1,&local_d8,1);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar22 < *(uint *)(param_3 + 0x120)) {
          local_88 = (byte *)0x0;
LAB_00309db8:
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        uVar23 = (ulong)(uVar22 - *(uint *)(param_3 + 0x120));
        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar23) {
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");
        }
        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar23 * 8);
        if (local_88 == (byte *)0x0) goto LAB_00309db8;
        if ((local_88[0x3a] & 0x10) != 0) {
          local_88 = (byte *)FUN_00443570(param_1,local_88);
        }
        if ((local_88[0x3a] & 7) == 0) {
          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);
          local_110 = *(byte **)(local_88 + 0x10);
          local_124 = uVar4 + *(uint *)(local_88 + 0x40);
          if ((local_110[0x3c] & 1) != 0) goto LAB_00309d1e;
          uVar9 = *(uint *)(local_88 + 0x18);
          bVar16 = local_88[0x3b] >> 5 & 1;
          uVar24 = (local_88[0x38] & 0xf) < 2;
          uVar28 = (local_88[0x38] & 0xf) == 2;
          bVar17 = bVar16;
          if ((bool)uVar28) {
            uVar24 = 0;
            uVar28 = local_12d == '\0';
            if (!(bool)uVar28) {
              uVar28 = bVar16 == 0;
              if ((bool)uVar28) {
LAB_00309f71:
                uVar24 = 0;
                local_e0 = *(long *)(param_1 + 0x298) + 0x68;
                local_b8 = local_110;
                local_b0 = uVar9;
                FUN_001a7850(local_e0,&local_b8,&local_e0,1);
                bVar17 = bVar16;
              }
              else {
                if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
                  FUN_00352af0("../../gold/parameters.h",0x5c,"options");
                }
                bVar2 = *(byte *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61);
                uVar24 = 0;
                uVar28 = bVar2 == 0;
                if (!(bool)uVar28) {
                  uVar24 = 0;
                  uVar28 = (local_88[0x39] & 3) == 0;
                  bVar17 = bVar2;
                  if (!(bool)uVar28) goto LAB_00309f71;
                }
              }
            }
          }
        }
        else {
          pbVar20 = (byte *)(ulong)*(uint *)(local_88 + 0x40);
          local_124 = uVar4 + *(uint *)(local_88 + 0x40);
LAB_00309d1e:
          local_110 = (byte *)0x0;
          uVar24 = 0;
          uVar9 = 0;
          uVar28 = 1;
          bVar17 = 0;
        }
        pbVar15 = *(byte **)local_88;
        lVar18 = 8;
        pbVar19 = (byte *)"__start_";
        pbVar21 = pbVar15;
        do {
          if (lVar18 == 0) break;
          lVar18 = lVar18 + -1;
          uVar24 = *pbVar19 < *pbVar21;
          uVar28 = *pbVar19 == *pbVar21;
          pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;
          pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;
        } while ((bool)uVar28);
        bVar25 = false;
        bVar29 = (!(bool)uVar24 && !(bool)uVar28) == (bool)uVar24;
        if (bVar29) {
          pbVar15 = pbVar15 + 8;
        }
        else {
          lVar18 = 7;
          pbVar19 = (byte *)"__stop_";
          pbVar21 = pbVar15;
          do {
            if (lVar18 == 0) break;
            lVar18 = lVar18 + -1;
            bVar25 = *pbVar19 < *pbVar21;
            bVar29 = *pbVar19 == *pbVar21;
            pbVar19 = pbVar19 + (ulong)bVar30 * -2 + 1;
            pbVar21 = pbVar21 + (ulong)bVar30 * -2 + 1;
          } while (bVar29);
          pbVar15 = pbVar15 + 7;
          if ((!bVar25 && !bVar29) != bVar25) {
            pbVar15 = local_138;
          }
        }
        local_138 = pbVar15;
        if (bVar27) {
          if (bVar17 == 0) {
            local_58 = (byte *)0x0;
            local_50 = (ulong)local_50._4_4_ << 0x20;
            FUN_001a7180(local_158,&local_58);
          }
          else {
            local_50 = CONCAT44(local_50._4_4_,uVar9);
            local_58 = local_110;
            FUN_001a7180(local_158,&local_58);
          }
          puVar5 = *(undefined8 **)(local_150 + 8);
          if (puVar5 == *(undefined8 **)(local_150 + 0x10)) {
            FUN_001a5d30(local_150,puVar5,&local_88);
          }
          else {
            *puVar5 = local_88;
            *(undefined8 **)(local_150 + 8) = puVar5 + 1;
          }
          local_58 = pbVar20;
          local_50 = (long)(int)uVar4;
          FUN_001a74a0(local_160,&local_58);
          local_58 = (byte *)(ulong)*local_108;
          puVar5 = *(undefined8 **)(local_140 + 8);
          if (puVar5 == *(undefined8 **)(local_140 + 0x10)) {
            FUN_001a6070(local_140,puVar5,&local_58);
          }
          else {
            *puVar5 = local_58;
            *(undefined8 **)(local_140 + 8) = puVar5 + 1;
          }
          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);
          FUN_001a7630(local_168,&local_98);
        }
        if (bVar17 != 0) {
LAB_003098ec:
          lVar13 = *(long *)(PTR_DAT_0067cb08 + 0x10);
          if (lVar13 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/parameters.h",0x5c,"options");
          }
          goto LAB_00309900;
        }
      }
LAB_00309772:
      local_100 = local_100 + 1;
      local_108 = local_108 + 3;
    } while (param_6 != local_100);
  }
  if (local_78[0] != local_68) {
    FUN_0049e330();
  }
  return;
}

