
/* 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<64, false, (anonymous namespace)::Target_tilegx<64,
   false>, (anonymous namespace)::Target_tilegx<64, false>::Scan, gold::Default_classify_reloc<4,
   64, false> > */

void gold::
     gc_process_relocs<64,_false,_(anonymous_namespace)::Target_tilegx<64,_false>,_(anonymous_namespace)::Target_tilegx<64,_false>::Scan,_gold::Default_classify_reloc<4,_64,_false>_>
               (Symbol_table *symtab,Layout *param_2,Target_tilegx<64,_false> *target,
               Sized_relobj_file<64,_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)

{
  _Base_ptr *pp_Var1;
  iterator iVar2;
  ulong uVar3;
  Garbage_collection *pGVar4;
  _Base_ptr p_Var5;
  Target *pTVar6;
  _Base_ptr p_Var7;
  iterator __position;
  code *pcVar8;
  char cVar9;
  iterator iVar10;
  size_t sVar11;
  iterator iVar12;
  _Base_ptr p_Var13;
  Xindex *this;
  const_iterator cVar14;
  uint uVar15;
  uint uVar16;
  long lVar17;
  byte bVar18;
  _func_int_varargs **pp_Var19;
  pointer pcVar20;
  byte bVar21;
  _func_int_varargs **pp_Var22;
  byte *pbVar23;
  _Alloc_hider _Var24;
  Relobj *pRVar25;
  undefined4 in_register_00000084;
  ulong *puVar26;
  ulong uVar27;
  undefined1 uVar28;
  bool bVar29;
  bool bVar30;
  bool bVar31;
  undefined1 uVar32;
  bool bVar33;
  byte bVar34;
  Reloc_addend_size_info *local_170;
  Addend_info *local_168;
  mapped_type *local_160;
  Symbol_info *local_158;
  Offset_info *local_148;
  _func_int_varargs **local_140;
  char local_135;
  long local_130;
  Output_segment *local_120;
  int local_118;
  uint local_104;
  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_tilegx<64,_false> *local_a8;
  uint local_a0;
  Section_id src_id_2;
  Section_id dst_id;
  string src_section_name;
  Section_id src_id;
  
  puVar26 = (ulong *)CONCAT44(in_register_00000084,src_indx);
  bVar34 = 0;
  uVar15 = (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 {
    (**(code **)(*(long *)&target->tilegx_info + 0x80))
              (&src_section_name,target,(ulong)src_obj & 0xffffffff);
  }
  _Var24._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_00289d45:
    bVar30 = false;
    local_170 = (Reloc_addend_size_info *)0x0;
    local_148 = (Offset_info *)0x0;
    local_168 = (Addend_info *)0x0;
    local_158 = (Symbol_info *)0x0;
    local_160 = (mapped_type *)0x0;
  }
  else {
    pcVar20 = (pointer)0xffffffffffffffff;
    src_id.first = (Relobj *)&stack0xffffffffffffffb8;
    uVar28 = 0;
    uVar32 = src_section_name._M_dataplus._M_p == (pointer)0x0;
    if (!(bool)uVar32) {
      sVar11 = strlen(src_section_name._M_dataplus._M_p);
      pcVar20 = _Var24._M_p + sVar11;
    }
    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,
               _Var24._M_p,pcVar20);
    lVar17 = 5;
    pbVar23 = (byte *)".text";
    pRVar25 = src_id.first;
    do {
      if (lVar17 == 0) break;
      lVar17 = lVar17 + -1;
      bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;
      uVar28 = *pbVar23 < bVar21;
      uVar32 = *pbVar23 == bVar21;
      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;
      pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);
    } while ((bool)uVar32);
    bVar30 = false;
    bVar31 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;
    if (!bVar31) {
      lVar17 = 0xf;
      pbVar23 = (byte *)".gnu.linkonce.t";
      pRVar25 = src_id.first;
      do {
        if (lVar17 == 0) break;
        lVar17 = lVar17 + -1;
        bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;
        bVar30 = *pbVar23 < bVar21;
        bVar31 = *pbVar23 == bVar21;
        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;
        pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);
      } while (bVar31);
      if ((!bVar30 && !bVar31) != bVar30) {
        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {
          operator_delete(src_id.first);
        }
        goto LAB_00289d45;
      }
    }
    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {
      operator_delete(src_id.first);
    }
    src_id.second = uVar15;
    src_id.first = (Relobj *)target;
    local_160 = 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_158 = &local_160->symbol_info;
    local_148 = &local_160->offset_info;
    local_168 = &local_160->addend_info;
    local_170 = &local_160->reloc_addend_size_info;
    bVar30 = true;
  }
  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->icf_status_ == ICF_SAFE) &&
     (cVar9 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar9 != '\0')) {
    pcVar8 = *(code **)(*(long *)param_2 + 0x10);
    if (pcVar8 != Target::section_may_have_icf_unsafe_pointers) {
                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */
      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00289da4;
    }
    pcVar8 = *(code **)(*(long *)param_2 + 0x98);
    bVar31 = pcVar8 < Target::do_section_may_have_icf_unsafe_pointers;
    bVar33 = pcVar8 == Target::do_section_may_have_icf_unsafe_pointers;
    if (!bVar33) {
      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00289da4;
    }
    lVar17 = 0xc;
    pbVar23 = (byte *)".rodata._ZTV";
    _Var24 = src_section_name._M_dataplus;
    do {
      if (lVar17 == 0) break;
      lVar17 = lVar17 + -1;
      bVar31 = *pbVar23 < (byte)*_Var24._M_p;
      bVar33 = *pbVar23 == *_Var24._M_p;
      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;
      _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);
    } while (bVar33);
    bVar29 = false;
    bVar31 = (!bVar31 && !bVar33) == bVar31;
    if (!bVar31) {
      lVar17 = 0x11;
      pbVar23 = (byte *)".data.rel.ro._ZTV";
      _Var24 = src_section_name._M_dataplus;
      do {
        if (lVar17 == 0) break;
        lVar17 = lVar17 + -1;
        bVar29 = *pbVar23 < (byte)*_Var24._M_p;
        bVar31 = *pbVar23 == *_Var24._M_p;
        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;
        _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);
      } while (bVar31);
      bVar33 = false;
      bVar31 = (!bVar29 && !bVar31) == bVar29;
      if (!bVar31) {
        lVar17 = 0xc;
        pbVar23 = (byte *)".rodata._ZTC";
        _Var24 = src_section_name._M_dataplus;
        do {
          if (lVar17 == 0) break;
          lVar17 = lVar17 + -1;
          bVar33 = *pbVar23 < (byte)*_Var24._M_p;
          bVar31 = *pbVar23 == *_Var24._M_p;
          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;
          _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);
        } while (bVar31);
        bVar29 = false;
        bVar31 = (!bVar33 && !bVar31) == bVar33;
        if (!bVar31) {
          lVar17 = 0x11;
          pbVar23 = (byte *)".data.rel.ro._ZTC";
          _Var24 = src_section_name._M_dataplus;
          do {
            if (lVar17 == 0) break;
            lVar17 = lVar17 + -1;
            bVar29 = *pbVar23 < (byte)*_Var24._M_p;
            bVar31 = *pbVar23 == *_Var24._M_p;
            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;
            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);
          } while (bVar31);
          bVar33 = false;
          bVar31 = (!bVar29 && !bVar31) == bVar29;
          if (!bVar31) {
            lVar17 = 9;
            pbVar23 = (byte *)".eh_frame";
            _Var24 = src_section_name._M_dataplus;
            do {
              if (lVar17 == 0) break;
              lVar17 = lVar17 + -1;
              bVar33 = *pbVar23 < (byte)*_Var24._M_p;
              bVar31 = *pbVar23 == *_Var24._M_p;
              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;
              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);
            } while (bVar31);
            local_135 = (!bVar33 && !bVar31) != bVar33;
            goto LAB_00289da4;
          }
        }
      }
    }
  }
  local_135 = '\0';
LAB_00289da4:
  if (prelocs != (uchar *)0x0) {
    local_140 = (_func_int_varargs **)0x0;
    local_100 = (uchar *)0x0;
    do {
      uVar27 = puVar26[1];
      uVar3 = puVar26[2];
      uVar16 = (uint)(uVar27 >> 0x20);
      local_118 = (int)uVar27;
      if (uVar27 >> 0x20 < reloc_count) {
        if (param_8 == (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        local_104 = (uint)*(ushort *)
                           ((long)&(param_8->super_Output_data)._vptr_Output_data +
                           (ulong)(uVar16 * 0x18) + 6);
        if (local_104 < 0xff00) {
LAB_00289f33:
          pRVar25 = *(Relobj **)
                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));
          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;
          if (bVar30) {
            src_id.second = local_104;
            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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);
            bVar31 = true;
            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +
                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;
LAB_00289e47:
            src_id.first = (Relobj *)0x0;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (local_158,(Symbol **)&src_id);
            goto LAB_00289e62;
          }
        }
        else {
          if (local_104 == 0xffff) {
            this = (Xindex *)(target->tilegx_info).rosegment_gap;
            if (this == (Xindex *)0x0) {
              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);
              (target->tilegx_info).rosegment_gap = (uint64_t)this;
            }
            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);
            goto LAB_00289f33;
          }
          pRVar25 = *(Relobj **)
                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));
          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;
          if (!bVar30) goto LAB_00289ec8;
          src_id.first = (Relobj *)0x0;
          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;
                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */
          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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);
          bVar31 = false;
          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +
                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;
LAB_00289f81:
          src_id.first = (Relobj *)0xffffffffffffffff;
          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                    (local_158,(Symbol **)&src_id);
LAB_00289e62:
          src_id.first = pRVar25;
          src_id._8_8_ = uVar3;
          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_168,(pair<long_long_int,_long_long_int> *)&src_id);
          src_id.first = (Relobj *)*puVar26;
          iVar2._M_current =
               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>
               )._M_impl._M_finish;
          if (iVar2._M_current ==
              (local_148->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_148,iVar2,(ulong *)&src_id);
          }
          else {
            *iVar2._M_current = (ulong)src_id.first;
            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).
            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);
          if (!bVar31) goto LAB_00289ec8;
        }
        if ((((local_135 != '\0') &&
             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +
                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&
           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {
          local_a0 = (uint)*(ushort *)
                            ((long)&(param_8->super_Output_data)._vptr_Output_data +
                            (ulong)(uVar16 * 0x18) + 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);
        }
        local_120 = (Output_segment *)target;
        if (uVar15 != local_104) {
LAB_0028a049:
          if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          if ((parameters->options_->gc_sections_).value != false) {
            pGVar4 = symtab->gc_;
            dst_id.second = local_104;
            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            cVar14._M_node =
                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;
            dst_id.first = (Relobj *)local_120;
            p_Var13 = cVar14._M_node;
            src_id_2.first = (Relobj *)target;
            src_id_2.second = uVar15;
            if (p_Var5 == (_Base_ptr)0x0) {
LAB_0028a100:
              local_c8._M_head_impl = &src_id_2;
              iVar10 = 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<>_>
                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,
                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||
                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&
                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {
                  pp_Var1 = &(iVar10._M_node)->_M_right;
                  iVar10._M_node = p_Var13;
                  p_Var5 = *pp_Var1;
                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;
                }
                p_Var13 = iVar10._M_node;
                p_Var5 = (iVar10._M_node)->_M_left;
              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);
LAB_0028a0da:
              bVar31 = iVar10._M_node == cVar14._M_node;
              cVar14._M_node = iVar10._M_node;
              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||
                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&
                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;
            }
            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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);
            pTVar6 = parameters->target_;
            if (pTVar6 == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");
            }
            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {
              (*pTVar6->_vptr_Target[0x41])
                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104
                         ,local_130);
            }
            if (local_140 != (_func_int_varargs **)0x0) {
              pGVar4 = symtab->gc_;
              src_id.first = (Relobj *)&stack0xffffffffffffffb8;
              sVar11 = strlen((char *)local_140);
              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_140,(byte *)((long)local_140 + sVar11));
              iVar12 = 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(&(pGVar4->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);
              }
              pGVar4 = symtab->gc_;
              if ((_Rb_tree_header *)iVar12._M_node !=
                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {
                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                         _M_parent;
                cVar14._M_node =
                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;
                src_id.second = uVar15;
                p_Var13 = cVar14._M_node;
                if (p_Var5 == (_Base_ptr)0x0) {
LAB_0028a5e0:
                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;
                  src_id.first = (Relobj *)target;
                  iVar10 = 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<>_>
                                     (&(pGVar4->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 ((iVar10._M_node = p_Var5,
                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||
                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&
                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {
                      pp_Var1 = &(iVar10._M_node)->_M_right;
                      iVar10._M_node = p_Var13;
                      p_Var5 = *pp_Var1;
                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;
                    }
                    p_Var13 = iVar10._M_node;
                    p_Var5 = (iVar10._M_node)->_M_left;
                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);
LAB_0028a24a:
                  bVar31 = cVar14._M_node == iVar10._M_node;
                  cVar14._M_node = iVar10._M_node;
                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||
                     ((src_id.first = (Relobj *)target,
                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&
                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;
                }
                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;
                    p_Var7 = *(_Base_ptr *)p_Var7) {
                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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>_>
                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar16 < *(uint *)&target[1].field_0x88) {
          dst_id.first = (Relobj *)0x0;
LAB_0028a4f8:
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88);
        if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info
                   >> 3) <= uVar27) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");
        }
        dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8);
        if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;
        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) {
          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;
          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)
                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;
          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;
          if (((ulong)local_120->output_lists_[2].
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_finish & 0x100000000) == 0) {
            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;
            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;
            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;
            uVar28 = bVar18 < 2;
            uVar32 = bVar18 == 2;
            if ((bool)uVar32) {
              uVar28 = 0;
              uVar32 = local_135 == '\0';
              if (!(bool)uVar32) {
                uVar28 = false;
                uVar32 = bVar21 == 0;
                if (!(bool)uVar32) {
                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;
                  lVar17 = 0x16;
                  pp_Var22 = pp_Var19;
                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";
                  do {
                    bVar31 = (bool)uVar28;
                    if (lVar17 == 0) break;
                    lVar17 = lVar17 + -1;
                    uVar28 = *(byte *)pp_Var22 < *pbVar23;
                    uVar32 = *(byte *)pp_Var22 == *pbVar23;
                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);
                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;
                    bVar31 = (bool)uVar28;
                  } while ((bool)uVar32);
                  uVar28 = 0;
                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;
                  if ((bool)uVar32) goto LAB_0028a359;
                  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
                  }
                  if ((parameters->options_->shared_).value != false) {
                    uVar28 = false;
                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;
                    if (!(bool)uVar32) goto LAB_0028a6f0;
                  }
                  uVar16 = local_118 - 0x24;
                  uVar28 = uVar16 < 0x27;
                  uVar32 = uVar16 == 0x27;
                  if ((0x27 < uVar16) ||
                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))
                  goto LAB_0028a359;
                }
LAB_0028a6f0:
                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;
                local_b8 = local_120;
                local_b0 = local_104;
                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);
              }
            }
            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;
          }
          else {
            local_104 = 0;
            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;
            uVar28 = 0;
            bVar21 = 0;
            uVar32 = 1;
            local_120 = (Output_segment *)0x0;
          }
        }
        else {
          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;
          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;
          uVar28 = 0;
          bVar21 = 0;
          uVar32 = 1;
          local_104 = 0;
          local_120 = (Output_segment *)0x0;
          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;
        }
LAB_0028a359:
        lVar17 = 8;
        pbVar23 = (byte *)"__start_";
        pp_Var22 = pp_Var19;
        do {
          if (lVar17 == 0) break;
          lVar17 = lVar17 + -1;
          uVar28 = *pbVar23 < *(byte *)pp_Var22;
          uVar32 = *pbVar23 == *(byte *)pp_Var22;
          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;
          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);
        } while ((bool)uVar32);
        bVar31 = false;
        bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;
        if (bVar33) {
          pp_Var19 = pp_Var19 + 1;
        }
        else {
          lVar17 = 7;
          pbVar23 = (byte *)"__stop_";
          pp_Var22 = pp_Var19;
          do {
            if (lVar17 == 0) break;
            lVar17 = lVar17 + -1;
            bVar31 = *pbVar23 < *(byte *)pp_Var22;
            bVar33 = *pbVar23 == *(byte *)pp_Var22;
            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;
            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);
          } while (bVar33);
          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);
          if ((!bVar31 && !bVar33) != bVar31) {
            pp_Var19 = local_140;
          }
        }
        local_140 = pp_Var19;
        if (bVar30) {
          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);
          }
          else {
            src_id.first = (Relobj *)local_120;
            src_id.second = local_104;
            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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);
          }
          __position._M_current =
               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
               _M_impl._M_finish;
          if (__position._M_current ==
              (local_158->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_158,__position,(Symbol **)&dst_id);
          }
          else {
            *__position._M_current = (Symbol *)dst_id.first;
            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = __position._M_current + 1;
          }
          src_id.first = pRVar25;
          src_id._8_8_ = uVar3;
          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_168,(pair<long_long_int,_long_long_int> *)&src_id);
          src_id.first = (Relobj *)*puVar26;
          iVar2._M_current =
               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>
               )._M_impl._M_finish;
          if (iVar2._M_current ==
              (local_148->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_148,iVar2,(ulong *)&src_id);
          }
          else {
            *iVar2._M_current = (ulong)src_id.first;
            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).
            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);
        }
        if (bVar21 != 0) goto LAB_0028a049;
      }
LAB_00289ec8:
      local_100 = local_100 + 1;
      puVar26 = puVar26 + 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_00289cb0(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,
                 long param_6,ulong param_7,long param_8)

{
  undefined8 *puVar1;
  ulong uVar2;
  long *plVar3;
  code *pcVar4;
  char cVar5;
  long lVar6;
  size_t sVar7;
  long lVar8;
  long lVar9;
  long lVar10;
  long lVar11;
  uint uVar12;
  byte *pbVar13;
  byte bVar14;
  long lVar15;
  byte *pbVar16;
  byte *pbVar17;
  byte *pbVar18;
  ulong uVar19;
  undefined1 uVar20;
  bool bVar21;
  bool bVar22;
  bool bVar23;
  undefined1 uVar24;
  bool bVar25;
  byte bVar26;
  long local_170;
  long local_168;
  long local_160;
  long local_158;
  long local_148;
  byte *local_140;
  char local_135;
  byte *local_130;
  byte *local_120;
  int local_118;
  uint local_104;
  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];
  
  bVar26 = 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 {
    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);
  }
  pbVar17 = 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_00289d45:
    bVar22 = false;
    local_170 = 0;
    local_148 = 0;
    local_168 = 0;
    local_158 = 0;
    local_160 = 0;
  }
  else {
    pbVar13 = (byte *)0xffffffffffffffff;
    local_58 = local_48;
    uVar20 = 0;
    uVar24 = local_78[0] == (byte *)0x0;
    if (!(bool)uVar24) {
      sVar7 = strlen((char *)local_78[0]);
      pbVar13 = pbVar17 + sVar7;
    }
    FUN_001a61c0(&local_58,pbVar17,pbVar13);
    lVar15 = 5;
    pbVar17 = (byte *)".text";
    pbVar13 = local_58;
    do {
      if (lVar15 == 0) break;
      lVar15 = lVar15 + -1;
      uVar20 = *pbVar17 < *pbVar13;
      uVar24 = *pbVar17 == *pbVar13;
      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
    } while ((bool)uVar24);
    bVar22 = false;
    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;
    if (!bVar23) {
      lVar15 = 0xf;
      pbVar17 = (byte *)".gnu.linkonce.t";
      pbVar13 = local_58;
      do {
        if (lVar15 == 0) break;
        lVar15 = lVar15 + -1;
        bVar22 = *pbVar17 < *pbVar13;
        bVar23 = *pbVar17 == *pbVar13;
        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
      } while (bVar23);
      if ((!bVar22 && !bVar23) != bVar22) {
        if (local_58 != local_48) {
          FUN_0049e330(local_58);
        }
        goto LAB_00289d45;
      }
    }
    if (local_58 != local_48) {
      FUN_0049e330(local_58);
    }
    local_50 = CONCAT44(local_50._4_4_,param_4);
    local_58 = param_3;
    local_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);
    local_158 = local_160 + 0x18;
    local_148 = local_160 + 0x48;
    local_168 = local_160 + 0x30;
    local_170 = local_160 + 0x60;
    bVar22 = true;
  }
  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */
    FUN_00352af0("../../gold/parameters.h",0x5c,"options");
  }
  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&
     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {
    pcVar4 = *(code **)(*param_2 + 0x10);
    if (pcVar4 != FUN_001a5310) {
                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */
      local_135 = (*pcVar4)(param_2,local_78[0]);
      goto LAB_00289da4;
    }
    pcVar4 = *(code **)(*param_2 + 0x98);
    bVar23 = pcVar4 < FUN_001a53d0;
    bVar25 = pcVar4 == FUN_001a53d0;
    if (!bVar25) {
      local_135 = (*pcVar4)(param_2,local_78[0]);
      goto LAB_00289da4;
    }
    lVar15 = 0xc;
    pbVar17 = (byte *)".rodata._ZTV";
    pbVar13 = local_78[0];
    do {
      if (lVar15 == 0) break;
      lVar15 = lVar15 + -1;
      bVar23 = *pbVar17 < *pbVar13;
      bVar25 = *pbVar17 == *pbVar13;
      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
    } while (bVar25);
    bVar21 = false;
    bVar23 = (!bVar23 && !bVar25) == bVar23;
    if (!bVar23) {
      lVar15 = 0x11;
      pbVar17 = (byte *)".data.rel.ro._ZTV";
      pbVar13 = local_78[0];
      do {
        if (lVar15 == 0) break;
        lVar15 = lVar15 + -1;
        bVar21 = *pbVar17 < *pbVar13;
        bVar23 = *pbVar17 == *pbVar13;
        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
      } while (bVar23);
      bVar25 = false;
      bVar23 = (!bVar21 && !bVar23) == bVar21;
      if (!bVar23) {
        lVar15 = 0xc;
        pbVar17 = (byte *)".rodata._ZTC";
        pbVar13 = local_78[0];
        do {
          if (lVar15 == 0) break;
          lVar15 = lVar15 + -1;
          bVar25 = *pbVar17 < *pbVar13;
          bVar23 = *pbVar17 == *pbVar13;
          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
        } while (bVar23);
        bVar21 = false;
        bVar23 = (!bVar25 && !bVar23) == bVar25;
        if (!bVar23) {
          lVar15 = 0x11;
          pbVar17 = (byte *)".data.rel.ro._ZTC";
          pbVar13 = local_78[0];
          do {
            if (lVar15 == 0) break;
            lVar15 = lVar15 + -1;
            bVar21 = *pbVar17 < *pbVar13;
            bVar23 = *pbVar17 == *pbVar13;
            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
          } while (bVar23);
          bVar25 = false;
          bVar23 = (!bVar21 && !bVar23) == bVar21;
          if (!bVar23) {
            lVar15 = 9;
            pbVar17 = (byte *)".eh_frame";
            pbVar13 = local_78[0];
            do {
              if (lVar15 == 0) break;
              lVar15 = lVar15 + -1;
              bVar25 = *pbVar17 < *pbVar13;
              bVar23 = *pbVar17 == *pbVar13;
              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
            } while (bVar23);
            local_135 = (!bVar25 && !bVar23) != bVar25;
            goto LAB_00289da4;
          }
        }
      }
    }
  }
  local_135 = '\0';
LAB_00289da4:
  if (param_6 != 0) {
    local_140 = (byte *)0x0;
    local_100 = 0;
    do {
      uVar19 = param_5[1];
      uVar2 = param_5[2];
      uVar12 = (uint)(uVar19 >> 0x20);
      local_118 = (int)uVar19;
      if (uVar19 >> 0x20 < param_7) {
        if (param_8 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        lVar15 = (ulong)(uVar12 * 0x18) + param_8;
        local_104 = (uint)*(ushort *)(lVar15 + 6);
        if (local_104 < 0xff00) {
LAB_00289f33:
          pbVar17 = *(byte **)(lVar15 + 8);
          local_130 = pbVar17 + uVar2;
          if (bVar22) {
            local_50 = CONCAT44(local_50._4_4_,local_104);
            local_58 = param_3;
            FUN_001a7180(local_160,&local_58);
            bVar23 = true;
            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;
LAB_00289e47:
            local_58 = (byte *)0x0;
            FUN_001a7300(local_158,&local_58);
            goto LAB_00289e62;
          }
        }
        else {
          if (local_104 == 0xffff) {
            lVar9 = *(long *)(param_3 + 0x40);
            if (lVar9 == 0) {
              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);
              *(long *)(param_3 + 0x40) = lVar9;
            }
            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);
            goto LAB_00289f33;
          }
          pbVar17 = *(byte **)(lVar15 + 8);
          local_130 = pbVar17 + uVar2;
          if (!bVar22) goto LAB_00289ec8;
          local_58 = (byte *)0x0;
          local_50 = local_50 & 0xffffffff00000000;
                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */
          FUN_001a7180(local_160,&local_58);
          bVar23 = false;
          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;
LAB_00289f81:
          local_58 = (byte *)0xffffffffffffffff;
          FUN_001a7300(local_158,&local_58);
LAB_00289e62:
          local_58 = pbVar17;
          local_50 = uVar2;
          FUN_001a74a0(local_168,&local_58);
          local_58 = (byte *)*param_5;
          puVar1 = *(undefined8 **)(local_148 + 8);
          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {
            FUN_001a6070(local_148,puVar1,&local_58);
          }
          else {
            *puVar1 = local_58;
            *(undefined8 **)(local_148 + 8) = puVar1 + 1;
          }
          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);
          FUN_001a7630(local_170,&local_88);
          if (!bVar23) goto LAB_00289ec8;
        }
        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&
            (local_118 - 0x24U < 0x28)) &&
           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {
          local_a0 = (uint)*(ushort *)(lVar15 + 6);
          local_e8 = *(long *)(param_1 + 0x298) + 0x68;
          local_a8 = param_3;
          FUN_001a7850(local_e8,&local_a8,&local_e8,1);
        }
        local_120 = param_3;
        if (param_4 != local_104) {
LAB_0028a049:
          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/parameters.h",0x5c,"options");
          }
          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {
            lVar9 = *(long *)(param_1 + 0x290);
            local_80 = local_104;
            lVar15 = lVar9 + 0x28;
            local_88 = local_120;
            lVar10 = lVar15;
            lVar8 = *(long *)(lVar9 + 0x30);
            local_98 = param_3;
            local_90 = param_4;
            if (*(long *)(lVar9 + 0x30) == 0) {
LAB_0028a100:
              local_c8 = &local_98;
              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);
            }
            else {
              do {
                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||
                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))
                       ))) {
                  plVar3 = (long *)(lVar6 + 0x18);
                  lVar6 = lVar10;
                  lVar8 = *plVar3;
                  if (*plVar3 == 0) goto LAB_0028a0da;
                }
                lVar10 = lVar6;
                lVar8 = *(long *)(lVar6 + 0x10);
              } while (*(long *)(lVar6 + 0x10) != 0);
LAB_0028a0da:
              bVar23 = lVar6 == lVar15;
              lVar15 = lVar6;
              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||
                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))
              goto LAB_0028a100;
            }
            local_d0 = lVar6 + 0x30;
            FUN_001a78f0(local_d0,&local_88,&local_d0,1);
            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);
            if (plVar3 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");
            }
            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {
              (**(code **)(*plVar3 + 0x208))
                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);
            }
            if (local_140 != (byte *)0x0) {
              lVar15 = *(long *)(param_1 + 0x290);
              local_58 = local_48;
              sVar7 = strlen((char *)local_140);
              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);
              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);
              if (local_58 != local_48) {
                FUN_0049e330();
              }
              lVar9 = *(long *)(param_1 + 0x290);
              if (lVar15 != lVar9 + 0x90) {
                lVar10 = lVar9 + 0x28;
                local_50 = CONCAT44(local_50._4_4_,param_4);
                lVar8 = lVar10;
                lVar6 = *(long *)(lVar9 + 0x30);
                if (*(long *)(lVar9 + 0x30) == 0) {
LAB_0028a5e0:
                  local_c0 = &local_58;
                  local_58 = param_3;
                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);
                }
                else {
                  do {
                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||
                           ((param_3 == *(byte **)(lVar11 + 0x20) &&
                            (*(uint *)(lVar11 + 0x28) < param_4))))) {
                      plVar3 = (long *)(lVar11 + 0x18);
                      lVar11 = lVar8;
                      lVar6 = *plVar3;
                      if (*plVar3 == 0) goto LAB_0028a24a;
                    }
                    lVar8 = lVar11;
                    lVar6 = *(long *)(lVar11 + 0x10);
                  } while (*(long *)(lVar11 + 0x10) != 0);
LAB_0028a24a:
                  bVar23 = lVar10 == lVar11;
                  lVar10 = lVar11;
                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||
                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&
                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;
                }
                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;
                    puVar1 = (undefined8 *)*puVar1) {
                  local_d8 = lVar11 + 0x30;
                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar12 < *(uint *)(param_3 + 0x120)) {
          local_88 = (byte *)0x0;
LAB_0028a4f8:
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));
        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");
        }
        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);
        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;
        if ((local_88[0x3a] & 0x10) != 0) {
          local_88 = (byte *)FUN_00443570(param_1,local_88);
        }
        if ((local_88[0x3a] & 7) == 0) {
          pbVar17 = *(byte **)(local_88 + 0x40);
          local_120 = *(byte **)(local_88 + 0x10);
          local_130 = pbVar17 + uVar2;
          if ((local_120[0x3c] & 1) == 0) {
            local_104 = *(uint *)(local_88 + 0x18);
            bVar14 = local_88[0x3b] >> 5 & 1;
            uVar20 = (local_88[0x38] & 0xf) < 2;
            uVar24 = (local_88[0x38] & 0xf) == 2;
            if ((bool)uVar24) {
              uVar20 = 0;
              uVar24 = local_135 == '\0';
              if (!(bool)uVar24) {
                uVar20 = false;
                uVar24 = bVar14 == 0;
                if (!(bool)uVar24) {
                  pbVar13 = *(byte **)local_88;
                  lVar15 = 0x16;
                  pbVar16 = pbVar13;
                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";
                  do {
                    bVar23 = (bool)uVar20;
                    if (lVar15 == 0) break;
                    lVar15 = lVar15 + -1;
                    uVar20 = *pbVar16 < *pbVar18;
                    uVar24 = *pbVar16 == *pbVar18;
                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;
                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;
                    bVar23 = (bool)uVar20;
                  } while ((bool)uVar24);
                  uVar20 = 0;
                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;
                  if ((bool)uVar24) goto LAB_0028a359;
                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");
                  }
                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {
                    uVar20 = false;
                    uVar24 = (local_88[0x39] & 3) == 0;
                    if (!(bool)uVar24) goto LAB_0028a6f0;
                  }
                  uVar12 = local_118 - 0x24;
                  uVar20 = uVar12 < 0x27;
                  uVar24 = uVar12 == 0x27;
                  if ((0x27 < uVar12) ||
                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))
                  goto LAB_0028a359;
                }
LAB_0028a6f0:
                local_e0 = *(long *)(param_1 + 0x298) + 0x68;
                local_b8 = local_120;
                local_b0 = local_104;
                FUN_001a7850(local_e0,&local_b8,&local_e0,1);
              }
            }
            pbVar13 = *(byte **)local_88;
          }
          else {
            local_104 = 0;
            pbVar13 = *(byte **)local_88;
            uVar20 = 0;
            bVar14 = 0;
            uVar24 = 1;
            local_120 = (byte *)0x0;
          }
        }
        else {
          pbVar17 = *(byte **)(local_88 + 0x40);
          pbVar13 = *(byte **)local_88;
          uVar20 = 0;
          bVar14 = 0;
          uVar24 = 1;
          local_104 = 0;
          local_120 = (byte *)0x0;
          local_130 = pbVar17 + uVar2;
        }
LAB_0028a359:
        lVar15 = 8;
        pbVar16 = (byte *)"__start_";
        pbVar18 = pbVar13;
        do {
          if (lVar15 == 0) break;
          lVar15 = lVar15 + -1;
          uVar20 = *pbVar16 < *pbVar18;
          uVar24 = *pbVar16 == *pbVar18;
          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;
          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;
        } while ((bool)uVar24);
        bVar23 = false;
        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;
        if (bVar25) {
          pbVar13 = pbVar13 + 8;
        }
        else {
          lVar15 = 7;
          pbVar16 = (byte *)"__stop_";
          pbVar18 = pbVar13;
          do {
            if (lVar15 == 0) break;
            lVar15 = lVar15 + -1;
            bVar23 = *pbVar16 < *pbVar18;
            bVar25 = *pbVar16 == *pbVar18;
            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;
            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;
          } while (bVar25);
          pbVar13 = pbVar13 + 7;
          if ((!bVar23 && !bVar25) != bVar23) {
            pbVar13 = local_140;
          }
        }
        local_140 = pbVar13;
        if (bVar22) {
          if (bVar14 == 0) {
            local_58 = (byte *)0x0;
            local_50 = (ulong)local_50._4_4_ << 0x20;
            FUN_001a7180(local_160,&local_58);
          }
          else {
            local_58 = local_120;
            local_50 = CONCAT44(local_50._4_4_,local_104);
            FUN_001a7180(local_160,&local_58);
          }
          puVar1 = *(undefined8 **)(local_158 + 8);
          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {
            FUN_001a5d30(local_158,puVar1,&local_88);
          }
          else {
            *puVar1 = local_88;
            *(undefined8 **)(local_158 + 8) = puVar1 + 1;
          }
          local_58 = pbVar17;
          local_50 = uVar2;
          FUN_001a74a0(local_168,&local_58);
          local_58 = (byte *)*param_5;
          puVar1 = *(undefined8 **)(local_148 + 8);
          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {
            FUN_001a6070(local_148,puVar1,&local_58);
          }
          else {
            *puVar1 = local_58;
            *(undefined8 **)(local_148 + 8) = puVar1 + 1;
          }
          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);
          FUN_001a7630(local_170,&local_98);
        }
        if (bVar14 != 0) goto LAB_0028a049;
      }
LAB_00289ec8:
      local_100 = local_100 + 1;
      param_5 = param_5 + 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 + -0x148],RDI
MOV dword ptr [RBP + -0x12c],ECX
MOV RAX,qword ptr [RAX + 0x10]
MOV qword ptr [RBP + -0x120],R9
TEST RAX,RAX
JZ 0x0028aa26
MOV R14,RSI
MOV ESI,dword ptr [RAX + 0x9050]
MOV R13,RDX
MOV R15,R8
TEST ESI,ESI
JZ 0x0028a94e
LEA RAX,[RBP + -0x70]
MOV RSI,R13
MOV RDI,RAX
MOV qword ptr [RBP + -0x178],RAX
MOV RAX,qword ptr [RDX]
MOV EDX,dword ptr [RBP + -0x12c]
CALL qword ptr [RAX + 0x80]
MOV RAX,qword ptr [0x0067cb08]
MOV RDX,qword ptr [RAX + 0x10]
TEST RDX,RDX
JZ 0x0028aa56
MOV ECX,dword ptr [RDX + 0x9050]
TEST ECX,ECX
JNZ 0x0028a840
MOV byte ptr [RBP + -0xfd],0x0
MOV qword ptr [RBP + -0x168],0x0
MOV qword ptr [RBP + -0x140],0x0
MOV qword ptr [RBP + -0x160],0x0
MOV qword ptr [RBP + -0x150],0x0
MOV qword ptr [RBP + -0x158],0x0
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x0028aa3e
CMP dword ptr [RAX + 0x9050],0x2
JZ 0x0028a752
MOV byte ptr [RBP + -0x12d],0x0
CMP qword ptr [RBP + -0x120],0x0
JZ 0x0028a650
MOV qword ptr [RBP + -0x138],0x0
LEA RAX,[RBP + -0x50]
MOV qword ptr [RBP + -0x108],RAX
ADD RAX,0x10
MOV qword ptr [RBP + -0xf8],0x0
MOV qword ptr [RBP + -0x170],RAX
JMP 0x00289ee8
CMP EAX,0xffff
JZ 0x0028a4b0
MOV R14,qword ptr [RBX + 0x8]
CMP byte ptr [RBP + -0xfd],0x0
LEA RAX,[R12 + R14*0x1]
MOV qword ptr [RBP + -0x128],RAX
JZ 0x00289ec8
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x158]
MOV qword ptr [RBP + -0x50],0x0
MOV dword ptr [RBP + -0x48],0x0
CALL 0x001a7180
MOVZX EAX,byte ptr [RBX + 0x4]
MOV byte ptr [RBP + -0x118],0x0
AND EAX,0xf
CMP AL,0x3
JZ 0x00289f81
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x150]
MOV qword ptr [RBP + -0x50],0x0
CALL 0x001a7300
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x160]
MOV qword ptr [RBP + -0x50],R14
MOV qword ptr [RBP + -0x48],R12
CALL 0x001a74a0
MOV RAX,qword ptr [R15]
MOV RCX,qword ptr [RBP + -0x140]
MOV qword ptr [RBP + -0x50],RAX
MOV RSI,qword ptr [RCX + 0x8]
CMP RSI,qword ptr [RCX + 0x10]
JZ 0x0028a560
MOV qword ptr [RSI],RAX
ADD RSI,0x8
MOV qword ptr [RCX + 0x8],RSI
MOV RDI,qword ptr [RBP + -0x168]
LEA RSI,[RBP + -0x80]
MOV dword ptr [RBP + -0x80],0x0
CALL 0x001a7630
CMP byte ptr [RBP + -0x118],0x0
JNZ 0x00289fa8
ADD qword ptr [RBP + -0xf8],0x1
ADD R15,0x18
MOV RAX,qword ptr [RBP + -0xf8]
CMP qword ptr [RBP + -0x120],RAX
JZ 0x0028a650
MOV RAX,qword ptr [R15 + 0x8]
MOV R12,qword ptr [R15 + 0x10]
MOV R14,RAX
MOV qword ptr [RBP + -0x110],RAX
SHR R14,0x20
CMP R14,qword ptr [RBP + 0x10]
JNC 0x0028a2b0
CMP qword ptr [RBP + 0x18],0x0
JZ 0x0028a9ae
LEA EBX,[R14 + R14*0x2]
SHL EBX,0x3
ADD RBX,qword ptr [RBP + 0x18]
MOVZX EAX,word ptr [RBX + 0x6]
MOV dword ptr [RBP + -0xfc],EAX
CMP EAX,0xfeff
JA 0x00289de8
MOV R14,qword ptr [RBX + 0x8]
CMP byte ptr [RBP + -0xfd],0x0
LEA RAX,[R12 + R14*0x1]
MOV qword ptr [RBP + -0x128],RAX
JZ 0x00289fa8
MOV EAX,dword ptr [RBP + -0xfc]
MOV RSI,qword ptr [RBP + -0x108]
MOV qword ptr [RBP + -0x50],R13
MOV RDI,qword ptr [RBP + -0x158]
MOV dword ptr [RBP + -0x48],EAX
CALL 0x001a7180
MOVZX EAX,byte ptr [RBX + 0x4]
MOV byte ptr [RBP + -0x118],0x1
AND EAX,0xf
CMP AL,0x3
JNZ 0x00289e47
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x150]
MOV qword ptr [RBP + -0x50],-0x1
CALL 0x001a7300
JMP 0x00289e62
CMP byte ptr [RBP + -0x12d],0x0
JZ 0x0028a030
MOVZX EAX,byte ptr [RBX + 0x4]
AND EAX,0xf
CMP AL,0x1
JZ 0x0028a030
MOV EDX,dword ptr [RBP + -0x110]
SUB EDX,0x24
CMP EDX,0x27
JA 0x0028a030
MOV RAX,0xf03fffffff
BT RAX,RDX
JNC 0x0028a030
MOV RAX,qword ptr [RBP + -0x148]
LEA RDX,[RBP + -0xe0]
LEA RSI,[RBP + -0xa0]
MOV ECX,0x1
MOV qword ptr [RBP + -0xa0],R13
MOV RAX,qword ptr [RAX + 0x298]
MOV qword ptr [RBP + -0x110],RAX
MOVZX EAX,word ptr [RBX + 0x6]
MOV dword ptr [RBP + -0x98],EAX
MOV RAX,qword ptr [RBP + -0x110]
LEA RDI,[RAX + 0x68]
MOV qword ptr [RBP + -0xe0],RDI
CALL 0x001a7850
NOP word ptr [RAX + RAX*0x1]
MOV EBX,dword ptr [RBP + -0xfc]
CMP dword ptr [RBP + -0x12c],EBX
JZ 0x00289ec8
MOV qword ptr [RBP + -0x118],R13
MOV RAX,qword ptr [0x0067cb08]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x0028a9c6
CMP byte ptr [RAX + 0x2809],0x0
JZ 0x00289ec8
MOV RAX,qword ptr [RBP + -0x148]
MOV ESI,dword ptr [RBP + -0x12c]
MOV qword ptr [RBP + -0x90],R13
MOV EBX,dword ptr [RBP + -0xfc]
MOV RDI,qword ptr [RAX + 0x290]
MOV RAX,qword ptr [RBP + -0x118]
MOV dword ptr [RBP + -0x88],ESI
MOV dword ptr [RBP + -0x78],EBX
MOV RDX,qword ptr [RDI + 0x30]
LEA RCX,[RDI + 0x28]
MOV qword ptr [RBP + -0x80],RAX
MOV RAX,RCX
TEST RDX,RDX
JNZ 0x0028a0cb
JMP 0x0028a100
JNZ 0x0028a0bf
CMP ESI,dword ptr [RDX + 0x28]
JA 0x0028a0d1
MOV RAX,RDX
MOV RDX,qword ptr [RDX + 0x10]
TEST RDX,RDX
JZ 0x0028a0da
CMP R13,qword ptr [RDX + 0x20]
JBE 0x0028a0b8
MOV RDX,qword ptr [RDX + 0x18]
TEST RDX,RDX
JNZ 0x0028a0cb
MOV dword ptr [RBP + -0xfc],EBX
CMP RAX,RCX
JZ 0x0028a100
CMP R13,qword ptr [RAX + 0x20]
JC 0x0028a100
JNZ 0x0028a12f
MOV ECX,dword ptr [RBP + -0x12c]
CMP ECX,dword ptr [RAX + 0x28]
JNC 0x0028a12f
NOP dword ptr [RAX + RAX*0x1]
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,[0x55840a]
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 0x0028a9de
MOV RAX,qword ptr [RDI]
LEA RCX,[0x1c0b90]
MOV RAX,qword ptr [RAX + 0x208]
CMP RAX,RCX
JNZ 0x0028a580
MOV R14,qword ptr [RBP + -0x138]
TEST R14,R14
JZ 0x00289ec8
MOV RDI,qword ptr [RBP + -0x148]
MOV R12,qword ptr [RBP + -0x170]
MOV RBX,qword ptr [RDI + 0x290]
MOV RDI,R14
MOV qword ptr [RBP + -0x50],R12
CALL 0x00177490
MOV RSI,R14
LEA RDX,[R14 + RAX*0x1]
MOV R14,qword ptr [RBP + -0x108]
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,R12
JZ 0x0028a1e4
CALL 0x0049e330
MOV RAX,qword ptr [RBP + -0x148]
MOV RDI,qword ptr [RAX + 0x290]
LEA RAX,[RDI + 0x90]
CMP RBX,RAX
JZ 0x00289ec8
MOV ESI,dword ptr [RBP + -0x12c]
MOV RDX,qword ptr [RDI + 0x30]
LEA RCX,[RDI + 0x28]
MOV qword ptr [RBP + -0x50],R13
MOV RAX,RCX
MOV dword ptr [RBP + -0x48],ESI
TEST RDX,RDX
JNZ 0x0028a23b
JMP 0x0028a5e0
JNZ 0x0028a22f
CMP ESI,dword ptr [RDX + 0x28]
JA 0x0028a241
MOV RAX,RDX
MOV RDX,qword ptr [RDX + 0x10]
TEST RDX,RDX
JZ 0x0028a24a
CMP R13,qword ptr [RDX + 0x20]
JBE 0x0028a228
MOV RDX,qword ptr [RDX + 0x18]
TEST RDX,RDX
JNZ 0x0028a23b
CMP RCX,RAX
JZ 0x0028a5e0
CMP R13,qword ptr [RAX + 0x20]
JC 0x0028a5e0
JZ 0x0028a5d1
MOV RBX,qword ptr [RBX + 0x50]
ADD RAX,0x30
LEA R12,[RBP + -0xd0]
MOV R14,RAX
TEST RBX,RBX
JZ 0x00289ec8
NOP
MOV RDI,R14
LEA RSI,[RBX + 0x8]
MOV ECX,0x1
MOV RDX,R12
MOV qword ptr [RBP + -0xd0],R14
CALL 0x001a78f0
MOV RBX,qword ptr [RBX]
TEST RBX,RBX
JNZ 0x0028a280
JMP 0x00289ec8
MOV EAX,dword ptr [R13 + 0x120]
CMP R14D,EAX
JC 0x0028a4f0
SUB R14D,EAX
MOV RDX,qword ptr [R13 + 0x130]
MOV RAX,qword ptr [R13 + 0x138]
SUB RAX,RDX
SAR RAX,0x3
CMP R14,RAX
JNC 0x0028a9f6
MOV RAX,qword ptr [RDX + R14*0x8]
MOV qword ptr [RBP + -0x80],RAX
TEST RAX,RAX
JZ 0x0028a4f8
TEST byte ptr [RAX + 0x3a],0x10
JNZ 0x0028a4d8
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x0028a480
MOV R14,qword ptr [RAX + 0x40]
MOV RBX,qword ptr [RAX + 0x10]
LEA RCX,[R12 + R14*0x1]
MOV qword ptr [RBP + -0x118],RBX
MOV qword ptr [RBP + -0x128],RCX
TEST byte ptr [RBX + 0x3c],0x1
JNZ 0x0028a510
MOVZX EBX,byte ptr [RAX + 0x3b]
MOVZX EDX,byte ptr [RAX + 0x38]
MOV ECX,dword ptr [RAX + 0x18]
SHR BL,0x5
AND EDX,0xf
AND EBX,0x1
MOV dword ptr [RBP + -0xfc],ECX
CMP DL,0x2
JNZ 0x0028a356
CMP byte ptr [RBP + -0x12d],0x0
JNZ 0x0028a680
MOV RDX,qword ptr [RAX]
MOV ECX,0x8
LEA RSI,[0x5335ef]
MOV RDI,RDX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0028a450
LEA RAX,[RDX + 0x8]
MOV qword ptr [RBP + -0x138],RAX
CMP byte ptr [RBP + -0xfd],0x0
JZ 0x0028a43d
TEST BL,BL
JNZ 0x0028a530
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x158]
MOV qword ptr [RBP + -0x50],0x0
MOV dword ptr [RBP + -0x48],0x0
CALL 0x001a7180
MOV RCX,qword ptr [RBP + -0x150]
MOV RSI,qword ptr [RCX + 0x8]
CMP RSI,qword ptr [RCX + 0x10]
JZ 0x0028a618
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 + -0x108]
MOV RDI,qword ptr [RBP + -0x160]
MOV qword ptr [RBP + -0x50],R14
MOV qword ptr [RBP + -0x48],R12
CALL 0x001a74a0
MOV RAX,qword ptr [R15]
MOV RDI,qword ptr [RBP + -0x140]
MOV qword ptr [RBP + -0x50],RAX
MOV RSI,qword ptr [RDI + 0x8]
CMP RSI,qword ptr [RDI + 0x10]
JZ 0x0028a630
MOV qword ptr [RSI],RAX
ADD RSI,0x8
MOV qword ptr [RDI + 0x8],RSI
MOV RDI,qword ptr [RBP + -0x168]
LEA RSI,[RBP + -0x90]
MOV dword ptr [RBP + -0x90],0x0
CALL 0x001a7630
TEST BL,BL
JNZ 0x0028a049
JMP 0x00289ec8
MOV RDI,RDX
MOV ECX,0x7
LEA RSI,[0x5335f8]
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
ADD RDX,0x7
TEST AL,AL
CMOVNZ RDX,qword ptr [RBP + -0x138]
MOV qword ptr [RBP + -0x138],RDX
JMP 0x0028a382
MOV R14,qword ptr [RAX + 0x40]
MOV RDX,qword ptr [RAX]
XOR EBX,EBX
MOV dword ptr [RBP + -0xfc],0x0
MOV qword ptr [RBP + -0x118],0x0
LEA RCX,[R12 + R14*0x1]
MOV qword ptr [RBP + -0x128],RCX
JMP 0x0028a359
MOV RDI,qword ptr [R13 + 0x40]
TEST RDI,RDI
JZ 0x0028a5b8
MOV EDX,R14D
MOV RSI,R13
CALL 0x00392c60
MOV dword ptr [RBP + -0xfc],EAX
JMP 0x00289f33
MOV RDI,qword ptr [RBP + -0x148]
MOV RSI,RAX
CALL 0x00443570
MOV qword ptr [RBP + -0x80],RAX
JMP 0x0028a2fc
MOV qword ptr [RBP + -0x80],0x0
LEA RDX,[0x555f10]
MOV ESI,0x11c
LEA RDI,[0x5335df]
CALL 0x00352af0
MOV dword ptr [RBP + -0xfc],0x0
MOV RDX,qword ptr [RAX]
XOR EBX,EBX
MOV qword ptr [RBP + -0x118],0x0
JMP 0x0028a359
MOV RAX,qword ptr [RBP + -0x118]
MOV RSI,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x158]
MOV qword ptr [RBP + -0x50],RAX
MOV EAX,dword ptr [RBP + -0xfc]
MOV dword ptr [RBP + -0x48],EAX
CALL 0x001a7180
JMP 0x0028a3b9
MOV RDX,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x140]
CALL 0x001a6070
JMP 0x00289ea4
SUB RSP,0x8
MOV R9D,dword ptr [RBP + -0xfc]
PUSH qword ptr [RBP + -0x128]
MOV RDX,R13
MOV R8,qword ptr [RBP + -0x118]
MOV ECX,dword ptr [RBP + -0x12c]
MOV RSI,qword ptr [RBP + -0x148]
CALL RAX
POP RAX
POP RDX
JMP 0x0028a17d
MOV RAX,qword ptr [R13]
MOV RDI,R13
CALL qword ptr [RAX + 0xd8]
MOV RDI,RAX
MOV qword ptr [R13 + 0x40],RAX
JMP 0x0028a4bd
MOV EDX,dword ptr [RBP + -0x12c]
CMP EDX,dword ptr [RAX + 0x28]
JNC 0x0028a263
MOV RDX,qword ptr [RBP + -0x108]
ADD RDI,0x20
MOV RSI,RAX
LEA RCX,[RBP + -0xb8]
LEA R8,[RBP + -0xe1]
MOV qword ptr [RBP + -0xb8],RDX
LEA RDX,[0x55840a]
CALL 0x001a64f0
JMP 0x0028a263
MOV RDI,qword ptr [RBP + -0x150]
LEA RDX,[RBP + -0x80]
CALL 0x001a5d30
JMP 0x0028a3de
MOV RDX,qword ptr [RBP + -0x108]
MOV RDI,qword ptr [RBP + -0x140]
CALL 0x001a6070
JMP 0x0028a420
MOV RAX,qword ptr [RBP + -0x178]
MOV RDI,qword ptr [RBP + -0x70]
ADD RAX,0x10
CMP RDI,RAX
JZ 0x0028a669
CALL 0x0049e330
LEA RSP,[RBP + -0x28]
POP RBX
POP R12
POP R13
POP R14
POP R15
POP RBP
RET
TEST BL,BL
JZ 0x0028a6f0
MOV RDX,qword ptr [RAX]
MOV ECX,0x16
LEA RDI,[0x53343b]
MOV RSI,RDX
CMPSB.REPE RDI,RSI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0028a359
MOV RCX,qword ptr [0x0067cb08]
MOV RCX,qword ptr [RCX + 0x10]
TEST RCX,RCX
JZ 0x0028aa0e
CMP byte ptr [RCX + 0x2a61],0x0
JNZ 0x0028a975
MOV ECX,dword ptr [RBP + -0x110]
SUB ECX,0x24
CMP ECX,0x27
JA 0x0028a359
MOV RAX,0xf03fffffff
BT RAX,RCX
JNC 0x0028a359
NOP dword ptr [RAX]
MOV RAX,qword ptr [RBP + -0x148]
LEA RDX,[RBP + -0xd8]
MOV ECX,0x1
LEA RSI,[RBP + -0xb0]
MOV RAX,qword ptr [RAX + 0x298]
MOV qword ptr [RBP + -0x110],RAX
MOV RAX,qword ptr [RBP + -0x118]
MOV qword ptr [RBP + -0xb0],RAX
MOV EAX,dword ptr [RBP + -0xfc]
MOV dword ptr [RBP + -0xa8],EAX
MOV RAX,qword ptr [RBP + -0x110]
LEA RDI,[RAX + 0x68]
MOV qword ptr [RBP + -0xd8],RDI
CALL 0x001a7850
MOV RAX,qword ptr [RBP + -0x80]
JMP 0x0028a356
MOV RAX,qword ptr [R14]
MOV RDI,R14
CALL qword ptr [RAX + 0x90]
TEST AL,AL
JZ 0x00289d9d
MOV RDX,qword ptr [R14]
LEA RSI,[0x1a5310]
MOV RAX,qword ptr [RBP + -0x70]
MOV RCX,qword ptr [RDX + 0x10]
CMP RCX,RSI
JNZ 0x0028a984
MOV RDX,qword ptr [RDX + 0x98]
LEA RCX,[0x1a53d0]
CMP RDX,RCX
JNZ 0x0028a997
MOV ECX,0xc
LEA RSI,[0x535e91]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00289d9d
MOV ECX,0x11
LEA RSI,[0x535e9e]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00289d9d
MOV ECX,0xc
LEA RSI,[0x535eb0]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00289d9d
MOV ECX,0x11
LEA RSI,[0x535ebd]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00289d9d
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 + -0x12d]
JMP 0x00289da4
LEA RBX,[RBP + -0x50]
MOV R12,qword ptr [RBP + -0x70]
MOV RDX,-0x1
LEA RAX,[RBX + 0x10]
MOV qword ptr [RBP + -0x50],RAX
TEST R12,R12
JZ 0x0028a868
MOV RDI,R12
CALL 0x00177490
LEA RDX,[R12 + RAX*0x1]
MOV RSI,R12
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 0x0028a8ca
MOV ECX,0xf
LEA RSI,[0x5335cf]
MOV RDI,RAX
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0028a8ca
ADD RBX,0x10
CMP RAX,RBX
JZ 0x0028a8be
MOV RDI,RAX
CALL 0x0049e330
MOV RAX,qword ptr [0x0067cb08]
JMP 0x00289d45
LEA RDX,[RBX + 0x10]
CMP RAX,RDX
JNZ 0x0028a9a1
MOV EAX,dword ptr [RBP + -0x12c]
MOV RSI,RBX
MOV qword ptr [RBP + -0x50],R13
MOV dword ptr [RBP + -0x48],EAX
MOV RAX,qword ptr [RBP + -0x148]
MOV RAX,qword ptr [RAX + 0x298]
LEA RDI,[RAX + 0xa8]
MOV qword ptr [RBP + -0xf8],RAX
CALL 0x001a7bd0
LEA RDI,[RAX + 0x18]
LEA RCX,[RAX + 0x48]
MOV qword ptr [RBP + -0x158],RAX
MOV qword ptr [RBP + -0x150],RDI
LEA RDI,[RAX + 0x30]
ADD RAX,0x60
MOV qword ptr [RBP + -0x168],RAX
MOV RAX,qword ptr [0x0067cb08]
MOV qword ptr [RBP + -0x160],RDI
MOV qword ptr [RBP + -0x140],RCX
MOV byte ptr [RBP + -0xfd],0x1
JMP 0x00289d83
LEA RDI,[RBP + -0x70]
LEA RDX,[0x5861f6]
LEA RAX,[RDI + 0x10]
MOV RSI,RDX
MOV qword ptr [RBP + -0x178],RDI
MOV qword ptr [RBP + -0x70],RAX
CALL 0x001a61c0
JMP 0x00289d23
TEST byte ptr [RAX + 0x39],0x3
JNZ 0x0028a6f0
JMP 0x0028a6c7
MOV RSI,RAX
MOV RDI,R14
CALL RCX
MOV byte ptr [RBP + -0x12d],AL
JMP 0x00289da4
MOV RSI,RAX
MOV RDI,R14
CALL RDX
JMP 0x0028a98c
MOV RDI,RAX
CALL 0x0049e330
JMP 0x0028a8d7
LEA RDX,[0x555f10]
MOV ESI,0xea
LEA RDI,[0x5335df]
CALL 0x00352af0
LEA RDX,[0x5574a8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x5560e0]
MOV ESI,0x73
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x556098]
MOV ESI,0x8ad
LEA RDI,[0x5333ac]
CALL 0x00352af0
LEA RDX,[0x5574a8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x5574a8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x5574a8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
LEA RDX,[0x5574a8]
MOV ESI,0x5c
LEA RDI,[0x52e279]
CALL 0x00352af0
(translation_unit "void FUN_00289cb0(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,ulong param_7,long param_8)\n\n{\n  undefined8 *puVar1;\n  ulong uVar2;\n  long *plVar3;\n  code *pcVar4;\n  char cVar5;\n  long lVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  long lVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  ulong uVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_170;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_148;\n  byte *local_140;\n  char local_135;\n  byte *local_130;\n  byte *local_120;\n  int local_118;\n  uint local_104;\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  bVar26 = 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 {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar17 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < 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        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 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_00289cb0(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,ulong param_7,long param_8)\n\n{\n  undefined8 *puVar1;\n  ulong uVar2;\n  long *plVar3;\n  code *pcVar4;\n  char cVar5;\n  long lVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  long lVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  ulong uVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_170;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_148;\n  byte *local_140;\n  char local_135;\n  byte *local_130;\n  byte *local_120;\n  int local_118;\n  uint local_104;\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  bVar26 = 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 {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar17 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < 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        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 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_00289cb0(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,ulong param_7,long param_8)" identifier (parameter_list "(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,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 "undefined8 *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  undefined8 *puVar1;\n  ulong uVar2;\n  long *plVar3;\n  code *pcVar4;\n  char cVar5;\n  long lVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  long lVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  ulong uVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_170;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_148;\n  byte *local_140;\n  char local_135;\n  byte *local_130;\n  byte *local_120;\n  int local_118;\n  uint local_104;\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  bVar26 = 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 {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar17 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < 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        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "undefined1 uVar20;" type_identifier identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "long local_170;" (sized_type_specifier "long" long) 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_148;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *local_140;" type_identifier (pointer_declarator "*local_140" * identifier) ;) (declaration "char local_135;" primitive_type identifier ;) (declaration "byte *local_130;" type_identifier (pointer_declarator "*local_130" * identifier) ;) (declaration "byte *local_120;" type_identifier (pointer_declarator "*local_120" * identifier) ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "uint local_104;" type_identifier 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 "bVar26 = 0;" (assignment_expression "bVar26 = 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 {\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 {\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 "pbVar17 = local_78[0];" (assignment_expression "pbVar17 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }" { (labeled_statement "LAB_00289d45:\n    bVar22 = false;" statement_identifier : (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;)) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" identifier = number_literal) ;) (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" identifier = number_literal) ;) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" identifier = number_literal) ;) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }" else (compound_statement "{\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }" { (expression_statement "pbVar13 = (byte *)0xffffffffffffffff;" (assignment_expression "pbVar13 = (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 "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = local_78[0] == (byte *)0x0;" (assignment_expression "uVar24 = 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)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }" if (parenthesized_expression "(!(bool)uVar24)" ( (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }" { (expression_statement "sVar7 = strlen((char *)local_78[0]);" (assignment_expression "sVar7 = 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 "pbVar13 = pbVar17 + sVar7;" (assignment_expression "pbVar13 = pbVar17 + sVar7" identifier = (binary_expression "pbVar17 + sVar7" identifier + identifier)) ;) })) (expression_statement "FUN_001a61c0(&local_58,pbVar17,pbVar13);" (call_expression "FUN_001a61c0(&local_58,pbVar17,pbVar13)" identifier (argument_list "(&local_58,pbVar17,pbVar13)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "lVar15 = 5;" (assignment_expression "lVar15 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".text";" (assignment_expression "pbVar17 = (byte *)".text"" identifier = (cast_expression "(byte *)".text"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".text"" " string_content "))) ;) (expression_statement "pbVar13 = local_58;" (assignment_expression "pbVar13 = local_58" identifier = identifier) ;) (do_statement "do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);" do (compound_statement "{\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar20 = *pbVar17 < *pbVar13;" (assignment_expression "uVar20 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "uVar24 = *pbVar17 == *pbVar13;" (assignment_expression "uVar24 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;" (assignment_expression "bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" identifier = (binary_expression "(!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" (parenthesized_expression "(!(bool)uVar20 && !(bool)uVar24)" ( (binary_expression "!(bool)uVar20 && !(bool)uVar24" (unary_expression "!(bool)uVar20" ! (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\n      }\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\n      }\n    }" { (expression_statement "lVar15 = 0xf;" (assignment_expression "lVar15 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".gnu.linkonce.t";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_58;" (assignment_expression "pbVar13 = local_58" identifier = identifier) ;) (do_statement "do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);" do (compound_statement "{\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar17 < *pbVar13;" (assignment_expression "bVar22 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\n      }" if (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" ( (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_00289d45;" 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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);" (assignment_expression "local_160 = 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_158 = local_160 + 0x18;" (assignment_expression "local_158 = local_160 + 0x18" identifier = (binary_expression "local_160 + 0x18" identifier + number_literal)) ;) (expression_statement "local_148 = local_160 + 0x48;" (assignment_expression "local_148 = local_160 + 0x48" identifier = (binary_expression "local_160 + 0x48" identifier + number_literal)) ;) (expression_statement "local_168 = local_160 + 0x30;" (assignment_expression "local_168 = local_160 + 0x30" identifier = (binary_expression "local_160 + 0x30" identifier + number_literal)) ;) (expression_statement "local_170 = local_160 + 0x60;" (assignment_expression "local_170 = local_160 + 0x60" identifier = (binary_expression "local_160 + 0x60" identifier + number_literal)) ;) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) }))) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */\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                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */\n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }" { comment 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     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0'))" ( (binary_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\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 "(cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')" ( (comma_expression "cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0'" (assignment_expression "cVar5 = (**(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 "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "pcVar4 = *(code **)(*param_2 + 0x10);" (assignment_expression "pcVar4 = *(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 (pcVar4 != FUN_001a5310) {\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" if (parenthesized_expression "(pcVar4 != FUN_001a5310)" ( (binary_expression "pcVar4 != FUN_001a5310" identifier != identifier) )) (compound_statement "{\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" { comment (expression_statement "local_135 = (*pcVar4)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar4)(param_2,local_78[0])" identifier = (call_expression "(*pcVar4)(param_2,local_78[0])" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00289da4;" goto statement_identifier ;) })) (expression_statement "pcVar4 = *(code **)(*param_2 + 0x98);" (assignment_expression "pcVar4 = *(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 "bVar23 = pcVar4 < FUN_001a53d0;" (assignment_expression "bVar23 = pcVar4 < FUN_001a53d0" identifier = (binary_expression "pcVar4 < FUN_001a53d0" identifier < identifier)) ;) (expression_statement "bVar25 = pcVar4 == FUN_001a53d0;" (assignment_expression "bVar25 = pcVar4 == FUN_001a53d0" identifier = (binary_expression "pcVar4 == FUN_001a53d0" identifier == identifier)) ;) (if_statement "if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" { (expression_statement "local_135 = (*pcVar4)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar4)(param_2,local_78[0])" identifier = (call_expression "(*pcVar4)(param_2,local_78[0])" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00289da4;" goto statement_identifier ;) })) (expression_statement "lVar15 = 0xc;" (assignment_expression "lVar15 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".rodata._ZTV";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);" do (compound_statement "{\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar17 < *pbVar13;" (assignment_expression "bVar23 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar25 = *pbVar17 == *pbVar13;" (assignment_expression "bVar25 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }" { (expression_statement "lVar15 = 0x11;" (assignment_expression "lVar15 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".data.rel.ro._ZTV";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);" do (compound_statement "{\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar13;" (assignment_expression "bVar21 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar23 = (!bVar21 && !bVar23) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" ( (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }" { (expression_statement "lVar15 = 0xc;" (assignment_expression "lVar15 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".rodata._ZTC";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);" do (compound_statement "{\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar13;" (assignment_expression "bVar25 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }" { (expression_statement "lVar15 = 0x11;" (assignment_expression "lVar15 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".data.rel.ro._ZTC";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);" do (compound_statement "{\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar13;" (assignment_expression "bVar21 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar23 = (!bVar21 && !bVar23) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" ( (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }" { (expression_statement "lVar15 = 9;" (assignment_expression "lVar15 = 9" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".eh_frame";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);" do (compound_statement "{\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar13;" (assignment_expression "bVar25 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "local_135 = (!bVar25 && !bVar23) != bVar25;" (assignment_expression "local_135 = (!bVar25 && !bVar23) != bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) != bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00289da4;" goto statement_identifier ;) })) })) })) })) })) (expression_statement "local_135 = '\0';" (assignment_expression "local_135 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < 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        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);\n  }" statement_identifier : (if_statement "if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < 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        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 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_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < 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        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);\n  }" { (expression_statement "local_140 = (byte *)0x0;" (assignment_expression "local_140 = (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) ;) (do_statement "do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < 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        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);" do (compound_statement "{\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < 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        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    }" { (expression_statement "uVar19 = param_5[1];" (assignment_expression "uVar19 = param_5[1]" identifier = (subscript_expression "param_5[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_5[2];" (assignment_expression "uVar2 = param_5[2]" identifier = (subscript_expression "param_5[2]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = (uint)(uVar19 >> 0x20);" (assignment_expression "uVar12 = (uint)(uVar19 >> 0x20)" identifier = (call_expression "(uint)(uVar19 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 >> 0x20)" ( (binary_expression "uVar19 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_118 = (int)uVar19;" (assignment_expression "local_118 = (int)uVar19" identifier = (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar19 >> 0x20 < 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        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }" if (parenthesized_expression "(uVar19 >> 0x20 < param_7)" ( (binary_expression "uVar19 >> 0x20 < param_7" (binary_expression "uVar19 >> 0x20" identifier >> number_literal) < 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        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 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 "lVar15 = (ulong)(uVar12 * 0x18) + param_8;" (assignment_expression "lVar15 = (ulong)(uVar12 * 0x18) + param_8" identifier = (binary_expression "(ulong)(uVar12 * 0x18) + param_8" (call_expression "(ulong)(uVar12 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 * 0x18)" ( (binary_expression "uVar12 * 0x18" identifier * number_literal) ))) + identifier)) ;) (expression_statement "local_104 = (uint)*(ushort *)(lVar15 + 6);" (assignment_expression "local_104 = (uint)*(ushort *)(lVar15 + 6)" identifier = (binary_expression "(uint)*(ushort *)(lVar15 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(lVar15 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 6)" ( (binary_expression "lVar15 + 6" identifier + number_literal) ))))) ;) (if_statement "if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }" if (parenthesized_expression "(local_104 < 0xff00)" ( (binary_expression "local_104 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }" { (labeled_statement "LAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);" statement_identifier : (expression_statement "pbVar17 = *(byte **)(lVar15 + 8);" (assignment_expression "pbVar17 = *(byte **)(lVar15 + 8)" identifier = (pointer_expression "*(byte **)(lVar15 + 8)" * (cast_expression "(byte **)(lVar15 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 8)" ( (binary_expression "lVar15 + 8" identifier + number_literal) ))))) ;)) (expression_statement "local_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" identifier = (binary_expression "pbVar17 + uVar2" identifier + identifier)) ;) (if_statement "if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }" { (expression_statement "local_50 = CONCAT44(local_50._4_4_,local_104);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,local_104)" identifier = (call_expression "CONCAT44(local_50._4_4_,local_104)" identifier (argument_list "(local_50._4_4_,local_104)" ( (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_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) (if_statement "if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;" if (parenthesized_expression "((*(byte *)(lVar15 + 4) & 0xf) == 3)" ( (binary_expression "(*(byte *)(lVar15 + 4) & 0xf) == 3" (parenthesized_expression "(*(byte *)(lVar15 + 4) & 0xf)" ( (binary_expression "*(byte *)(lVar15 + 4) & 0xf" (pointer_expression "*(byte *)(lVar15 + 4)" * (cast_expression "(byte *)(lVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 4)" ( (binary_expression "lVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00289f81;" goto statement_identifier ;)) (labeled_statement "LAB_00289e47:\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_158,&local_58);" (call_expression "FUN_001a7300(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (goto_statement "goto LAB_00289e62;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }" else (compound_statement "{\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }" { (if_statement "if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }" if (parenthesized_expression "(local_104 == 0xffff)" ( (binary_expression "local_104 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }" { (expression_statement "lVar9 = *(long *)(param_3 + 0x40);" (assignment_expression "lVar9 = *(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 (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }" { (expression_statement "lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);" (assignment_expression "lVar9 = (**(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) = lVar9;" (assignment_expression "*(long *)(param_3 + 0x40) = lVar9" (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 "local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);" (assignment_expression "local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20)" identifier = (call_expression "FUN_00392c60(lVar9,param_3,uVar19 >> 0x20)" identifier (argument_list "(lVar9,param_3,uVar19 >> 0x20)" ( identifier , identifier , (binary_expression "uVar19 >> 0x20" identifier >> number_literal) )))) ;) (goto_statement "goto LAB_00289f33;" goto statement_identifier ;) })) (expression_statement "pbVar17 = *(byte **)(lVar15 + 8);" (assignment_expression "pbVar17 = *(byte **)(lVar15 + 8)" identifier = (pointer_expression "*(byte **)(lVar15 + 8)" * (cast_expression "(byte **)(lVar15 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 8)" ( (binary_expression "lVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" identifier = (binary_expression "pbVar17 + uVar2" identifier + identifier)) ;) (if_statement "if (!bVar22) goto LAB_00289ec8;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_00289ec8;" 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_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (if_statement "if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;" if (parenthesized_expression "((*(byte *)(lVar15 + 4) & 0xf) != 3)" ( (binary_expression "(*(byte *)(lVar15 + 4) & 0xf) != 3" (parenthesized_expression "(*(byte *)(lVar15 + 4) & 0xf)" ( (binary_expression "*(byte *)(lVar15 + 4) & 0xf" (pointer_expression "*(byte *)(lVar15 + 4)" * (cast_expression "(byte *)(lVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 4)" ( (binary_expression "lVar15 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00289e47;" goto statement_identifier ;)) (labeled_statement "LAB_00289f81:\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_158,&local_58);" (call_expression "FUN_001a7300(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (labeled_statement "LAB_00289e62:\n          local_58 = pbVar17;" statement_identifier : (expression_statement "local_58 = pbVar17;" (assignment_expression "local_58 = pbVar17" identifier = identifier) ;)) (expression_statement "local_50 = uVar2;" (assignment_expression "local_50 = uVar2" identifier = identifier) ;) (expression_statement "FUN_001a74a0(local_168,&local_58);" (call_expression "FUN_001a74a0(local_168,&local_58)" identifier (argument_list "(local_168,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "local_58 = (byte *)*param_5;" (assignment_expression "local_58 = (byte *)*param_5" identifier = (cast_expression "(byte *)*param_5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "puVar1 = *(undefined8 **)(local_148 + 8);" (assignment_expression "puVar1 = *(undefined8 **)(local_148 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_148 + 8)" * (cast_expression "(undefined8 **)(local_148 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" if (parenthesized_expression "(puVar1 == *(undefined8 **)(local_148 + 0x10))" ( (binary_expression "puVar1 == *(undefined8 **)(local_148 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_148 + 0x10)" * (cast_expression "(undefined8 **)(local_148 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 0x10)" ( (binary_expression "local_148 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }" { (expression_statement "FUN_001a6070(local_148,puVar1,&local_58);" (call_expression "FUN_001a6070(local_148,puVar1,&local_58)" identifier (argument_list "(local_148,puVar1,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" else (compound_statement "{\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" { (expression_statement "*puVar1 = local_58;" (assignment_expression "*puVar1 = local_58" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_148 + 8) = puVar1 + 1;" (assignment_expression "*(undefined8 **)(local_148 + 8) = puVar1 + 1" (pointer_expression "*(undefined8 **)(local_148 + 8)" * (cast_expression "(undefined8 **)(local_148 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) )))) = (binary_expression "puVar1 + 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_170,&local_88);" (call_expression "FUN_001a7630(local_170,&local_88)" identifier (argument_list "(local_170,&local_88)" ( identifier , (pointer_expression "&local_88" & identifier) ))) ;) (if_statement "if (!bVar23) goto LAB_00289ec8;" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (goto_statement "goto LAB_00289ec8;" goto statement_identifier ;)) }))) (if_statement "if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }" if (parenthesized_expression "((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0))" ( (binary_expression "(((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)" (parenthesized_expression "(((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28))" ( (binary_expression "((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)" (parenthesized_expression "((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1))" ( (binary_expression "(local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)" (parenthesized_expression "(local_135 != '\0')" ( (binary_expression "local_135 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)(lVar15 + 4) & 0xf) != 1)" ( (binary_expression "(*(byte *)(lVar15 + 4) & 0xf) != 1" (parenthesized_expression "(*(byte *)(lVar15 + 4) & 0xf)" ( (binary_expression "*(byte *)(lVar15 + 4) & 0xf" (pointer_expression "*(byte *)(lVar15 + 4)" * (cast_expression "(byte *)(lVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 4)" ( (binary_expression "lVar15 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(local_118 - 0x24U < 0x28)" ( (binary_expression "local_118 - 0x24U < 0x28" (binary_expression "local_118 - 0x24U" identifier - number_literal) < number_literal) ))) )) && (parenthesized_expression "((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)" ( (binary_expression "(0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0" (parenthesized_expression "(0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1)" ( (binary_expression "0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1" (binary_expression "0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f)" number_literal >> (parenthesized_expression "((ulong)(local_118 - 0x24U) & 0x3f)" ( (binary_expression "(ulong)(local_118 - 0x24U) & 0x3f" (call_expression "(ulong)(local_118 - 0x24U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_118 - 0x24U)" ( (binary_expression "local_118 - 0x24U" identifier - number_literal) ))) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }" { (expression_statement "local_a0 = (uint)*(ushort *)(lVar15 + 6);" (assignment_expression "local_a0 = (uint)*(ushort *)(lVar15 + 6)" identifier = (binary_expression "(uint)*(ushort *)(lVar15 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(lVar15 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 6)" ( (binary_expression "lVar15 + 6" 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 ))) ;) })) (expression_statement "local_120 = param_3;" (assignment_expression "local_120 = param_3" identifier = identifier) ;) (if_statement "if (param_4 != local_104) {\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(param_4 != local_104)" ( (binary_expression "param_4 != local_104" identifier != identifier) )) (compound_statement "{\nLAB_0028a049:\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" statement_identifier : (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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809" (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) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" { (expression_statement "lVar9 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar9 = *(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_80 = local_104;" (assignment_expression "local_80 = local_104" identifier = identifier) ;) (expression_statement "lVar15 = lVar9 + 0x28;" (assignment_expression "lVar15 = lVar9 + 0x28" identifier = (binary_expression "lVar9 + 0x28" identifier + number_literal)) ;) (expression_statement "local_88 = local_120;" (assignment_expression "local_88 = local_120" identifier = identifier) ;) (expression_statement "lVar10 = lVar15;" (assignment_expression "lVar10 = lVar15" identifier = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar9 + 0x30);" (assignment_expression "lVar8 = *(long *)(lVar9 + 0x30)" identifier = (pointer_expression "*(long *)(lVar9 + 0x30)" * (cast_expression "(long *)(lVar9 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 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) ;) (if_statement "if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }" if (parenthesized_expression "(*(long *)(lVar9 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar9 + 0x30) == 0" (pointer_expression "*(long *)(lVar9 + 0x30)" * (cast_expression "(long *)(lVar9 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }" { (labeled_statement "LAB_0028a100:\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 "lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);" (assignment_expression "lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea)" identifier = (call_expression "FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea)" identifier (argument_list "(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_0055840a" & identifier) , (pointer_expression "&local_c8" & identifier) , (pointer_expression "&local_ea" & identifier) )))) ;) }) (else_clause "else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }" else (compound_statement "{\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }" { (do_statement "do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);" do (compound_statement "{\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              }" { (while_statement "while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }" while (parenthesized_expression "((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )))" ( (parenthesized_expression "(lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))" ( (comma_expression "lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )" (assignment_expression "lVar6 = lVar8" identifier = identifier) , (binary_expression "*(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )" (binary_expression "*(byte **)(lVar6 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar6 + 0x20)" * (cast_expression "(byte **)(lVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) < identifier) || (parenthesized_expression "((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )" ( (parenthesized_expression "(param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))" ( (binary_expression "param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar6 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar6 + 0x20)" * (cast_expression "(byte **)(lVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(lVar6 + 0x28) < param_4)" ( (binary_expression "*(uint *)(lVar6 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar6 + 0x28)" * (cast_expression "(uint *)(lVar6 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x28)" ( (binary_expression "lVar6 + 0x28" identifier + number_literal) )))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }" { (expression_statement "plVar3 = (long *)(lVar6 + 0x18);" (assignment_expression "plVar3 = (long *)(lVar6 + 0x18)" identifier = (cast_expression "(long *)(lVar6 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar6 = lVar10;" (assignment_expression "lVar6 = lVar10" identifier = identifier) ;) (expression_statement "lVar8 = *plVar3;" (assignment_expression "lVar8 = *plVar3" identifier = (pointer_expression "*plVar3" * identifier)) ;) (if_statement "if (*plVar3 == 0) goto LAB_0028a0da;" if (parenthesized_expression "(*plVar3 == 0)" ( (binary_expression "*plVar3 == 0" (pointer_expression "*plVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0028a0da;" goto statement_identifier ;)) })) (expression_statement "lVar10 = lVar6;" (assignment_expression "lVar10 = lVar6" identifier = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar6 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar6 + 0x10)" identifier = (pointer_expression "*(long *)(lVar6 + 0x10)" * (cast_expression "(long *)(lVar6 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(lVar6 + 0x10) != 0)" ( (binary_expression "*(long *)(lVar6 + 0x10) != 0" (pointer_expression "*(long *)(lVar6 + 0x10)" * (cast_expression "(long *)(lVar6 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_0028a0da:\n              bVar23 = lVar6 == lVar15;" statement_identifier : (expression_statement "bVar23 = lVar6 == lVar15;" (assignment_expression "bVar23 = lVar6 == lVar15" identifier = (binary_expression "lVar6 == lVar15" identifier == identifier)) ;)) (expression_statement "lVar15 = lVar6;" (assignment_expression "lVar15 = lVar6" identifier = identifier) ;) (if_statement "if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;" if (parenthesized_expression "(((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))" ( (binary_expression "((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28))))" (parenthesized_expression "((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20)))" ( (binary_expression "(bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))" (parenthesized_expression "(bVar23)" ( identifier )) || (parenthesized_expression "(param_3 < *(byte **)(lVar6 + 0x20))" ( (binary_expression "param_3 < *(byte **)(lVar6 + 0x20)" identifier < (pointer_expression "*(byte **)(lVar6 + 0x20)" * (cast_expression "(byte **)(lVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28))))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))" ( (binary_expression "param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar6 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar6 + 0x20)" * (cast_expression "(byte **)(lVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(param_4 < *(uint *)(lVar6 + 0x28))" ( (binary_expression "param_4 < *(uint *)(lVar6 + 0x28)" identifier < (pointer_expression "*(uint *)(lVar6 + 0x28)" * (cast_expression "(uint *)(lVar6 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x28)" ( (binary_expression "lVar6 + 0x28" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_0028a100;" goto statement_identifier ;)) }))) (expression_statement "local_d0 = lVar6 + 0x30;" (assignment_expression "local_d0 = lVar6 + 0x30" identifier = (binary_expression "lVar6 + 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 "plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);" (assignment_expression "plVar3 = *(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 (plVar3 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }" if (parenthesized_expression "(plVar3 == (long *)0x0)" ( (binary_expression "plVar3 == (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 **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }" if (parenthesized_expression "(*(code **)(*plVar3 + 0x208) != FUN_001c0b90)" ( (binary_expression "*(code **)(*plVar3 + 0x208) != FUN_001c0b90" (pointer_expression "*(code **)(*plVar3 + 0x208)" * (cast_expression "(code **)(*plVar3 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar3 + 0x208)" ( (binary_expression "*plVar3 + 0x208" (pointer_expression "*plVar3" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }" { (expression_statement "(**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);" (call_expression "(**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130)" (parenthesized_expression "(**(code **)(*plVar3 + 0x208))" ( (pointer_expression "**(code **)(*plVar3 + 0x208)" * (pointer_expression "*(code **)(*plVar3 + 0x208)" * (cast_expression "(code **)(*plVar3 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar3 + 0x208)" ( (binary_expression "*plVar3 + 0x208" (pointer_expression "*plVar3" * identifier) + number_literal) ))))) )) (argument_list "(plVar3,param_1,param_3,param_4,local_120,local_104,local_130)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }" if (parenthesized_expression "(local_140 != (byte *)0x0)" ( (binary_expression "local_140 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }" { (expression_statement "lVar15 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar15 = *(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 "sVar7 = strlen((char *)local_140);" (assignment_expression "sVar7 = strlen((char *)local_140)" identifier = (call_expression "strlen((char *)local_140)" identifier (argument_list "((char *)local_140)" ( (cast_expression "(char *)local_140" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "FUN_001a61c0(&local_58,local_140,local_140 + sVar7);" (call_expression "FUN_001a61c0(&local_58,local_140,local_140 + sVar7)" identifier (argument_list "(&local_58,local_140,local_140 + sVar7)" ( (pointer_expression "&local_58" & identifier) , identifier , (binary_expression "local_140 + sVar7" identifier + identifier) ))) ;) (expression_statement "lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);" (assignment_expression "lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58)" identifier = (call_expression "FUN_001c4d80(lVar15 + 0x88,&local_58)" identifier (argument_list "(lVar15 + 0x88,&local_58)" ( (binary_expression "lVar15 + 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 "lVar9 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar9 = *(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 (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" if (parenthesized_expression "(lVar15 != lVar9 + 0x90)" ( (binary_expression "lVar15 != lVar9 + 0x90" identifier != (binary_expression "lVar9 + 0x90" identifier + number_literal)) )) (compound_statement "{\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" { (expression_statement "lVar10 = lVar9 + 0x28;" (assignment_expression "lVar10 = lVar9 + 0x28" identifier = (binary_expression "lVar9 + 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 "lVar8 = lVar10;" (assignment_expression "lVar8 = lVar10" identifier = identifier) ;) (expression_statement "lVar6 = *(long *)(lVar9 + 0x30);" (assignment_expression "lVar6 = *(long *)(lVar9 + 0x30)" identifier = (pointer_expression "*(long *)(lVar9 + 0x30)" * (cast_expression "(long *)(lVar9 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }" if (parenthesized_expression "(*(long *)(lVar9 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar9 + 0x30) == 0" (pointer_expression "*(long *)(lVar9 + 0x30)" * (cast_expression "(long *)(lVar9 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }" { (labeled_statement "LAB_0028a5e0:\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 "lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);" (assignment_expression "lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9)" identifier = (call_expression "FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9)" identifier (argument_list "(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_0055840a" & identifier) , (pointer_expression "&local_c0" & identifier) , (pointer_expression "&local_e9" & identifier) )))) ;) }) (else_clause "else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }" else (compound_statement "{\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }" { (do_statement "do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);" do (compound_statement "{\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  }" { (while_statement "while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }" while (parenthesized_expression "((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4)))))" ( (parenthesized_expression "(lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))" ( (comma_expression "lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4)))" (assignment_expression "lVar11 = lVar6" 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                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }" { (expression_statement "plVar3 = (long *)(lVar11 + 0x18);" (assignment_expression "plVar3 = (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 = lVar8;" (assignment_expression "lVar11 = lVar8" identifier = identifier) ;) (expression_statement "lVar6 = *plVar3;" (assignment_expression "lVar6 = *plVar3" identifier = (pointer_expression "*plVar3" * identifier)) ;) (if_statement "if (*plVar3 == 0) goto LAB_0028a24a;" if (parenthesized_expression "(*plVar3 == 0)" ( (binary_expression "*plVar3 == 0" (pointer_expression "*plVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0028a24a;" goto statement_identifier ;)) })) (expression_statement "lVar8 = lVar11;" (assignment_expression "lVar8 = lVar11" identifier = identifier) ;) (expression_statement "lVar6 = *(long *)(lVar11 + 0x10);" (assignment_expression "lVar6 = *(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_0028a24a:\n                  bVar23 = lVar10 == lVar11;" statement_identifier : (expression_statement "bVar23 = lVar10 == lVar11;" (assignment_expression "bVar23 = lVar10 == lVar11" identifier = (binary_expression "lVar10 == lVar11" identifier == identifier)) ;)) (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" identifier = identifier) ;) (if_statement "if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;" if (parenthesized_expression "(((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28)))))" ( (binary_expression "((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))" (parenthesized_expression "((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20)))" ( (binary_expression "(bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))" (parenthesized_expression "(bVar23)" ( 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 "((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))" ( (parenthesized_expression "(local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28)))" ( (comma_expression "local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))" (assignment_expression "local_58 = param_3" identifier = identifier) , (binary_expression "param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (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_0028a5e0;" goto statement_identifier ;)) }))) (for_statement "for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }" for ( (assignment_expression "puVar1 = *(undefined8 **)(lVar15 + 0x50)" identifier = (pointer_expression "*(undefined8 **)(lVar15 + 0x50)" * (cast_expression "(undefined8 **)(lVar15 + 0x50)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 0x50)" ( (binary_expression "lVar15 + 0x50" identifier + number_literal) ))))) ; (binary_expression "puVar1 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar1 = (undefined8 *)*puVar1" identifier = (cast_expression "(undefined8 *)*puVar1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ) (compound_statement "{\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }" { (expression_statement "local_d8 = lVar11 + 0x30;" (assignment_expression "local_d8 = lVar11 + 0x30" identifier = (binary_expression "lVar11 + 0x30" identifier + number_literal)) ;) (expression_statement "FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);" (call_expression "FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1)" identifier (argument_list "(lVar11 + 0x30,puVar1 + 1,&local_d8,1)" ( (binary_expression "lVar11 + 0x30" identifier + number_literal) , (binary_expression "puVar1 + 1" identifier + number_literal) , (pointer_expression "&local_d8" & identifier) , number_literal ))) ;) })) })) })) })) })) }) (else_clause "else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }" else (compound_statement "{\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }" { (if_statement "if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" if (parenthesized_expression "(uVar12 < *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar12 < *(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_0028a4f8:\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_0028a4f8:\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 "uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));" (assignment_expression "uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120))" identifier = (call_expression "(ulong)(uVar12 - *(uint *)(param_3 + 0x120))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 - *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar12 - *(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) <= uVar19) {\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) <= uVar19)" ( (binary_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19" (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) + uVar19 * 8);" (assignment_expression "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8)" identifier = (pointer_expression "*(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8)" * (cast_expression "(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_3 + 0x130) + uVar19 * 8)" ( (binary_expression "*(long *)(param_3 + 0x130) + uVar19 * 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 "uVar19 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (local_88 == (byte *)0x0) goto LAB_0028a4f8;" 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_0028a4f8;" 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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }" { (expression_statement "pbVar17 = *(byte **)(local_88 + 0x40);" (assignment_expression "pbVar17 = *(byte **)(local_88 + 0x40)" identifier = (pointer_expression "*(byte **)(local_88 + 0x40)" * (cast_expression "(byte **)(local_88 + 0x40)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_120 = *(byte **)(local_88 + 0x10);" (assignment_expression "local_120 = *(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_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" identifier = (binary_expression "pbVar17 + uVar2" identifier + identifier)) ;) (if_statement "if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }" if (parenthesized_expression "((local_120[0x3c] & 1) == 0)" ( (binary_expression "(local_120[0x3c] & 1) == 0" (parenthesized_expression "(local_120[0x3c] & 1)" ( (binary_expression "local_120[0x3c] & 1" (subscript_expression "local_120[0x3c]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }" { (expression_statement "local_104 = *(uint *)(local_88 + 0x18);" (assignment_expression "local_104 = *(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 "bVar14 = local_88[0x3b] >> 5 & 1;" (assignment_expression "bVar14 = 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 "uVar20 = (local_88[0x38] & 0xf) < 2;" (assignment_expression "uVar20 = (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 "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)) ;) (if_statement "if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }" if (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = local_135 == '\0';" (assignment_expression "uVar24 = local_135 == '\0'" identifier = (binary_expression "local_135 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }" if (parenthesized_expression "(!(bool)uVar24)" ( (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }" { (expression_statement "uVar20 = false;" (assignment_expression "uVar20 = false" identifier = false) ;) (expression_statement "uVar24 = bVar14 == 0;" (assignment_expression "uVar24 = bVar14 == 0" identifier = (binary_expression "bVar14 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }" if (parenthesized_expression "(!(bool)uVar24)" ( (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }" { (expression_statement "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(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 "lVar15 = 0x16;" (assignment_expression "lVar15 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar13;" (assignment_expression "pbVar16 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_"" identifier = (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content "))) ;) (do_statement "do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);" do (compound_statement "{\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  }" { (expression_statement "bVar23 = (bool)uVar20;" (assignment_expression "bVar23 = (bool)uVar20" identifier = (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar20 = *pbVar16 < *pbVar18;" (assignment_expression "uVar20 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar24 = *pbVar16 == *pbVar18;" (assignment_expression "uVar24 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar23 = (bool)uVar20;" (assignment_expression "bVar23 = (bool)uVar20" identifier = (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) }) while (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;" (assignment_expression "uVar24 = (!bVar23 && !(bool)uVar24) == bVar23" identifier = (binary_expression "(!bVar23 && !(bool)uVar24) == bVar23" (parenthesized_expression "(!bVar23 && !(bool)uVar24)" ( (binary_expression "!bVar23 && !(bool)uVar24" (unary_expression "!bVar23" ! identifier) && (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == identifier)) ;) (if_statement "if ((bool)uVar24) goto LAB_0028a359;" if (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) (goto_statement "goto LAB_0028a359;" goto statement_identifier ;)) (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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" ( (type_descriptor "char *" primitive_type (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) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }" { (expression_statement "uVar20 = false;" (assignment_expression "uVar20 = false" identifier = false) ;) (expression_statement "uVar24 = (local_88[0x39] & 3) == 0;" (assignment_expression "uVar24 = (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)) ;) (if_statement "if (!(bool)uVar24) goto LAB_0028a6f0;" if (parenthesized_expression "(!(bool)uVar24)" ( (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0028a6f0;" goto statement_identifier ;)) })) (expression_statement "uVar12 = local_118 - 0x24;" (assignment_expression "uVar12 = local_118 - 0x24" identifier = (binary_expression "local_118 - 0x24" identifier - number_literal)) ;) (expression_statement "uVar20 = uVar12 < 0x27;" (assignment_expression "uVar20 = uVar12 < 0x27" identifier = (binary_expression "uVar12 < 0x27" identifier < number_literal)) ;) (expression_statement "uVar24 = uVar12 == 0x27;" (assignment_expression "uVar24 = uVar12 == 0x27" identifier = (binary_expression "uVar12 == 0x27" identifier == number_literal)) ;) (if_statement "if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;" if (parenthesized_expression "((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))" ( (binary_expression "(0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20)" (parenthesized_expression "(0x27 < uVar12)" ( (binary_expression "0x27 < uVar12" number_literal < identifier) )) || (parenthesized_expression "(uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20)" ( (comma_expression "uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20" (assignment_expression "uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0" identifier = (binary_expression "(0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0" (parenthesized_expression "(0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1)" ( (binary_expression "0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1" (binary_expression "0xf03fffffffU >> ((ulong)uVar12 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)uVar12 & 0x3f)" ( (binary_expression "(ulong)uVar12 & 0x3f" (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal)) , (unary_expression "!(bool)uVar20" ! (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_0028a359;" goto statement_identifier ;)) })) (labeled_statement "LAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;" statement_identifier : (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_120;" (assignment_expression "local_b8 = local_120" identifier = identifier) ;) (expression_statement "local_b0 = local_104;" (assignment_expression "local_b0 = local_104" 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 "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(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))) ;) }) (else_clause "else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }" else (compound_statement "{\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }" { (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(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 "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" identifier = number_literal) ;) (expression_statement "local_120 = (byte *)0x0;" (assignment_expression "local_120 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }" else (compound_statement "{\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }" { (expression_statement "pbVar17 = *(byte **)(local_88 + 0x40);" (assignment_expression "pbVar17 = *(byte **)(local_88 + 0x40)" identifier = (pointer_expression "*(byte **)(local_88 + 0x40)" * (cast_expression "(byte **)(local_88 + 0x40)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(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 "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" identifier = number_literal) ;) (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "local_120 = (byte *)0x0;" (assignment_expression "local_120 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" identifier = (binary_expression "pbVar17 + uVar2" identifier + identifier)) ;) }))) (labeled_statement "LAB_0028a359:\n        lVar15 = 8;" statement_identifier : (expression_statement "lVar15 = 8;" (assignment_expression "lVar15 = 8" identifier = number_literal) ;)) (expression_statement "pbVar16 = (byte *)"__start_";" (assignment_expression "pbVar16 = (byte *)"__start_"" identifier = (cast_expression "(byte *)"__start_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__start_"" " string_content "))) ;) (expression_statement "pbVar18 = pbVar13;" (assignment_expression "pbVar18 = pbVar13" identifier = identifier) ;) (do_statement "do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);" do (compound_statement "{\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar20 = *pbVar16 < *pbVar18;" (assignment_expression "uVar20 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar24 = *pbVar16 == *pbVar18;" (assignment_expression "uVar24 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;" (assignment_expression "bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" identifier = (binary_expression "(!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" (parenthesized_expression "(!(bool)uVar20 && !(bool)uVar24)" ( (binary_expression "!(bool)uVar20 && !(bool)uVar24" (unary_expression "!(bool)uVar20" ! (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n          pbVar13 = pbVar13 + 8;\n        }" { (expression_statement "pbVar13 = pbVar13 + 8;" (assignment_expression "pbVar13 = pbVar13 + 8" identifier = (binary_expression "pbVar13 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }" else (compound_statement "{\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }" { (expression_statement "lVar15 = 7;" (assignment_expression "lVar15 = 7" identifier = number_literal) ;) (expression_statement "pbVar16 = (byte *)"__stop_";" (assignment_expression "pbVar16 = (byte *)"__stop_"" identifier = (cast_expression "(byte *)"__stop_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__stop_"" " string_content "))) ;) (expression_statement "pbVar18 = pbVar13;" (assignment_expression "pbVar18 = pbVar13" identifier = identifier) ;) (do_statement "do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);" do (compound_statement "{\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar16 < *pbVar18;" (assignment_expression "bVar23 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar25 = *pbVar16 == *pbVar18;" (assignment_expression "bVar25 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "pbVar13 = pbVar13 + 7;" (assignment_expression "pbVar13 = pbVar13 + 7" identifier = (binary_expression "pbVar13 + 7" identifier + number_literal)) ;) (if_statement "if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }" if (parenthesized_expression "((!bVar23 && !bVar25) != bVar23)" ( (binary_expression "(!bVar23 && !bVar25) != bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier) )) (compound_statement "{\n            pbVar13 = local_140;\n          }" { (expression_statement "pbVar13 = local_140;" (assignment_expression "pbVar13 = local_140" identifier = identifier) ;) })) }))) (expression_statement "local_140 = pbVar13;" (assignment_expression "local_140 = pbVar13" identifier = identifier) ;) (if_statement "if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }" { (if_statement "if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (compound_statement "{\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&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_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }" else (compound_statement "{\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }" { (expression_statement "local_58 = local_120;" (assignment_expression "local_58 = local_120" identifier = identifier) ;) (expression_statement "local_50 = CONCAT44(local_50._4_4_,local_104);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,local_104)" identifier = (call_expression "CONCAT44(local_50._4_4_,local_104)" identifier (argument_list "(local_50._4_4_,local_104)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "FUN_001a7180(local_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) }))) (expression_statement "puVar1 = *(undefined8 **)(local_158 + 8);" (assignment_expression "puVar1 = *(undefined8 **)(local_158 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_158 + 8)" * (cast_expression "(undefined8 **)(local_158 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_158 + 8)" ( (binary_expression "local_158 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }" if (parenthesized_expression "(puVar1 == *(undefined8 **)(local_158 + 0x10))" ( (binary_expression "puVar1 == *(undefined8 **)(local_158 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_158 + 0x10)" * (cast_expression "(undefined8 **)(local_158 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_158 + 0x10)" ( (binary_expression "local_158 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }" { (expression_statement "FUN_001a5d30(local_158,puVar1,&local_88);" (call_expression "FUN_001a5d30(local_158,puVar1,&local_88)" identifier (argument_list "(local_158,puVar1,&local_88)" ( identifier , identifier , (pointer_expression "&local_88" & identifier) ))) ;) }) (else_clause "else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }" else (compound_statement "{\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }" { (expression_statement "*puVar1 = local_88;" (assignment_expression "*puVar1 = local_88" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_158 + 8) = puVar1 + 1;" (assignment_expression "*(undefined8 **)(local_158 + 8) = puVar1 + 1" (pointer_expression "*(undefined8 **)(local_158 + 8)" * (cast_expression "(undefined8 **)(local_158 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_158 + 8)" ( (binary_expression "local_158 + 8" identifier + number_literal) )))) = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_58 = pbVar17;" (assignment_expression "local_58 = pbVar17" identifier = identifier) ;) (expression_statement "local_50 = uVar2;" (assignment_expression "local_50 = uVar2" identifier = identifier) ;) (expression_statement "FUN_001a74a0(local_168,&local_58);" (call_expression "FUN_001a74a0(local_168,&local_58)" identifier (argument_list "(local_168,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "local_58 = (byte *)*param_5;" (assignment_expression "local_58 = (byte *)*param_5" identifier = (cast_expression "(byte *)*param_5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "puVar1 = *(undefined8 **)(local_148 + 8);" (assignment_expression "puVar1 = *(undefined8 **)(local_148 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_148 + 8)" * (cast_expression "(undefined8 **)(local_148 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" if (parenthesized_expression "(puVar1 == *(undefined8 **)(local_148 + 0x10))" ( (binary_expression "puVar1 == *(undefined8 **)(local_148 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_148 + 0x10)" * (cast_expression "(undefined8 **)(local_148 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 0x10)" ( (binary_expression "local_148 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }" { (expression_statement "FUN_001a6070(local_148,puVar1,&local_58);" (call_expression "FUN_001a6070(local_148,puVar1,&local_58)" identifier (argument_list "(local_148,puVar1,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" else (compound_statement "{\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" { (expression_statement "*puVar1 = local_58;" (assignment_expression "*puVar1 = local_58" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_148 + 8) = puVar1 + 1;" (assignment_expression "*(undefined8 **)(local_148 + 8) = puVar1 + 1" (pointer_expression "*(undefined8 **)(local_148 + 8)" * (cast_expression "(undefined8 **)(local_148 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) )))) = (binary_expression "puVar1 + 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_170,&local_98);" (call_expression "FUN_001a7630(local_170,&local_98)" identifier (argument_list "(local_170,&local_98)" ( identifier , (pointer_expression "&local_98" & identifier) ))) ;) })) (if_statement "if (bVar14 != 0) goto LAB_0028a049;" if (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0028a049;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00289ec8:\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 "param_5 = param_5 + 3;" (assignment_expression "param_5 = param_5 + 3" identifier = (binary_expression "param_5 + 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<64, false, (anonymous namespace)::Target_tilegx<64,\n   false>, (anonymous namespace)::Target_tilegx<64, false>::Scan, gold::Default_classify_reloc<4,\n   64, false> > */\n\nvoid gold::\n     gc_process_relocs<64,_false,_(anonymous_namespace)::Target_tilegx<64,_false>,_(anonymous_namespace)::Target_tilegx<64,_false>::Scan,_gold::Default_classify_reloc<4,_64,_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_tilegx<64,_false> *target,\n               Sized_relobj_file<64,_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  _Base_ptr *pp_Var1;\n  iterator iVar2;\n  ulong uVar3;\n  Garbage_collection *pGVar4;\n  _Base_ptr p_Var5;\n  Target *pTVar6;\n  _Base_ptr p_Var7;\n  iterator __position;\n  code *pcVar8;\n  char cVar9;\n  iterator iVar10;\n  size_t sVar11;\n  iterator iVar12;\n  _Base_ptr p_Var13;\n  Xindex *this;\n  const_iterator cVar14;\n  uint uVar15;\n  uint uVar16;\n  long lVar17;\n  byte bVar18;\n  _func_int_varargs **pp_Var19;\n  pointer pcVar20;\n  byte bVar21;\n  _func_int_varargs **pp_Var22;\n  byte *pbVar23;\n  _Alloc_hider _Var24;\n  Relobj *pRVar25;\n  undefined4 in_register_00000084;\n  ulong *puVar26;\n  ulong uVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  bool bVar30;\n  bool bVar31;\n  undefined1 uVar32;\n  bool bVar33;\n  byte bVar34;\n  Reloc_addend_size_info *local_170;\n  Addend_info *local_168;\n  mapped_type *local_160;\n  Symbol_info *local_158;\n  Offset_info *local_148;\n  _func_int_varargs **local_140;\n  char local_135;\n  long local_130;\n  Output_segment *local_120;\n  int local_118;\n  uint local_104;\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_tilegx<64,_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  puVar26 = (ulong *)CONCAT44(in_register_00000084,src_indx);\n  bVar34 = 0;\n  uVar15 = (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 {\n    (**(code **)(*(long *)&target->tilegx_info + 0x80))\n              (&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }\n  _Var24._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_00289d45:\n    bVar30 = false;\n    local_170 = (Reloc_addend_size_info *)0x0;\n    local_148 = (Offset_info *)0x0;\n    local_168 = (Addend_info *)0x0;\n    local_158 = (Symbol_info *)0x0;\n    local_160 = (mapped_type *)0x0;\n  }\n  else {\n    pcVar20 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar28 = 0;\n    uVar32 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar32) {\n      sVar11 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var24._M_p + sVar11;\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               _Var24._M_p,pcVar20);\n    lVar17 = 5;\n    pbVar23 = (byte *)".text";\n    pRVar25 = src_id.first;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      uVar28 = *pbVar23 < bVar21;\n      uVar32 = *pbVar23 == bVar21;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n    } while ((bool)uVar32);\n    bVar30 = false;\n    bVar31 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n    if (!bVar31) {\n      lVar17 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar25 = src_id.first;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar30 = *pbVar23 < bVar21;\n        bVar31 = *pbVar23 == bVar21;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      if ((!bVar30 && !bVar31) != bVar30) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00289d45;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = uVar15;\n    src_id.first = (Relobj *)target;\n    local_160 = 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_158 = &local_160->symbol_info;\n    local_148 = &local_160->offset_info;\n    local_168 = &local_160->addend_info;\n    local_170 = &local_160->reloc_addend_size_info;\n    bVar30 = true;\n  }\n  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar9 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar9 != '\0')) {\n    pcVar8 = *(code **)(*(long *)param_2 + 0x10);\n    if (pcVar8 != Target::section_may_have_icf_unsafe_pointers) {\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00289da4;\n    }\n    pcVar8 = *(code **)(*(long *)param_2 + 0x98);\n    bVar31 = pcVar8 < Target::do_section_may_have_icf_unsafe_pointers;\n    bVar33 = pcVar8 == Target::do_section_may_have_icf_unsafe_pointers;\n    if (!bVar33) {\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00289da4;\n    }\n    lVar17 = 0xc;\n    pbVar23 = (byte *)".rodata._ZTV";\n    _Var24 = src_section_name._M_dataplus;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar31 = *pbVar23 < (byte)*_Var24._M_p;\n      bVar33 = *pbVar23 == *_Var24._M_p;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n    } while (bVar33);\n    bVar29 = false;\n    bVar31 = (!bVar31 && !bVar33) == bVar31;\n    if (!bVar31) {\n      lVar17 = 0x11;\n      pbVar23 = (byte *)".data.rel.ro._ZTV";\n      _Var24 = src_section_name._M_dataplus;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n        bVar31 = *pbVar23 == *_Var24._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      bVar33 = false;\n      bVar31 = (!bVar29 && !bVar31) == bVar29;\n      if (!bVar31) {\n        lVar17 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var24 = src_section_name._M_dataplus;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n          bVar31 = *pbVar23 == *_Var24._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n        } while (bVar31);\n        bVar29 = false;\n        bVar31 = (!bVar33 && !bVar31) == bVar33;\n        if (!bVar31) {\n          lVar17 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var24 = src_section_name._M_dataplus;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          } while (bVar31);\n          bVar33 = false;\n          bVar31 = (!bVar29 && !bVar31) == bVar29;\n          if (!bVar31) {\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00289da4:\n  if (prelocs != (uchar *)0x0) {\n    local_140 = (_func_int_varargs **)0x0;\n    local_100 = (uchar *)0x0;\n    do {\n      uVar27 = puVar26[1];\n      uVar3 = puVar26[2];\n      uVar16 = (uint)(uVar27 >> 0x20);\n      local_118 = (int)uVar27;\n      if (uVar27 >> 0x20 < 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        local_104 = (uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 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        }\n        local_120 = (Output_segment *)target;\n        if (uVar15 != local_104) {\nLAB_0028a049:\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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar16 < *(uint *)&target[1].field_0x88) {\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88);\n        if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;\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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }\nLAB_0028a359:\n        lVar17 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var22 = pp_Var19;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        } while ((bool)uVar32);\n        bVar31 = false;\n        bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n        if (bVar33) {\n          pp_Var19 = pp_Var19 + 1;\n        }\n        else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }\n        local_140 = pp_Var19;\n        if (bVar30) {\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }\n        if (bVar21 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      puVar26 = puVar26 + 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<64,_false,_(anonymous_namespace)::Target_tilegx<64,_false>,_(anonymous_namespace)::Target_tilegx<64,_false>::Scan,_gold::Default_classify_reloc<4,_64,_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_tilegx<64,_false> *target,\n               Sized_relobj_file<64,_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  _Base_ptr *pp_Var1;" primitive_type (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , identifier (ERROR ",_(anonymous_namespace)::Target_tilegx<64,_false>,_(anonymous_namespace)::Target_tilegx<64,_false>::Scan,_gold::Default_classify_reloc<4" , (function_declarator "_(anonymous_namespace)::Target_tilegx<64,_false>,_(anonymous_namespace)::Target_tilegx<64,_false>::Scan" identifier (parameter_list "(anonymous_namespace)" ( (parameter_declaration "anonymous_namespace" type_identifier) )) (ERROR "::" : :) identifier (ERROR "<64," < number_literal ,) identifier (ERROR ">," > ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))) (ERROR "::" : :) identifier (ERROR "<64," < number_literal ,) identifier (ERROR ">::" > : :) identifier) , identifier : : identifier < number_literal) , identifier , (ERROR "_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_tilegx<64,_false> *target,\n               Sized_relobj_file<64,_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  _Base_ptr" (function_declarator "_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_tilegx<64,_false> *target,\n               Sized_relobj_file<64,_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_tilegx<64,_false> *target,\n               Sized_relobj_file<64,_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_tilegx" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *target" type_identifier (ERROR ">" >) (pointer_declarator "*target" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<64" < 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 "*pp_Var1" * identifier) ;) (declaration "iterator iVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "Garbage_collection *pGVar4;" type_identifier (pointer_declarator "*pGVar4" * identifier) ;) (declaration "_Base_ptr p_Var5;" type_identifier identifier ;) (declaration "Target *pTVar6;" type_identifier (pointer_declarator "*pTVar6" * identifier) ;) (declaration "_Base_ptr p_Var7;" type_identifier identifier ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "iterator iVar10;" type_identifier identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "iterator iVar12;" type_identifier identifier ;) (declaration "_Base_ptr p_Var13;" type_identifier identifier ;) (declaration "Xindex *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "const_iterator cVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var19;" type_identifier (pointer_declarator "**pp_Var19" * (pointer_declarator "*pp_Var19" * identifier)) ;) (declaration "pointer pcVar20;" type_identifier identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var22;" type_identifier (pointer_declarator "**pp_Var22" * (pointer_declarator "*pp_Var22" * identifier)) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "_Alloc_hider _Var24;" type_identifier identifier ;) (declaration "Relobj *pRVar25;" type_identifier (pointer_declarator "*pRVar25" * identifier) ;) (declaration "undefined4 in_register_00000084;" type_identifier identifier ;) (declaration "ulong *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "undefined1 uVar28;" type_identifier identifier ;) (declaration "bool bVar29;" primitive_type identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "undefined1 uVar32;" type_identifier identifier ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "byte bVar34;" type_identifier identifier ;) (declaration "Reloc_addend_size_info *local_170;" type_identifier (pointer_declarator "*local_170" * identifier) ;) (declaration "Addend_info *local_168;" type_identifier (pointer_declarator "*local_168" * identifier) ;) (declaration "mapped_type *local_160;" type_identifier (pointer_declarator "*local_160" * identifier) ;) (declaration "Symbol_info *local_158;" type_identifier (pointer_declarator "*local_158" * identifier) ;) (declaration "Offset_info *local_148;" type_identifier (pointer_declarator "*local_148" * identifier) ;) (declaration "_func_int_varargs **local_140;" type_identifier (pointer_declarator "**local_140" * (pointer_declarator "*local_140" * identifier)) ;) (declaration "char local_135;" primitive_type identifier ;) (declaration "long local_130;" (sized_type_specifier "long" long) identifier ;) (declaration "Output_segment *local_120;" type_identifier (pointer_declarator "*local_120" * identifier) ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "uint local_104;" type_identifier 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_tilegx<64,_false> *local_a8;" (update_expression "Target_tilegx<64,_false> *local_a8" (binary_expression "Target_tilegx<64,_false> *local_a8" (binary_expression "Target_tilegx<64" 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 "puVar26 = (ulong *)CONCAT44(in_register_00000084,src_indx);" (assignment_expression "puVar26 = (ulong *)CONCAT44(in_register_00000084,src_indx)" identifier = (cast_expression "(ulong *)CONCAT44(in_register_00000084,src_indx)" ( (type_descriptor "ulong *" 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 "bVar34 = 0;" (assignment_expression "bVar34 = 0" identifier = number_literal) ;) (expression_statement "uVar15 = (uint)src_obj;" (assignment_expression "uVar15 = (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 {\n    (**(code **)(*(long *)&target->tilegx_info + 0x80))\n              (&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 {\n    (**(code **)(*(long *)&target->tilegx_info + 0x80))\n              (&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }" else (compound_statement "{\n    (**(code **)(*(long *)&target->tilegx_info + 0x80))\n              (&src_section_name,target,(ulong)src_obj & 0xffffffff);\n  }" { (expression_statement "(**(code **)(*(long *)&target->tilegx_info + 0x80))\n              (&src_section_name,target,(ulong)src_obj & 0xffffffff);" (call_expression "(**(code **)(*(long *)&target->tilegx_info + 0x80))\n              (&src_section_name,target,(ulong)src_obj & 0xffffffff)" (parenthesized_expression "(**(code **)(*(long *)&target->tilegx_info + 0x80))" ( (pointer_expression "**(code **)(*(long *)&target->tilegx_info + 0x80)" * (pointer_expression "*(code **)(*(long *)&target->tilegx_info + 0x80)" * (cast_expression "(code **)(*(long *)&target->tilegx_info + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)&target->tilegx_info + 0x80)" ( (binary_expression "*(long *)&target->tilegx_info + 0x80" (pointer_expression "*(long *)&target->tilegx_info" * (cast_expression "(long *)&target->tilegx_info" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target->tilegx_info" & (field_expression "target->tilegx_info" identifier -> field_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 "_Var24._M_p = src_section_name._M_dataplus._M_p;" (assignment_expression "_Var24._M_p = src_section_name._M_dataplus._M_p" (field_expression "_Var24._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_00289d45:\n    bVar30 = false;\n    local_170 = (Reloc_addend_size_info *)0x0;\n    local_148 = (Offset_info *)0x0;\n    local_168 = (Addend_info *)0x0;\n    local_158 = (Symbol_info *)0x0;\n    local_160 = (mapped_type *)0x0;\n  }\n  else {\n    pcVar20 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar28 = 0;\n    uVar32 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar32) {\n      sVar11 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var24._M_p + sVar11;\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               _Var24._M_p,pcVar20);\n    lVar17 = 5;\n    pbVar23 = (byte *)".text";\n    pRVar25 = src_id.first;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      uVar28 = *pbVar23 < bVar21;\n      uVar32 = *pbVar23 == bVar21;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n    } while ((bool)uVar32);\n    bVar30 = false;\n    bVar31 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n    if (!bVar31) {\n      lVar17 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar25 = src_id.first;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar30 = *pbVar23 < bVar21;\n        bVar31 = *pbVar23 == bVar21;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      if ((!bVar30 && !bVar31) != bVar30) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00289d45;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = uVar15;\n    src_id.first = (Relobj *)target;\n    local_160 = 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_158 = &local_160->symbol_info;\n    local_148 = &local_160->offset_info;\n    local_168 = &local_160->addend_info;\n    local_170 = &local_160->reloc_addend_size_info;\n    bVar30 = 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_00289d45:\n    bVar30 = false;\n    local_170 = (Reloc_addend_size_info *)0x0;\n    local_148 = (Offset_info *)0x0;\n    local_168 = (Addend_info *)0x0;\n    local_158 = (Symbol_info *)0x0;\n    local_160 = (mapped_type *)0x0;\n  }" { (labeled_statement "LAB_00289d45:\n    bVar30 = false;" statement_identifier : (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;)) (expression_statement "local_170 = (Reloc_addend_size_info *)0x0;" (assignment_expression "local_170 = (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_148 = (Offset_info *)0x0;" (assignment_expression "local_148 = (Offset_info *)0x0" identifier = (cast_expression "(Offset_info *)0x0" ( (type_descriptor "Offset_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_168 = (Addend_info *)0x0;" (assignment_expression "local_168 = (Addend_info *)0x0" identifier = (cast_expression "(Addend_info *)0x0" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_158 = (Symbol_info *)0x0;" (assignment_expression "local_158 = (Symbol_info *)0x0" identifier = (cast_expression "(Symbol_info *)0x0" ( (type_descriptor "Symbol_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_160 = (mapped_type *)0x0;" (assignment_expression "local_160 = (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    uVar28 = 0;\n    uVar32 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar32) {\n      sVar11 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var24._M_p + sVar11;\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               _Var24._M_p,pcVar20);\n    lVar17 = 5;\n    pbVar23 = (byte *)".text";\n    pRVar25 = src_id.first;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      uVar28 = *pbVar23 < bVar21;\n      uVar32 = *pbVar23 == bVar21;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n    } while ((bool)uVar32);\n    bVar30 = false;\n    bVar31 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n    if (!bVar31) {\n      lVar17 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar25 = src_id.first;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar30 = *pbVar23 < bVar21;\n        bVar31 = *pbVar23 == bVar21;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      if ((!bVar30 && !bVar31) != bVar30) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00289d45;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = uVar15;\n    src_id.first = (Relobj *)target;\n    local_160 = 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_158 = &local_160->symbol_info;\n    local_148 = &local_160->offset_info;\n    local_168 = &local_160->addend_info;\n    local_170 = &local_160->reloc_addend_size_info;\n    bVar30 = true;\n  }" else (compound_statement "{\n    pcVar20 = (pointer)0xffffffffffffffff;\n    src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n    uVar28 = 0;\n    uVar32 = src_section_name._M_dataplus._M_p == (pointer)0x0;\n    if (!(bool)uVar32) {\n      sVar11 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var24._M_p + sVar11;\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               _Var24._M_p,pcVar20);\n    lVar17 = 5;\n    pbVar23 = (byte *)".text";\n    pRVar25 = src_id.first;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      uVar28 = *pbVar23 < bVar21;\n      uVar32 = *pbVar23 == bVar21;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n    } while ((bool)uVar32);\n    bVar30 = false;\n    bVar31 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n    if (!bVar31) {\n      lVar17 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar25 = src_id.first;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar30 = *pbVar23 < bVar21;\n        bVar31 = *pbVar23 == bVar21;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      if ((!bVar30 && !bVar31) != bVar30) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00289d45;\n      }\n    }\n    if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n      operator_delete(src_id.first);\n    }\n    src_id.second = uVar15;\n    src_id.first = (Relobj *)target;\n    local_160 = 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_158 = &local_160->symbol_info;\n    local_148 = &local_160->offset_info;\n    local_168 = &local_160->addend_info;\n    local_170 = &local_160->reloc_addend_size_info;\n    bVar30 = 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 "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar32 = src_section_name._M_dataplus._M_p == (pointer)0x0;" (assignment_expression "uVar32 = 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)uVar32) {\n      sVar11 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var24._M_p + sVar11;\n    }" if (parenthesized_expression "(!(bool)uVar32)" ( (unary_expression "!(bool)uVar32" ! (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      sVar11 = strlen(src_section_name._M_dataplus._M_p);\n      pcVar20 = _Var24._M_p + sVar11;\n    }" { (expression_statement "sVar11 = strlen(src_section_name._M_dataplus._M_p);" (assignment_expression "sVar11 = 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 = _Var24._M_p + sVar11;" (assignment_expression "pcVar20 = _Var24._M_p + sVar11" identifier = (binary_expression "_Var24._M_p + sVar11" (field_expression "_Var24._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               _Var24._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               _Var24._M_p,pcVar20);" (binary_expression "_M_construct<char_const*>\n              ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var24._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               _Var24._M_p,pcVar20)" ( (comma_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&src_id,\n               _Var24._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 "_Var24._M_p,pcVar20" (field_expression "_Var24._M_p" identifier . field_identifier) , identifier)) ))) ;)) (expression_statement "lVar17 = 5;" (assignment_expression "lVar17 = 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 "pRVar25 = src_id.first;" (assignment_expression "pRVar25 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      uVar28 = *pbVar23 < bVar21;\n      uVar32 = *pbVar23 == bVar21;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n    } while ((bool)uVar32);" do (compound_statement "{\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n      uVar28 = *pbVar23 < bVar21;\n      uVar32 = *pbVar23 == bVar21;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n    }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;" (assignment_expression "bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar25->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar25->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar25->super_Object)._vptr_Object" & (field_expression "(pRVar25->super_Object)._vptr_Object" (parenthesized_expression "(pRVar25->super_Object)" ( (field_expression "pRVar25->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "uVar28 = *pbVar23 < bVar21;" (assignment_expression "uVar28 = *pbVar23 < bVar21" identifier = (binary_expression "*pbVar23 < bVar21" (pointer_expression "*pbVar23" * identifier) < identifier)) ;) (expression_statement "uVar32 = *pbVar23 == bVar21;" (assignment_expression "uVar32 = *pbVar23 == bVar21" identifier = (binary_expression "*pbVar23 == bVar21" (pointer_expression "*pbVar23" * identifier) == identifier)) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar34 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar34 * -2" identifier + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);" (assignment_expression "pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1)" identifier = (cast_expression "(Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pRVar25 + (ulong)bVar34 * -2 + 1)" ( (binary_expression "(long)pRVar25 + (ulong)bVar34 * -2 + 1" (binary_expression "(long)pRVar25 + (ulong)bVar34 * -2" (cast_expression "(long)pRVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "((bool)uVar32)" ( (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;) (expression_statement "bVar31 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;" (assignment_expression "bVar31 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28" identifier = (binary_expression "(!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28" (parenthesized_expression "(!(bool)uVar28 && !(bool)uVar32)" ( (binary_expression "!(bool)uVar28 && !(bool)uVar32" (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar32" ! (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar31) {\n      lVar17 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar25 = src_id.first;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar30 = *pbVar23 < bVar21;\n        bVar31 = *pbVar23 == bVar21;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      if ((!bVar30 && !bVar31) != bVar30) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00289d45;\n      }\n    }" if (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) )) (compound_statement "{\n      lVar17 = 0xf;\n      pbVar23 = (byte *)".gnu.linkonce.t";\n      pRVar25 = src_id.first;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar30 = *pbVar23 < bVar21;\n        bVar31 = *pbVar23 == bVar21;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      if ((!bVar30 && !bVar31) != bVar30) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00289d45;\n      }\n    }" { (expression_statement "lVar17 = 0xf;" (assignment_expression "lVar17 = 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 "pRVar25 = src_id.first;" (assignment_expression "pRVar25 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar30 = *pbVar23 < bVar21;\n        bVar31 = *pbVar23 == bVar21;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);" do (compound_statement "{\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;\n        bVar30 = *pbVar23 < bVar21;\n        bVar31 = *pbVar23 == bVar21;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);\n      }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object;" (assignment_expression "bVar21 = *(byte *)&(pRVar25->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar25->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar25->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar25->super_Object)._vptr_Object" & (field_expression "(pRVar25->super_Object)._vptr_Object" (parenthesized_expression "(pRVar25->super_Object)" ( (field_expression "pRVar25->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar30 = *pbVar23 < bVar21;" (assignment_expression "bVar30 = *pbVar23 < bVar21" identifier = (binary_expression "*pbVar23 < bVar21" (pointer_expression "*pbVar23" * identifier) < identifier)) ;) (expression_statement "bVar31 = *pbVar23 == bVar21;" (assignment_expression "bVar31 = *pbVar23 == bVar21" identifier = (binary_expression "*pbVar23 == bVar21" (pointer_expression "*pbVar23" * identifier) == identifier)) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar34 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar34 * -2" identifier + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1);" (assignment_expression "pRVar25 = (Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1)" identifier = (cast_expression "(Relobj *)((long)pRVar25 + (ulong)bVar34 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pRVar25 + (ulong)bVar34 * -2 + 1)" ( (binary_expression "(long)pRVar25 + (ulong)bVar34 * -2 + 1" (binary_expression "(long)pRVar25 + (ulong)bVar34 * -2" (cast_expression "(long)pRVar25" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (if_statement "if ((!bVar30 && !bVar31) != bVar30) {\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00289d45;\n      }" if (parenthesized_expression "((!bVar30 && !bVar31) != bVar30)" ( (binary_expression "(!bVar30 && !bVar31) != bVar30" (parenthesized_expression "(!bVar30 && !bVar31)" ( (binary_expression "!bVar30 && !bVar31" (unary_expression "!bVar30" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (src_id.first != (Relobj *)&stack0xffffffffffffffb8) {\n          operator_delete(src_id.first);\n        }\n        goto LAB_00289d45;\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_00289d45;" 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 = uVar15;" (assignment_expression "src_id.second = uVar15" (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_160 = 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_160 = 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_158 = &local_160->symbol_info;" (assignment_expression "local_158 = &local_160->symbol_info" identifier = (pointer_expression "&local_160->symbol_info" & (field_expression "local_160->symbol_info" identifier -> field_identifier))) ;) (expression_statement "local_148 = &local_160->offset_info;" (assignment_expression "local_148 = &local_160->offset_info" identifier = (pointer_expression "&local_160->offset_info" & (field_expression "local_160->offset_info" identifier -> field_identifier))) ;) (expression_statement "local_168 = &local_160->addend_info;" (assignment_expression "local_168 = &local_160->addend_info" identifier = (pointer_expression "&local_160->addend_info" & (field_expression "local_160->addend_info" identifier -> field_identifier))) ;) (expression_statement "local_170 = &local_160->reloc_addend_size_info;" (assignment_expression "local_170 = &local_160->reloc_addend_size_info" identifier = (pointer_expression "&local_160->reloc_addend_size_info" & (field_expression "local_160->reloc_addend_size_info" identifier -> field_identifier))) ;) (expression_statement "bVar30 = true;" (assignment_expression "bVar30 = true" identifier = true) ;) }))) (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if ((parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar9 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar9 != '\0')) {\n    pcVar8 = *(code **)(*(long *)param_2 + 0x10);\n    if (pcVar8 != Target::section_may_have_icf_unsafe_pointers) {\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00289da4;\n    }\n    pcVar8 = *(code **)(*(long *)param_2 + 0x98);\n    bVar31 = pcVar8 < Target::do_section_may_have_icf_unsafe_pointers;\n    bVar33 = pcVar8 == Target::do_section_may_have_icf_unsafe_pointers;\n    if (!bVar33) {\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00289da4;\n    }\n    lVar17 = 0xc;\n    pbVar23 = (byte *)".rodata._ZTV";\n    _Var24 = src_section_name._M_dataplus;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar31 = *pbVar23 < (byte)*_Var24._M_p;\n      bVar33 = *pbVar23 == *_Var24._M_p;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n    } while (bVar33);\n    bVar29 = false;\n    bVar31 = (!bVar31 && !bVar33) == bVar31;\n    if (!bVar31) {\n      lVar17 = 0x11;\n      pbVar23 = (byte *)".data.rel.ro._ZTV";\n      _Var24 = src_section_name._M_dataplus;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n        bVar31 = *pbVar23 == *_Var24._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      bVar33 = false;\n      bVar31 = (!bVar29 && !bVar31) == bVar29;\n      if (!bVar31) {\n        lVar17 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var24 = src_section_name._M_dataplus;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n          bVar31 = *pbVar23 == *_Var24._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n        } while (bVar31);\n        bVar29 = false;\n        bVar31 = (!bVar33 && !bVar31) == bVar33;\n        if (!bVar31) {\n          lVar17 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var24 = src_section_name._M_dataplus;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          } while (bVar31);\n          bVar33 = false;\n          bVar31 = (!bVar29 && !bVar31) == bVar29;\n          if (!bVar31) {\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar9 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar9 != '\0'))" ( (binary_expression "(parameters->options_->icf_status_ == ICF_SAFE) &&\n     (cVar9 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar9 != '\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 "(cVar9 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar9 != '\0')" ( (comma_expression "cVar9 = (**(code **)(*(long *)param_2 + 0x90))(param_2), cVar9 != '\0'" (assignment_expression "cVar9 = (**(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 "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    pcVar8 = *(code **)(*(long *)param_2 + 0x10);\n    if (pcVar8 != Target::section_may_have_icf_unsafe_pointers) {\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00289da4;\n    }\n    pcVar8 = *(code **)(*(long *)param_2 + 0x98);\n    bVar31 = pcVar8 < Target::do_section_may_have_icf_unsafe_pointers;\n    bVar33 = pcVar8 == Target::do_section_may_have_icf_unsafe_pointers;\n    if (!bVar33) {\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00289da4;\n    }\n    lVar17 = 0xc;\n    pbVar23 = (byte *)".rodata._ZTV";\n    _Var24 = src_section_name._M_dataplus;\n    do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar31 = *pbVar23 < (byte)*_Var24._M_p;\n      bVar33 = *pbVar23 == *_Var24._M_p;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n    } while (bVar33);\n    bVar29 = false;\n    bVar31 = (!bVar31 && !bVar33) == bVar31;\n    if (!bVar31) {\n      lVar17 = 0x11;\n      pbVar23 = (byte *)".data.rel.ro._ZTV";\n      _Var24 = src_section_name._M_dataplus;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n        bVar31 = *pbVar23 == *_Var24._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      bVar33 = false;\n      bVar31 = (!bVar29 && !bVar31) == bVar29;\n      if (!bVar31) {\n        lVar17 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var24 = src_section_name._M_dataplus;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n          bVar31 = *pbVar23 == *_Var24._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n        } while (bVar31);\n        bVar29 = false;\n        bVar31 = (!bVar33 && !bVar31) == bVar33;\n        if (!bVar31) {\n          lVar17 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var24 = src_section_name._M_dataplus;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          } while (bVar31);\n          bVar33 = false;\n          bVar31 = (!bVar29 && !bVar31) == bVar29;\n          if (!bVar31) {\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "pcVar8 = *(code **)(*(long *)param_2 + 0x10);" (assignment_expression "pcVar8 = *(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 (pcVar8 != Target::section_may_have_icf_unsafe_pointers) {\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00289da4;\n    }" if (parenthesized_expression "(pcVar8 != Target::section_may_have_icf_unsafe_pointers)" ( (ERROR "pcVar8 != Target::" (binary_expression "pcVar8 != Target" identifier != identifier) : :) identifier )) (compound_statement "{\n                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00289da4;\n    }" { comment (expression_statement "local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);" (assignment_expression "local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p)" identifier = (call_expression "(*pcVar8)(param_2,src_section_name._M_dataplus._M_p)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * 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_00289da4;" goto statement_identifier ;) })) (expression_statement "pcVar8 = *(code **)(*(long *)param_2 + 0x98);" (assignment_expression "pcVar8 = *(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 "bVar31 = pcVar8 < Target::" (assignment_expression "bVar31 = pcVar8 < Target" identifier = (binary_expression "pcVar8 < Target" identifier < identifier)) : :) (expression_statement "do_section_may_have_icf_unsafe_pointers;" identifier ;) (ERROR "bVar33 = pcVar8 == Target::" (assignment_expression "bVar33 = pcVar8 == Target" identifier = (binary_expression "pcVar8 == Target" identifier == identifier)) : :) (expression_statement "do_section_may_have_icf_unsafe_pointers;" identifier ;) (if_statement "if (!bVar33) {\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00289da4;\n    }" if (parenthesized_expression "(!bVar33)" ( (unary_expression "!bVar33" ! identifier) )) (compound_statement "{\n      local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);\n      goto LAB_00289da4;\n    }" { (expression_statement "local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);" (assignment_expression "local_135 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p)" identifier = (call_expression "(*pcVar8)(param_2,src_section_name._M_dataplus._M_p)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * 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_00289da4;" goto statement_identifier ;) })) (expression_statement "lVar17 = 0xc;" (assignment_expression "lVar17 = 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 "_Var24 = src_section_name._M_dataplus;" (assignment_expression "_Var24 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar31 = *pbVar23 < (byte)*_Var24._M_p;\n      bVar33 = *pbVar23 == *_Var24._M_p;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n    } while (bVar33);" do (compound_statement "{\n      if (lVar17 == 0) break;\n      lVar17 = lVar17 + -1;\n      bVar31 = *pbVar23 < (byte)*_Var24._M_p;\n      bVar33 = *pbVar23 == *_Var24._M_p;\n      pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n      _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n    }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar23 < (byte)*_Var24._M_p;" (assignment_expression "bVar31 = *pbVar23 < (byte)*_Var24._M_p" identifier = (binary_expression "*pbVar23 < (byte)*_Var24._M_p" (pointer_expression "*pbVar23" * identifier) < (binary_expression "(byte)*_Var24._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var24._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar33 = *pbVar23 == *_Var24._M_p;" (assignment_expression "bVar33 = *pbVar23 == *_Var24._M_p" identifier = (binary_expression "*pbVar23 == *_Var24._M_p" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*_Var24._M_p" * (field_expression "_Var24._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar34 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar34 * -2" identifier + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);" (assignment_expression "_Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" (field_expression "_Var24._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" ( (binary_expression "(byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1" (binary_expression "(byte *)_Var24._M_p + (ulong)bVar34 * -2" (cast_expression "(byte *)_Var24._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var24._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar33)" ( identifier )) ;) (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;) (expression_statement "bVar31 = (!bVar31 && !bVar33) == bVar31;" (assignment_expression "bVar31 = (!bVar31 && !bVar33) == bVar31" identifier = (binary_expression "(!bVar31 && !bVar33) == bVar31" (parenthesized_expression "(!bVar31 && !bVar33)" ( (binary_expression "!bVar31 && !bVar33" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar31) {\n      lVar17 = 0x11;\n      pbVar23 = (byte *)".data.rel.ro._ZTV";\n      _Var24 = src_section_name._M_dataplus;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n        bVar31 = *pbVar23 == *_Var24._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      bVar33 = false;\n      bVar31 = (!bVar29 && !bVar31) == bVar29;\n      if (!bVar31) {\n        lVar17 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var24 = src_section_name._M_dataplus;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n          bVar31 = *pbVar23 == *_Var24._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n        } while (bVar31);\n        bVar29 = false;\n        bVar31 = (!bVar33 && !bVar31) == bVar33;\n        if (!bVar31) {\n          lVar17 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var24 = src_section_name._M_dataplus;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          } while (bVar31);\n          bVar33 = false;\n          bVar31 = (!bVar29 && !bVar31) == bVar29;\n          if (!bVar31) {\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) )) (compound_statement "{\n      lVar17 = 0x11;\n      pbVar23 = (byte *)".data.rel.ro._ZTV";\n      _Var24 = src_section_name._M_dataplus;\n      do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n        bVar31 = *pbVar23 == *_Var24._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);\n      bVar33 = false;\n      bVar31 = (!bVar29 && !bVar31) == bVar29;\n      if (!bVar31) {\n        lVar17 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var24 = src_section_name._M_dataplus;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n          bVar31 = *pbVar23 == *_Var24._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n        } while (bVar31);\n        bVar29 = false;\n        bVar31 = (!bVar33 && !bVar31) == bVar33;\n        if (!bVar31) {\n          lVar17 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var24 = src_section_name._M_dataplus;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          } while (bVar31);\n          bVar33 = false;\n          bVar31 = (!bVar29 && !bVar31) == bVar29;\n          if (!bVar31) {\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }" { (expression_statement "lVar17 = 0x11;" (assignment_expression "lVar17 = 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 "_Var24 = src_section_name._M_dataplus;" (assignment_expression "_Var24 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n        bVar31 = *pbVar23 == *_Var24._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n      } while (bVar31);" do (compound_statement "{\n        if (lVar17 == 0) break;\n        lVar17 = lVar17 + -1;\n        bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n        bVar31 = *pbVar23 == *_Var24._M_p;\n        pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n        _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n      }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar23 < (byte)*_Var24._M_p;" (assignment_expression "bVar29 = *pbVar23 < (byte)*_Var24._M_p" identifier = (binary_expression "*pbVar23 < (byte)*_Var24._M_p" (pointer_expression "*pbVar23" * identifier) < (binary_expression "(byte)*_Var24._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var24._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar31 = *pbVar23 == *_Var24._M_p;" (assignment_expression "bVar31 = *pbVar23 == *_Var24._M_p" identifier = (binary_expression "*pbVar23 == *_Var24._M_p" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*_Var24._M_p" * (field_expression "_Var24._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar34 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar34 * -2" identifier + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);" (assignment_expression "_Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" (field_expression "_Var24._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" ( (binary_expression "(byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1" (binary_expression "(byte *)_Var24._M_p + (ulong)bVar34 * -2" (cast_expression "(byte *)_Var24._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var24._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (expression_statement "bVar33 = false;" (assignment_expression "bVar33 = false" identifier = false) ;) (expression_statement "bVar31 = (!bVar29 && !bVar31) == bVar29;" (assignment_expression "bVar31 = (!bVar29 && !bVar31) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar31) == bVar29" (parenthesized_expression "(!bVar29 && !bVar31)" ( (binary_expression "!bVar29 && !bVar31" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar31) {\n        lVar17 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var24 = src_section_name._M_dataplus;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n          bVar31 = *pbVar23 == *_Var24._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n        } while (bVar31);\n        bVar29 = false;\n        bVar31 = (!bVar33 && !bVar31) == bVar33;\n        if (!bVar31) {\n          lVar17 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var24 = src_section_name._M_dataplus;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          } while (bVar31);\n          bVar33 = false;\n          bVar31 = (!bVar29 && !bVar31) == bVar29;\n          if (!bVar31) {\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }\n        }\n      }" if (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) )) (compound_statement "{\n        lVar17 = 0xc;\n        pbVar23 = (byte *)".rodata._ZTC";\n        _Var24 = src_section_name._M_dataplus;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n          bVar31 = *pbVar23 == *_Var24._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n        } while (bVar31);\n        bVar29 = false;\n        bVar31 = (!bVar33 && !bVar31) == bVar33;\n        if (!bVar31) {\n          lVar17 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var24 = src_section_name._M_dataplus;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          } while (bVar31);\n          bVar33 = false;\n          bVar31 = (!bVar29 && !bVar31) == bVar29;\n          if (!bVar31) {\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }\n        }\n      }" { (expression_statement "lVar17 = 0xc;" (assignment_expression "lVar17 = 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 "_Var24 = src_section_name._M_dataplus;" (assignment_expression "_Var24 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n          bVar31 = *pbVar23 == *_Var24._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n        } while (bVar31);" do (compound_statement "{\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n          bVar31 = *pbVar23 == *_Var24._M_p;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n        }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar33 = *pbVar23 < (byte)*_Var24._M_p;" (assignment_expression "bVar33 = *pbVar23 < (byte)*_Var24._M_p" identifier = (binary_expression "*pbVar23 < (byte)*_Var24._M_p" (pointer_expression "*pbVar23" * identifier) < (binary_expression "(byte)*_Var24._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var24._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar31 = *pbVar23 == *_Var24._M_p;" (assignment_expression "bVar31 = *pbVar23 == *_Var24._M_p" identifier = (binary_expression "*pbVar23 == *_Var24._M_p" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*_Var24._M_p" * (field_expression "_Var24._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar34 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar34 * -2" identifier + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);" (assignment_expression "_Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" (field_expression "_Var24._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" ( (binary_expression "(byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1" (binary_expression "(byte *)_Var24._M_p + (ulong)bVar34 * -2" (cast_expression "(byte *)_Var24._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var24._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;) (expression_statement "bVar31 = (!bVar33 && !bVar31) == bVar33;" (assignment_expression "bVar31 = (!bVar33 && !bVar31) == bVar33" identifier = (binary_expression "(!bVar33 && !bVar31) == bVar33" (parenthesized_expression "(!bVar33 && !bVar31)" ( (binary_expression "!bVar33 && !bVar31" (unary_expression "!bVar33" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar31) {\n          lVar17 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var24 = src_section_name._M_dataplus;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          } while (bVar31);\n          bVar33 = false;\n          bVar31 = (!bVar29 && !bVar31) == bVar29;\n          if (!bVar31) {\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }\n        }" if (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) )) (compound_statement "{\n          lVar17 = 0x11;\n          pbVar23 = (byte *)".data.rel.ro._ZTC";\n          _Var24 = src_section_name._M_dataplus;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          } while (bVar31);\n          bVar33 = false;\n          bVar31 = (!bVar29 && !bVar31) == bVar29;\n          if (!bVar31) {\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }\n        }" { (expression_statement "lVar17 = 0x11;" (assignment_expression "lVar17 = 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 "_Var24 = src_section_name._M_dataplus;" (assignment_expression "_Var24 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          } while (bVar31);" do (compound_statement "{\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar29 = *pbVar23 < (byte)*_Var24._M_p;\n            bVar31 = *pbVar23 == *_Var24._M_p;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n          }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar23 < (byte)*_Var24._M_p;" (assignment_expression "bVar29 = *pbVar23 < (byte)*_Var24._M_p" identifier = (binary_expression "*pbVar23 < (byte)*_Var24._M_p" (pointer_expression "*pbVar23" * identifier) < (binary_expression "(byte)*_Var24._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var24._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar31 = *pbVar23 == *_Var24._M_p;" (assignment_expression "bVar31 = *pbVar23 == *_Var24._M_p" identifier = (binary_expression "*pbVar23 == *_Var24._M_p" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*_Var24._M_p" * (field_expression "_Var24._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar34 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar34 * -2" identifier + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);" (assignment_expression "_Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" (field_expression "_Var24._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" ( (binary_expression "(byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1" (binary_expression "(byte *)_Var24._M_p + (ulong)bVar34 * -2" (cast_expression "(byte *)_Var24._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var24._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (expression_statement "bVar33 = false;" (assignment_expression "bVar33 = false" identifier = false) ;) (expression_statement "bVar31 = (!bVar29 && !bVar31) == bVar29;" (assignment_expression "bVar31 = (!bVar29 && !bVar31) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar31) == bVar29" (parenthesized_expression "(!bVar29 && !bVar31)" ( (binary_expression "!bVar29 && !bVar31" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar31) {\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }" if (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) )) (compound_statement "{\n            lVar17 = 9;\n            pbVar23 = (byte *)".eh_frame";\n            _Var24 = src_section_name._M_dataplus;\n            do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);\n            local_135 = (!bVar33 && !bVar31) != bVar33;\n            goto LAB_00289da4;\n          }" { (expression_statement "lVar17 = 9;" (assignment_expression "lVar17 = 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 "_Var24 = src_section_name._M_dataplus;" (assignment_expression "_Var24 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            } while (bVar31);" do (compound_statement "{\n              if (lVar17 == 0) break;\n              lVar17 = lVar17 + -1;\n              bVar33 = *pbVar23 < (byte)*_Var24._M_p;\n              bVar31 = *pbVar23 == *_Var24._M_p;\n              pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n              _Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);\n            }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar33 = *pbVar23 < (byte)*_Var24._M_p;" (assignment_expression "bVar33 = *pbVar23 < (byte)*_Var24._M_p" identifier = (binary_expression "*pbVar23 < (byte)*_Var24._M_p" (pointer_expression "*pbVar23" * identifier) < (binary_expression "(byte)*_Var24._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var24._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar31 = *pbVar23 == *_Var24._M_p;" (assignment_expression "bVar31 = *pbVar23 == *_Var24._M_p" identifier = (binary_expression "*pbVar23 == *_Var24._M_p" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*_Var24._M_p" * (field_expression "_Var24._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar34 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar34 * -2" identifier + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1);" (assignment_expression "_Var24._M_p = (pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" (field_expression "_Var24._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1)" ( (binary_expression "(byte *)_Var24._M_p + (ulong)bVar34 * -2 + 1" (binary_expression "(byte *)_Var24._M_p + (ulong)bVar34 * -2" (cast_expression "(byte *)_Var24._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var24._M_p" identifier . field_identifier)) + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (expression_statement "local_135 = (!bVar33 && !bVar31) != bVar33;" (assignment_expression "local_135 = (!bVar33 && !bVar31) != bVar33" identifier = (binary_expression "(!bVar33 && !bVar31) != bVar33" (parenthesized_expression "(!bVar33 && !bVar31)" ( (binary_expression "!bVar33 && !bVar31" (unary_expression "!bVar33" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00289da4;" goto statement_identifier ;) })) })) })) })) })) (expression_statement "local_135 = '\0';" (assignment_expression "local_135 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00289da4:\n  if (prelocs != (uchar *)0x0) {\n    local_140 = (_func_int_varargs **)0x0;\n    local_100 = (uchar *)0x0;\n    do {\n      uVar27 = puVar26[1];\n      uVar3 = puVar26[2];\n      uVar16 = (uint)(uVar27 >> 0x20);\n      local_118 = (int)uVar27;\n      if (uVar27 >> 0x20 < 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        local_104 = (uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 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        }\n        local_120 = (Output_segment *)target;\n        if (uVar15 != local_104) {\nLAB_0028a049:\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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar16 < *(uint *)&target[1].field_0x88) {\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88);\n        if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;\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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }\nLAB_0028a359:\n        lVar17 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var22 = pp_Var19;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        } while ((bool)uVar32);\n        bVar31 = false;\n        bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n        if (bVar33) {\n          pp_Var19 = pp_Var19 + 1;\n        }\n        else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }\n        local_140 = pp_Var19;\n        if (bVar30) {\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }\n        if (bVar21 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      puVar26 = puVar26 + 3;\n    } while (prelocs != local_100);\n  }" statement_identifier : (if_statement "if (prelocs != (uchar *)0x0) {\n    local_140 = (_func_int_varargs **)0x0;\n    local_100 = (uchar *)0x0;\n    do {\n      uVar27 = puVar26[1];\n      uVar3 = puVar26[2];\n      uVar16 = (uint)(uVar27 >> 0x20);\n      local_118 = (int)uVar27;\n      if (uVar27 >> 0x20 < 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        local_104 = (uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 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        }\n        local_120 = (Output_segment *)target;\n        if (uVar15 != local_104) {\nLAB_0028a049:\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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar16 < *(uint *)&target[1].field_0x88) {\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88);\n        if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;\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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }\nLAB_0028a359:\n        lVar17 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var22 = pp_Var19;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        } while ((bool)uVar32);\n        bVar31 = false;\n        bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n        if (bVar33) {\n          pp_Var19 = pp_Var19 + 1;\n        }\n        else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }\n        local_140 = pp_Var19;\n        if (bVar30) {\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }\n        if (bVar21 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      puVar26 = puVar26 + 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_140 = (_func_int_varargs **)0x0;\n    local_100 = (uchar *)0x0;\n    do {\n      uVar27 = puVar26[1];\n      uVar3 = puVar26[2];\n      uVar16 = (uint)(uVar27 >> 0x20);\n      local_118 = (int)uVar27;\n      if (uVar27 >> 0x20 < 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        local_104 = (uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 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        }\n        local_120 = (Output_segment *)target;\n        if (uVar15 != local_104) {\nLAB_0028a049:\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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar16 < *(uint *)&target[1].field_0x88) {\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88);\n        if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;\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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }\nLAB_0028a359:\n        lVar17 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var22 = pp_Var19;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        } while ((bool)uVar32);\n        bVar31 = false;\n        bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n        if (bVar33) {\n          pp_Var19 = pp_Var19 + 1;\n        }\n        else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }\n        local_140 = pp_Var19;\n        if (bVar30) {\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }\n        if (bVar21 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      puVar26 = puVar26 + 3;\n    } while (prelocs != local_100);\n  }" { (expression_statement "local_140 = (_func_int_varargs **)0x0;" (assignment_expression "local_140 = (_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      uVar27 = puVar26[1];\n      uVar3 = puVar26[2];\n      uVar16 = (uint)(uVar27 >> 0x20);\n      local_118 = (int)uVar27;\n      if (uVar27 >> 0x20 < 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        local_104 = (uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 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        }\n        local_120 = (Output_segment *)target;\n        if (uVar15 != local_104) {\nLAB_0028a049:\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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar16 < *(uint *)&target[1].field_0x88) {\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88);\n        if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;\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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }\nLAB_0028a359:\n        lVar17 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var22 = pp_Var19;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        } while ((bool)uVar32);\n        bVar31 = false;\n        bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n        if (bVar33) {\n          pp_Var19 = pp_Var19 + 1;\n        }\n        else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }\n        local_140 = pp_Var19;\n        if (bVar30) {\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }\n        if (bVar21 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      puVar26 = puVar26 + 3;\n    } while (prelocs != local_100);" do (compound_statement "{\n      uVar27 = puVar26[1];\n      uVar3 = puVar26[2];\n      uVar16 = (uint)(uVar27 >> 0x20);\n      local_118 = (int)uVar27;\n      if (uVar27 >> 0x20 < 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        local_104 = (uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 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        }\n        local_120 = (Output_segment *)target;\n        if (uVar15 != local_104) {\nLAB_0028a049:\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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar16 < *(uint *)&target[1].field_0x88) {\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88);\n        if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;\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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }\nLAB_0028a359:\n        lVar17 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var22 = pp_Var19;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        } while ((bool)uVar32);\n        bVar31 = false;\n        bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n        if (bVar33) {\n          pp_Var19 = pp_Var19 + 1;\n        }\n        else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }\n        local_140 = pp_Var19;\n        if (bVar30) {\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }\n        if (bVar21 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      puVar26 = puVar26 + 3;\n    }" { (expression_statement "uVar27 = puVar26[1];" (assignment_expression "uVar27 = puVar26[1]" identifier = (subscript_expression "puVar26[1]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar26[2];" (assignment_expression "uVar3 = puVar26[2]" identifier = (subscript_expression "puVar26[2]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = (uint)(uVar27 >> 0x20);" (assignment_expression "uVar16 = (uint)(uVar27 >> 0x20)" identifier = (call_expression "(uint)(uVar27 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar27 >> 0x20)" ( (binary_expression "uVar27 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_118 = (int)uVar27;" (assignment_expression "local_118 = (int)uVar27" identifier = (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar27 >> 0x20 < 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        local_104 = (uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 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        }\n        local_120 = (Output_segment *)target;\n        if (uVar15 != local_104) {\nLAB_0028a049:\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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar16 < *(uint *)&target[1].field_0x88) {\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88);\n        if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;\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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }\nLAB_0028a359:\n        lVar17 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var22 = pp_Var19;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        } while ((bool)uVar32);\n        bVar31 = false;\n        bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n        if (bVar33) {\n          pp_Var19 = pp_Var19 + 1;\n        }\n        else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }\n        local_140 = pp_Var19;\n        if (bVar30) {\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }\n        if (bVar21 != 0) goto LAB_0028a049;\n      }" if (parenthesized_expression "(uVar27 >> 0x20 < reloc_count)" ( (binary_expression "uVar27 >> 0x20 < reloc_count" (binary_expression "uVar27 >> 0x20" identifier >> number_literal) < 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        local_104 = (uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 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        }\n        local_120 = (Output_segment *)target;\n        if (uVar15 != local_104) {\nLAB_0028a049:\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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_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 "local_104 = (uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6);" (assignment_expression "local_104 = (uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6)" identifier = (binary_expression "(uint)*(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)\n                           ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6)" ( (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18) + 6" (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                           (ulong)(uVar16 * 0x18)" (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))) + (call_expression "(ulong)(uVar16 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 * 0x18)" ( (binary_expression "uVar16 * 0x18" identifier * number_literal) )))) + number_literal) ))))) ;) (if_statement "if (local_104 < 0xff00) {\nLAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }" if (parenthesized_expression "(local_104 < 0xff00)" ( (binary_expression "local_104 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }\n        }" { (labeled_statement "LAB_00289f33:\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));" statement_identifier : (expression_statement "pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));" (assignment_expression "pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18))" identifier = (pointer_expression "*(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18))" * (cast_expression "(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18))" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18))" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18)" (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))) + (call_expression "(ulong)(uVar16 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 * 0x18)" ( (binary_expression "uVar16 * 0x18" identifier * number_literal) )))) ))))) ;)) (expression_statement "local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;" (assignment_expression "local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3" identifier = (binary_expression "(long)&(pRVar25->super_Object)._vptr_Object + uVar3" (cast_expression "(long)&(pRVar25->super_Object)._vptr_Object" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(pRVar25->super_Object)._vptr_Object" & (field_expression "(pRVar25->super_Object)._vptr_Object" (parenthesized_expression "(pRVar25->super_Object)" ( (field_expression "pRVar25->super_Object" identifier -> field_identifier) )) . field_identifier))) + identifier)) ;) (if_statement "if (bVar30) {\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }" if (parenthesized_expression "(bVar30)" ( identifier )) (compound_statement "{\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n            bVar31 = true;\n            if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            src_id.first = (Relobj *)0x0;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (local_158,(Symbol **)&src_id);\n            goto LAB_00289e62;\n          }" { (expression_statement "src_id.second = local_104;" (assignment_expression "src_id.second = local_104" (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 "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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);" (binary_expression "Relobj*,_unsigned_int>_>\n                      (&local_160->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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" ( (comma_expression "&local_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id" (pointer_expression "&local_160->section_info" & (field_expression "local_160->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 "bVar31 = true;" (assignment_expression "bVar31 = true" identifier = true) ;) (if_statement "if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;" if (parenthesized_expression "((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3)" ( (binary_expression "(*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf) == 3" (parenthesized_expression "(*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf)" ( (binary_expression "*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4) & 0xf" (pointer_expression "*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4)" * (cast_expression "(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4)" ( (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18) + 4" (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                          (ulong)(uVar16 * 0x18)" (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))) + (call_expression "(ulong)(uVar16 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 * 0x18)" ( (binary_expression "uVar16 * 0x18" identifier * number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00289f81;" goto statement_identifier ;)) (labeled_statement "LAB_00289e47:\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_158,(Symbol **)&src_id);" (binary_expression "Symbol*>\n                      (local_158,(Symbol **)&src_id)" identifier * (ERROR ">" >) (parenthesized_expression "(local_158,(Symbol **)&src_id)" ( (comma_expression "local_158,(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_00289e62;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }" else (compound_statement "{\n          if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }\n          pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (!bVar30) goto LAB_00289ec8;\n          src_id.first = (Relobj *)0x0;\n          src_id._8_8_ = src_id._8_8_ & 0xffffffff00000000;\n                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          bVar31 = false;\n          if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          src_id.first = (Relobj *)0xffffffffffffffff;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (local_158,(Symbol **)&src_id);\nLAB_00289e62:\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&dst_id);\n          if (!bVar31) goto LAB_00289ec8;\n        }" { (if_statement "if (local_104 == 0xffff) {\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }" if (parenthesized_expression "(local_104 == 0xffff)" ( (binary_expression "local_104 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            this = (Xindex *)(target->tilegx_info).rosegment_gap;\n            if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }\n            local_104 = Xindex::sym_xindex_to_shndx(this,(Object *)target,uVar16);\n            goto LAB_00289f33;\n          }" { (expression_statement "this = (Xindex *)(target->tilegx_info).rosegment_gap;" (assignment_expression "this = (Xindex *)(target->tilegx_info).rosegment_gap" identifier = (cast_expression "(Xindex *)(target->tilegx_info).rosegment_gap" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(target->tilegx_info).rosegment_gap" (parenthesized_expression "(target->tilegx_info)" ( (field_expression "target->tilegx_info" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (this == (Xindex *)0x0) {\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }" if (parenthesized_expression "(this == (Xindex *)0x0)" ( (binary_expression "this == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);\n              (target->tilegx_info).rosegment_gap = (uint64_t)this;\n            }" { (expression_statement "this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target);" (assignment_expression "this = (Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target)" identifier = (cast_expression "(Xindex *)(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target)" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(long *)&target->tilegx_info + 0xd8))(target)" (parenthesized_expression "(**(code **)(*(long *)&target->tilegx_info + 0xd8))" ( (pointer_expression "**(code **)(*(long *)&target->tilegx_info + 0xd8)" * (pointer_expression "*(code **)(*(long *)&target->tilegx_info + 0xd8)" * (cast_expression "(code **)(*(long *)&target->tilegx_info + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)&target->tilegx_info + 0xd8)" ( (binary_expression "*(long *)&target->tilegx_info + 0xd8" (pointer_expression "*(long *)&target->tilegx_info" * (cast_expression "(long *)&target->tilegx_info" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target->tilegx_info" & (field_expression "target->tilegx_info" identifier -> field_identifier)))) + number_literal) ))))) )) (argument_list "(target)" ( identifier ))))) ;) (expression_statement "(target->tilegx_info).rosegment_gap = (uint64_t)this;" (assignment_expression "(target->tilegx_info).rosegment_gap = (uint64_t)this" (field_expression "(target->tilegx_info).rosegment_gap" (parenthesized_expression "(target->tilegx_info)" ( (field_expression "target->tilegx_info" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint64_t)this" ( (type_descriptor "uint64_t" primitive_type) ) identifier)) ;) })) (ERROR "local_104 = Xindex::" (assignment_expression "local_104 = Xindex" identifier = identifier) : :) (expression_statement "sym_xindex_to_shndx(this,(Object *)target,uVar16);" (call_expression "sym_xindex_to_shndx(this,(Object *)target,uVar16)" identifier (argument_list "(this,(Object *)target,uVar16)" ( identifier , (cast_expression "(Object *)target" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (goto_statement "goto LAB_00289f33;" goto statement_identifier ;) })) (expression_statement "pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18));" (assignment_expression "pRVar25 = *(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18))" identifier = (pointer_expression "*(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18))" * (cast_expression "(Relobj **)\n                     ((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18))" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18))" ( (binary_expression "(long)&(param_8->super_Output_data).address_ + (ulong)(uVar16 * 0x18)" (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))) + (call_expression "(ulong)(uVar16 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 * 0x18)" ( (binary_expression "uVar16 * 0x18" identifier * number_literal) )))) ))))) ;) (expression_statement "local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;" (assignment_expression "local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3" identifier = (binary_expression "(long)&(pRVar25->super_Object)._vptr_Object + uVar3" (cast_expression "(long)&(pRVar25->super_Object)._vptr_Object" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(pRVar25->super_Object)._vptr_Object" & (field_expression "(pRVar25->super_Object)._vptr_Object" (parenthesized_expression "(pRVar25->super_Object)" ( (field_expression "pRVar25->super_Object" identifier -> field_identifier) )) . field_identifier))) + identifier)) ;) (if_statement "if (!bVar30) goto LAB_00289ec8;" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (goto_statement "goto LAB_00289ec8;" 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);" (binary_expression "Relobj*,_unsigned_int>_>\n                    (&local_160->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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" ( (comma_expression "&local_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id" (pointer_expression "&local_160->section_info" & (field_expression "local_160->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 "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (if_statement "if ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;" if (parenthesized_expression "((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3)" ( (binary_expression "(*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 3" (parenthesized_expression "(*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf)" ( (binary_expression "*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf" (pointer_expression "*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4)" * (cast_expression "(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4)" ( (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4" (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18)" (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))) + (call_expression "(ulong)(uVar16 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 * 0x18)" ( (binary_expression "uVar16 * 0x18" identifier * number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00289e47;" goto statement_identifier ;)) (labeled_statement "LAB_00289f81:\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_158,(Symbol **)&src_id);" (binary_expression "Symbol*>\n                    (local_158,(Symbol **)&src_id)" identifier * (ERROR ">" >) (parenthesized_expression "(local_158,(Symbol **)&src_id)" ( (comma_expression "local_158,(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_00289e62:\n          src_id.first = pRVar25;" statement_identifier : (expression_statement "src_id.first = pRVar25;" (assignment_expression "src_id.first = pRVar25" (field_expression "src_id.first" identifier . field_identifier) = identifier) ;)) (expression_statement "src_id._8_8_ = uVar3;" (assignment_expression "src_id._8_8_ = uVar3" (field_expression "src_id._8_8_" identifier . field_identifier) = 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_168,(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_168,(pair<long_long_int,_long_long_int> *)&src_id);" (comma_expression "pair<long_long_int,_long_long_int>_>\n                    (local_168,(pair<long_long_int,_long_long_int> *)&src_id)" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>\n                    (local_168,(pair<long_long_int,_long_long_int> *)&src_id)" (binary_expression "_long_long_int>_" identifier > identifier) > (parenthesized_expression "(local_168,(pair<long_long_int,_long_long_int> *)&src_id)" ( (comma_expression "local_168,(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 *)*puVar26;" (assignment_expression "src_id.first = (Relobj *)*puVar26" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)*puVar26" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar26" * identifier))) ;) (expression_statement "iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;" (assignment_expression "iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish" (field_expression "iVar2._M_current" identifier . field_identifier) = (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish" (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl" (parenthesized_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )" ( (ERROR "local_148->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_148->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_148->super__Vector_base<long_unsigned_int" (field_expression "local_148->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 (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._M_current + 1;\n          }" if (parenthesized_expression "(iVar2._M_current ==\n              (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage)" ( (binary_expression "iVar2._M_current ==\n              (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage" (field_expression "iVar2._M_current" identifier . field_identifier) == (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage" (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl" (parenthesized_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)" ( (ERROR "local_148->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_148->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_148->super__Vector_base<long_unsigned_int" (field_expression "local_148->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_148,iVar2,(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_148,iVar2,(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_148,iVar2,(ulong *)&src_id);" (binary_expression "_M_realloc_insert<long_unsigned_int_const&>(local_148,iVar2,(ulong *)&src_id)" (binary_expression "_M_realloc_insert<long_unsigned_int_const" identifier < identifier) (ERROR "&" &) > (parenthesized_expression "(local_148,iVar2,(ulong *)&src_id)" ( (comma_expression "local_148,iVar2,(ulong *)&src_id" identifier , (comma_expression "iVar2,(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            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._M_current + 1;\n          }" else (compound_statement "{\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._M_current + 1;\n          }" { (expression_statement "*iVar2._M_current = (ulong)src_id.first;" (assignment_expression "*iVar2._M_current = (ulong)src_id.first" (pointer_expression "*iVar2._M_current" * (field_expression "iVar2._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_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._M_current + 1;" (assignment_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._M_current + 1" (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)" ( (ERROR "local_148->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_148->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_148->super__Vector_base<long_unsigned_int" (field_expression "local_148->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 "iVar2._M_current + 1" (field_expression "iVar2._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_170,(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_170,(uint *)&dst_id);" (binary_expression "emplace_back<unsigned_int>\n                    (local_170,(uint *)&dst_id)" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(local_170,(uint *)&dst_id)" ( (comma_expression "local_170,(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 (!bVar31) goto LAB_00289ec8;" if (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) )) (goto_statement "goto LAB_00289ec8;" goto statement_identifier ;)) }))) (if_statement "if ((((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 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        }" if (parenthesized_expression "((((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0))" ( (binary_expression "(((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)" (parenthesized_expression "(((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28))" ( (binary_expression "((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)) && (local_118 - 0x24U < 0x28)" (parenthesized_expression "((local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1))" ( (binary_expression "(local_135 != '\0') &&\n             ((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)" (parenthesized_expression "(local_135 != '\0')" ( (binary_expression "local_135 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1)" ( (binary_expression "(*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf) != 1" (parenthesized_expression "(*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf)" ( (binary_expression "*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4) & 0xf" (pointer_expression "*(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4)" * (cast_expression "(byte *)((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4)" ( (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18) + 4" (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                        (ulong)(uVar16 * 0x18)" (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))) + (call_expression "(ulong)(uVar16 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 * 0x18)" ( (binary_expression "uVar16 * 0x18" identifier * number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(local_118 - 0x24U < 0x28)" ( (binary_expression "local_118 - 0x24U < 0x28" (binary_expression "local_118 - 0x24U" identifier - number_literal) < number_literal) ))) )) && (parenthesized_expression "((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)" ( (binary_expression "(0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0" (parenthesized_expression "(0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1)" ( (binary_expression "0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1" (binary_expression "0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f)" number_literal >> (parenthesized_expression "((ulong)(local_118 - 0x24U) & 0x3f)" ( (binary_expression "(ulong)(local_118 - 0x24U) & 0x3f" (call_expression "(ulong)(local_118 - 0x24U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_118 - 0x24U)" ( (binary_expression "local_118 - 0x24U" identifier - number_literal) ))) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 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        }" { (expression_statement "local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 6);" (assignment_expression "local_a0 = (uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 6)" identifier = (binary_expression "(uint)*(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)\n                            ((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 6)" ( (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18) + 6" (binary_expression "(long)&(param_8->super_Output_data)._vptr_Output_data +\n                            (ulong)(uVar16 * 0x18)" (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))) + (call_expression "(ulong)(uVar16 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 * 0x18)" ( (binary_expression "uVar16 * 0x18" identifier * number_literal) )))) + 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))))) )) )))) ;))))) })) (expression_statement "local_120 = (Output_segment *)target;" (assignment_expression "local_120 = (Output_segment *)target" identifier = (cast_expression "(Output_segment *)target" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (uVar15 != local_104) {\nLAB_0028a049:\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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(uVar15 != local_104)" ( (binary_expression "uVar15 != local_104" identifier != identifier) )) (compound_statement "{\nLAB_0028a049:\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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_0028a049:\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" statement_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_->gc_sections_).value != false) {\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }" if (parenthesized_expression "((parameters->options_->gc_sections_).value != false)" ( (binary_expression "(parameters->options_->gc_sections_).value != false" (field_expression "(parameters->options_->gc_sections_).value" (parenthesized_expression "(parameters->options_->gc_sections_)" ( (field_expression "parameters->options_->gc_sections_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n            pGVar4 = symtab->gc_;\n            dst_id.second = local_104;\n            p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n            dst_id.first = (Relobj *)local_120;\n            p_Var13 = cVar14._M_node;\n            src_id_2.first = (Relobj *)target;\n            src_id_2.second = uVar15;\n            if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }\n            __node_gen_1._M_h = (__hashtable_alloc *)&iVar10._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            pTVar6 = parameters->target_;\n            if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }\n            if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }\n          }" { (expression_statement "pGVar4 = symtab->gc_;" (assignment_expression "pGVar4 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (expression_statement "dst_id.second = local_104;" (assignment_expression "dst_id.second = local_104" (field_expression "dst_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;" (assignment_expression "p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" identifier = (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar4->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar4->section_reloc_map_)" ( (field_expression "pGVar4->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;" (assignment_expression "cVar14._M_node =\n                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "cVar14._M_node" identifier . field_identifier) = (pointer_expression "&(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" & (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar4->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar4->section_reloc_map_)" ( (field_expression "pGVar4->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "dst_id.first = (Relobj *)local_120;" (assignment_expression "dst_id.first = (Relobj *)local_120" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_120" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var13 = cVar14._M_node;" (assignment_expression "p_Var13 = cVar14._M_node" identifier = (field_expression "cVar14._M_node" 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 = uVar15;" (assignment_expression "src_id_2.second = uVar15" (field_expression "src_id_2.second" identifier . field_identifier) = identifier) ;) (if_statement "if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }" if (parenthesized_expression "(p_Var5 == (_Base_ptr)0x0)" ( (binary_expression "p_Var5 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_0028a100:\n              local_c8._M_head_impl = &src_id_2;\n              iVar10 = 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                                 (&(pGVar4->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_0028a100:\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 "iVar10 = 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::" (assignment_expression "iVar10 = std" identifier = identifier) : : (binary_expression "_Rb_tree<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 "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" identifier * (ERROR "," ,) 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                                 (&(pGVar4->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                                 (&(pGVar4->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 "(&(pGVar4->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 "&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std::" (comma_expression "&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                  (piecewise_construct_t *)&std" (pointer_expression "&(pGVar4->section_reloc_map_)._M_t" & (field_expression "(pGVar4->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar4->section_reloc_map_)" ( (field_expression "pGVar4->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 ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }" else (compound_statement "{\n              do {\n                while ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;\n              cVar14._M_node = iVar10._M_node;\n              if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;\n            }" { (do_statement "do {\n                while ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);" do (compound_statement "{\n                while ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }\n                p_Var13 = iVar10._M_node;\n                p_Var5 = (iVar10._M_node)->_M_left;\n              }" { (while_statement "while ((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }" while (parenthesized_expression "((iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15)))))" ( (parenthesized_expression "(iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))" ( (comma_expression "iVar10._M_node = p_Var5,\n                       *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15)))" (assignment_expression "iVar10._M_node = p_Var5" (field_expression "iVar10._M_node" identifier . field_identifier) = identifier) , (binary_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                       ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15)))" (binary_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target" (pointer_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" * (call_expression "(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" (parenthesized_expression "(Target_tilegx<64,_false> **)" ( (comma_expression "Target_tilegx<64,_false> **" (binary_expression "Target_tilegx<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(iVar10._M_node + 1)" ( (binary_expression "iVar10._M_node + 1" (field_expression "iVar10._M_node" identifier . field_identifier) + number_literal) )))) < identifier) || (parenthesized_expression "((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15)))" ( (parenthesized_expression "(target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))" ( (binary_expression "target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                        (*(uint *)&iVar10._M_node[1]._M_parent < uVar15)" (binary_expression "target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" identifier == (pointer_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" * (call_expression "(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" (parenthesized_expression "(Target_tilegx<64,_false> **)" ( (comma_expression "Target_tilegx<64,_false> **" (binary_expression "Target_tilegx<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(iVar10._M_node + 1)" ( (binary_expression "iVar10._M_node + 1" (field_expression "iVar10._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(*(uint *)&iVar10._M_node[1]._M_parent < uVar15)" ( (binary_expression "*(uint *)&iVar10._M_node[1]._M_parent < uVar15" (pointer_expression "*(uint *)&iVar10._M_node[1]._M_parent" * (cast_expression "(uint *)&iVar10._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar10._M_node[1]._M_parent" & (field_expression "iVar10._M_node[1]._M_parent" (subscript_expression "iVar10._M_node[1]" (field_expression "iVar10._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  pp_Var1 = &(iVar10._M_node)->_M_right;\n                  iVar10._M_node = p_Var13;\n                  p_Var5 = *pp_Var1;\n                  if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;\n                }" { (expression_statement "pp_Var1 = &(iVar10._M_node)->_M_right;" (assignment_expression "pp_Var1 = &(iVar10._M_node)->_M_right" identifier = (pointer_expression "&(iVar10._M_node)->_M_right" & (field_expression "(iVar10._M_node)->_M_right" (parenthesized_expression "(iVar10._M_node)" ( (field_expression "iVar10._M_node" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "iVar10._M_node = p_Var13;" (assignment_expression "iVar10._M_node = p_Var13" (field_expression "iVar10._M_node" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var5 = *pp_Var1;" (assignment_expression "p_Var5 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;) (if_statement "if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a0da;" if (parenthesized_expression "(*pp_Var1 == (_Base_ptr)0x0)" ( (binary_expression "*pp_Var1 == (_Base_ptr)0x0" (pointer_expression "*pp_Var1" * identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0028a0da;" goto statement_identifier ;)) })) (expression_statement "p_Var13 = iVar10._M_node;" (assignment_expression "p_Var13 = iVar10._M_node" identifier = (field_expression "iVar10._M_node" identifier . field_identifier)) ;) (expression_statement "p_Var5 = (iVar10._M_node)->_M_left;" (assignment_expression "p_Var5 = (iVar10._M_node)->_M_left" identifier = (field_expression "(iVar10._M_node)->_M_left" (parenthesized_expression "(iVar10._M_node)" ( (field_expression "iVar10._M_node" identifier . field_identifier) )) -> field_identifier)) ;) }) while (parenthesized_expression "((iVar10._M_node)->_M_left != (_Base_ptr)0x0)" ( (binary_expression "(iVar10._M_node)->_M_left != (_Base_ptr)0x0" (field_expression "(iVar10._M_node)->_M_left" (parenthesized_expression "(iVar10._M_node)" ( (field_expression "iVar10._M_node" identifier . field_identifier) )) -> field_identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_0028a0da:\n              bVar31 = iVar10._M_node == cVar14._M_node;" statement_identifier : (expression_statement "bVar31 = iVar10._M_node == cVar14._M_node;" (assignment_expression "bVar31 = iVar10._M_node == cVar14._M_node" identifier = (binary_expression "iVar10._M_node == cVar14._M_node" (field_expression "iVar10._M_node" identifier . field_identifier) == (field_expression "cVar14._M_node" identifier . field_identifier))) ;)) (expression_statement "cVar14._M_node = iVar10._M_node;" (assignment_expression "cVar14._M_node = iVar10._M_node" (field_expression "cVar14._M_node" identifier . field_identifier) = (field_expression "iVar10._M_node" identifier . field_identifier)) ;) (if_statement "if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;" if (parenthesized_expression "(((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent))))" ( (binary_expression "((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                 ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))" (parenthesized_expression "((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1)))" ( (binary_expression "(bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))" (parenthesized_expression "(bVar31)" ( identifier )) || (parenthesized_expression "(target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))" ( (binary_expression "target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" identifier < (pointer_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" * (call_expression "(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" (parenthesized_expression "(Target_tilegx<64,_false> **)" ( (comma_expression "Target_tilegx<64,_false> **" (binary_expression "Target_tilegx<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(iVar10._M_node + 1)" ( (binary_expression "iVar10._M_node + 1" (field_expression "iVar10._M_node" identifier . field_identifier) + number_literal) ))))) ))) )) || (parenthesized_expression "((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))" ( (parenthesized_expression "(target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent))" ( (binary_expression "target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                  (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)" (binary_expression "target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" identifier == (pointer_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" * (call_expression "(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" (parenthesized_expression "(Target_tilegx<64,_false> **)" ( (comma_expression "Target_tilegx<64,_false> **" (binary_expression "Target_tilegx<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(iVar10._M_node + 1)" ( (binary_expression "iVar10._M_node + 1" (field_expression "iVar10._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)" ( (binary_expression "uVar15 < *(uint *)&iVar10._M_node[1]._M_parent" identifier < (pointer_expression "*(uint *)&iVar10._M_node[1]._M_parent" * (cast_expression "(uint *)&iVar10._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar10._M_node[1]._M_parent" & (field_expression "iVar10._M_node[1]._M_parent" (subscript_expression "iVar10._M_node[1]" (field_expression "iVar10._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier))))) ))) )) ))) )) (goto_statement "goto LAB_0028a100;" goto statement_identifier ;)) }))) (expression_statement "__node_gen_1._M_h = (__hashtable_alloc *)&iVar10._M_node[1]._M_left;" (assignment_expression "__node_gen_1._M_h = (__hashtable_alloc *)&iVar10._M_node[1]._M_left" (field_expression "__node_gen_1._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&iVar10._M_node[1]._M_left" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar10._M_node[1]._M_left" & (field_expression "iVar10._M_node[1]._M_left" (subscript_expression "iVar10._M_node[1]" (field_expression "iVar10._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 "pTVar6 = parameters->target_;" (assignment_expression "pTVar6 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n            }" if (parenthesized_expression "(pTVar6 == (Target *)0x0)" ( (binary_expression "pTVar6 == (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 (pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference) {\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }" if (parenthesized_expression "(pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference)" ( (comma_expression "pTVar6->_vptr_Target[0x41] != Sized_target<64,_false>::do_gc_add_reference" (binary_expression "pTVar6->_vptr_Target[0x41] != Sized_target<64" (subscript_expression "pTVar6->_vptr_Target[0x41]" (field_expression "pTVar6->_vptr_Target" identifier -> field_identifier) [ number_literal ]) != (binary_expression "Sized_target<64" identifier < number_literal)) , (binary_expression "_false>::do_gc_add_reference" identifier > (ERROR "::" : :) identifier)) )) (compound_statement "{\n              (*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);\n            }" { (expression_statement "(*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130);" (call_expression "(*pTVar6->_vptr_Target[0x41])\n                        (pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130)" (parenthesized_expression "(*pTVar6->_vptr_Target[0x41])" ( (pointer_expression "*pTVar6->_vptr_Target[0x41]" * (subscript_expression "pTVar6->_vptr_Target[0x41]" (field_expression "pTVar6->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar6,symtab,target,(ulong)src_obj & 0xffffffff,local_120,(ulong)local_104\n                         ,local_130)" ( identifier , identifier , identifier , (binary_expression "(ulong)src_obj & 0xffffffff" (cast_expression "(ulong)src_obj" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) , identifier , (cast_expression "(ulong)local_104" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier ))) ;) })) (if_statement "if (local_140 != (_func_int_varargs **)0x0) {\n              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }" if (parenthesized_expression "(local_140 != (_func_int_varargs **)0x0)" ( (binary_expression "local_140 != (_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              pGVar4 = symtab->gc_;\n              src_id.first = (Relobj *)&stack0xffffffffffffffb8;\n              sVar11 = strlen((char *)local_140);\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_140,(byte *)((long)local_140 + sVar11));\n              iVar12 = 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(&(pGVar4->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              pGVar4 = symtab->gc_;\n              if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }\n            }" { (expression_statement "pGVar4 = symtab->gc_;" (assignment_expression "pGVar4 = 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 "sVar11 = strlen((char *)local_140);" (assignment_expression "sVar11 = strlen((char *)local_140)" identifier = (call_expression "strlen((char *)local_140)" identifier (argument_list "((char *)local_140)" ( (cast_expression "(char *)local_140" ( (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_140,(byte *)((long)local_140 + sVar11));" 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_140,(byte *)((long)local_140 + sVar11));" (binary_expression "_M_construct<char_const*>\n                        ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_140,(byte *)((long)local_140 + sVar11))" (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_140,(byte *)((long)local_140 + sVar11))" ( (comma_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                         &src_id,local_140,(byte *)((long)local_140 + sVar11)" (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_140,(byte *)((long)local_140 + sVar11)" identifier , (cast_expression "(byte *)((long)local_140 + sVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_140 + sVar11)" ( (binary_expression "(long)local_140 + sVar11" (cast_expression "(long)local_140" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ))) ;)) (ERROR "iVar12 = 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 "iVar12 = 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(&(pGVar4->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(&(pGVar4->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(&(pGVar4->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id)" identifier (argument_list "(&(pGVar4->cident_sections_)._M_t,\n                              (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                              &src_id)" ( (pointer_expression "&(pGVar4->cident_sections_)._M_t" & (field_expression "(pGVar4->cident_sections_)._M_t" (parenthesized_expression "(pGVar4->cident_sections_)" ( (field_expression "pGVar4->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 "pGVar4 = symtab->gc_;" (assignment_expression "pGVar4 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (if_statement "if ((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }" if (parenthesized_expression "((_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header)" ( (binary_expression "(_Rb_tree_header *)iVar12._M_node !=\n                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header" (cast_expression "(_Rb_tree_header *)iVar12._M_node" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "iVar12._M_node" identifier . field_identifier)) != (pointer_expression "&(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar4->cident_sections_)._M_t._M_impl" (field_expression "(pGVar4->cident_sections_)._M_t" (parenthesized_expression "(pGVar4->cident_sections_)" ( (field_expression "pGVar4->cident_sections_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) )) (compound_statement "{\n                p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;\n                src_id.second = uVar15;\n                p_Var13 = cVar14._M_node;\n                if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }\n                for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }\n              }" { (expression_statement "p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;" (assignment_expression "p_Var5 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent" identifier = (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent" (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar4->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar4->section_reloc_map_)" ( (field_expression "pGVar4->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;" (assignment_expression "cVar14._M_node =\n                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "cVar14._M_node" identifier . field_identifier) = (pointer_expression "&(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" & (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar4->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar4->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar4->section_reloc_map_)" ( (field_expression "pGVar4->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "src_id.second = uVar15;" (assignment_expression "src_id.second = uVar15" (field_expression "src_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var13 = cVar14._M_node;" (assignment_expression "p_Var13 = cVar14._M_node" identifier = (field_expression "cVar14._M_node" identifier . field_identifier)) ;) (if_statement "if (p_Var5 == (_Base_ptr)0x0) {\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }" if (parenthesized_expression "(p_Var5 == (_Base_ptr)0x0)" ( (binary_expression "p_Var5 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_0028a5e0:\n                  local_c0._M_head_impl = (pair<gold::Relobj*,_unsigned_int> *)&src_id;\n                  src_id.first = (Relobj *)target;\n                  iVar10 = 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);\n                }" { (labeled_statement "LAB_0028a5e0:\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 "iVar10 = 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::" (assignment_expression "iVar10 = std" identifier = identifier) : : (binary_expression "_Rb_tree<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 "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" identifier * (ERROR "," ,) 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                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9);" (binary_expression "tuple<>_>\n                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9)" (binary_expression "tuple<>_" identifier < (ERROR ">" >) identifier) > (parenthesized_expression "(&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::piecewise_construct,\n                                      (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9)" ( (ERROR "&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std::" (comma_expression "&(pGVar4->section_reloc_map_)._M_t,cVar14,\n                                      (piecewise_construct_t *)&std" (pointer_expression "&(pGVar4->section_reloc_map_)._M_t" & (field_expression "(pGVar4->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar4->section_reloc_map_)" ( (field_expression "pGVar4->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>&> *)\n                                      &local_c0,&local_e9" identifier , (comma_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &local_c0,&local_e9" (binary_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)\n                                      &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 ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }" else (compound_statement "{\n                  do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);\nLAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;\n                  cVar14._M_node = iVar10._M_node;\n                  if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;\n                }" { (do_statement "do {\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  } while ((iVar10._M_node)->_M_left != (_Base_ptr)0x0);" do (compound_statement "{\n                    while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }\n                    p_Var13 = iVar10._M_node;\n                    p_Var5 = (iVar10._M_node)->_M_left;\n                  }" { (while_statement "while ((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))) {\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }" while (parenthesized_expression "((iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15)))))" ( (parenthesized_expression "(iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))))" ( (comma_expression "iVar10._M_node = p_Var5,\n                           *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15)))" (assignment_expression "iVar10._M_node = p_Var5" (field_expression "iVar10._M_node" identifier . field_identifier) = identifier) , (binary_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target ||\n                           ((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15)))" (binary_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1) < target" (pointer_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" * (call_expression "(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" (parenthesized_expression "(Target_tilegx<64,_false> **)" ( (comma_expression "Target_tilegx<64,_false> **" (binary_expression "Target_tilegx<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(iVar10._M_node + 1)" ( (binary_expression "iVar10._M_node + 1" (field_expression "iVar10._M_node" identifier . field_identifier) + number_literal) )))) < identifier) || (parenthesized_expression "((target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15)))" ( (parenthesized_expression "(target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15))" ( (binary_expression "target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                            (*(uint *)&iVar10._M_node[1]._M_parent < uVar15)" (binary_expression "target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" identifier == (pointer_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" * (call_expression "(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" (parenthesized_expression "(Target_tilegx<64,_false> **)" ( (comma_expression "Target_tilegx<64,_false> **" (binary_expression "Target_tilegx<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(iVar10._M_node + 1)" ( (binary_expression "iVar10._M_node + 1" (field_expression "iVar10._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(*(uint *)&iVar10._M_node[1]._M_parent < uVar15)" ( (binary_expression "*(uint *)&iVar10._M_node[1]._M_parent < uVar15" (pointer_expression "*(uint *)&iVar10._M_node[1]._M_parent" * (cast_expression "(uint *)&iVar10._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar10._M_node[1]._M_parent" & (field_expression "iVar10._M_node[1]._M_parent" (subscript_expression "iVar10._M_node[1]" (field_expression "iVar10._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                      pp_Var1 = &(iVar10._M_node)->_M_right;\n                      iVar10._M_node = p_Var13;\n                      p_Var5 = *pp_Var1;\n                      if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;\n                    }" { (expression_statement "pp_Var1 = &(iVar10._M_node)->_M_right;" (assignment_expression "pp_Var1 = &(iVar10._M_node)->_M_right" identifier = (pointer_expression "&(iVar10._M_node)->_M_right" & (field_expression "(iVar10._M_node)->_M_right" (parenthesized_expression "(iVar10._M_node)" ( (field_expression "iVar10._M_node" identifier . field_identifier) )) -> field_identifier))) ;) (expression_statement "iVar10._M_node = p_Var13;" (assignment_expression "iVar10._M_node = p_Var13" (field_expression "iVar10._M_node" identifier . field_identifier) = identifier) ;) (expression_statement "p_Var5 = *pp_Var1;" (assignment_expression "p_Var5 = *pp_Var1" identifier = (pointer_expression "*pp_Var1" * identifier)) ;) (if_statement "if (*pp_Var1 == (_Base_ptr)0x0) goto LAB_0028a24a;" if (parenthesized_expression "(*pp_Var1 == (_Base_ptr)0x0)" ( (binary_expression "*pp_Var1 == (_Base_ptr)0x0" (pointer_expression "*pp_Var1" * identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0028a24a;" goto statement_identifier ;)) })) (expression_statement "p_Var13 = iVar10._M_node;" (assignment_expression "p_Var13 = iVar10._M_node" identifier = (field_expression "iVar10._M_node" identifier . field_identifier)) ;) (expression_statement "p_Var5 = (iVar10._M_node)->_M_left;" (assignment_expression "p_Var5 = (iVar10._M_node)->_M_left" identifier = (field_expression "(iVar10._M_node)->_M_left" (parenthesized_expression "(iVar10._M_node)" ( (field_expression "iVar10._M_node" identifier . field_identifier) )) -> field_identifier)) ;) }) while (parenthesized_expression "((iVar10._M_node)->_M_left != (_Base_ptr)0x0)" ( (binary_expression "(iVar10._M_node)->_M_left != (_Base_ptr)0x0" (field_expression "(iVar10._M_node)->_M_left" (parenthesized_expression "(iVar10._M_node)" ( (field_expression "iVar10._M_node" identifier . field_identifier) )) -> field_identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_0028a24a:\n                  bVar31 = cVar14._M_node == iVar10._M_node;" statement_identifier : (expression_statement "bVar31 = cVar14._M_node == iVar10._M_node;" (assignment_expression "bVar31 = cVar14._M_node == iVar10._M_node" identifier = (binary_expression "cVar14._M_node == iVar10._M_node" (field_expression "cVar14._M_node" identifier . field_identifier) == (field_expression "iVar10._M_node" identifier . field_identifier))) ;)) (expression_statement "cVar14._M_node = iVar10._M_node;" (assignment_expression "cVar14._M_node = iVar10._M_node" (field_expression "cVar14._M_node" identifier . field_identifier) = (field_expression "iVar10._M_node" identifier . field_identifier)) ;) (if_statement "if (((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;" if (parenthesized_expression "(((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent))))" ( (binary_expression "((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))) ||\n                     ((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))" (parenthesized_expression "((bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1)))" ( (binary_expression "(bVar31) || (target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))" (parenthesized_expression "(bVar31)" ( identifier )) || (parenthesized_expression "(target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1))" ( (binary_expression "target < *(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" identifier < (pointer_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" * (call_expression "(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" (parenthesized_expression "(Target_tilegx<64,_false> **)" ( (comma_expression "Target_tilegx<64,_false> **" (binary_expression "Target_tilegx<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(iVar10._M_node + 1)" ( (binary_expression "iVar10._M_node + 1" (field_expression "iVar10._M_node" identifier . field_identifier) + number_literal) ))))) ))) )) || (parenthesized_expression "((src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)))" ( (parenthesized_expression "(src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent))" ( (comma_expression "src_id.first = (Relobj *)target,\n                      target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._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_tilegx<64,_false> **)(iVar10._M_node + 1) &&\n                      (uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)" (binary_expression "target == *(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" identifier == (pointer_expression "*(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" * (call_expression "(Target_tilegx<64,_false> **)(iVar10._M_node + 1)" (parenthesized_expression "(Target_tilegx<64,_false> **)" ( (comma_expression "Target_tilegx<64,_false> **" (binary_expression "Target_tilegx<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "(iVar10._M_node + 1)" ( (binary_expression "iVar10._M_node + 1" (field_expression "iVar10._M_node" identifier . field_identifier) + number_literal) ))))) && (parenthesized_expression "(uVar15 < *(uint *)&iVar10._M_node[1]._M_parent)" ( (binary_expression "uVar15 < *(uint *)&iVar10._M_node[1]._M_parent" identifier < (pointer_expression "*(uint *)&iVar10._M_node[1]._M_parent" * (cast_expression "(uint *)&iVar10._M_node[1]._M_parent" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar10._M_node[1]._M_parent" & (field_expression "iVar10._M_node[1]._M_parent" (subscript_expression "iVar10._M_node[1]" (field_expression "iVar10._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier))))) )))) )) ))) )) (goto_statement "goto LAB_0028a5e0;" goto statement_identifier ;)) }))) (for_statement "for (p_Var7 = iVar12._M_node[2]._M_left; p_Var7 != (_Base_ptr)0x0;\n                    p_Var7 = *(_Base_ptr *)p_Var7) {\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }" for ( (assignment_expression "p_Var7 = iVar12._M_node[2]._M_left" identifier = (field_expression "iVar12._M_node[2]._M_left" (subscript_expression "iVar12._M_node[2]" (field_expression "iVar12._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)) ; (binary_expression "p_Var7 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ; (assignment_expression "p_Var7 = *(_Base_ptr *)p_Var7" identifier = (pointer_expression "*(_Base_ptr *)p_Var7" * (cast_expression "(_Base_ptr *)p_Var7" ( (type_descriptor "_Base_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ) (compound_statement "{\n                  __node_gen._M_h = (__hashtable_alloc *)&iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_M_parent,&__node_gen,1);\n                }" { (expression_statement "__node_gen._M_h = (__hashtable_alloc *)&iVar10._M_node[1]._M_left;" (assignment_expression "__node_gen._M_h = (__hashtable_alloc *)&iVar10._M_node[1]._M_left" (field_expression "__node_gen._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&iVar10._M_node[1]._M_left" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iVar10._M_node[1]._M_left" & (field_expression "iVar10._M_node[1]._M_left" (subscript_expression "iVar10._M_node[1]" (field_expression "iVar10._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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_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                              *)&iVar10._M_node[1]._M_left,&p_Var7->_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                              *)&iVar10._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 "iVar10._M_node[1]._M_left" (subscript_expression "iVar10._M_node[1]" (field_expression "iVar10._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)) , (comma_expression "&p_Var7->_M_parent,&__node_gen,1" (pointer_expression "&p_Var7->_M_parent" & (field_expression "p_Var7->_M_parent" identifier -> field_identifier)) , (comma_expression "&__node_gen,1" (pointer_expression "&__node_gen" & identifier) , number_literal))) )))) ;))))) })) })) })) })) })) }) (else_clause "else {\n        if (uVar16 < *(uint *)&target[1].field_0x88) {\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88);\n        if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;\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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }\nLAB_0028a359:\n        lVar17 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var22 = pp_Var19;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        } while ((bool)uVar32);\n        bVar31 = false;\n        bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n        if (bVar33) {\n          pp_Var19 = pp_Var19 + 1;\n        }\n        else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }\n        local_140 = pp_Var19;\n        if (bVar30) {\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }\n        if (bVar21 != 0) goto LAB_0028a049;\n      }" else (compound_statement "{\n        if (uVar16 < *(uint *)&target[1].field_0x88) {\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88);\n        if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8);\n        if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;\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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }\nLAB_0028a359:\n        lVar17 = 8;\n        pbVar23 = (byte *)"__start_";\n        pp_Var22 = pp_Var19;\n        do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        } while ((bool)uVar32);\n        bVar31 = false;\n        bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;\n        if (bVar33) {\n          pp_Var19 = pp_Var19 + 1;\n        }\n        else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }\n        local_140 = pp_Var19;\n        if (bVar30) {\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }\n        if (bVar21 != 0) goto LAB_0028a049;\n      }" { (if_statement "if (uVar16 < *(uint *)&target[1].field_0x88) {\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" if (parenthesized_expression "(uVar16 < *(uint *)&target[1].field_0x88)" ( (binary_expression "uVar16 < *(uint *)&target[1].field_0x88" identifier < (pointer_expression "*(uint *)&target[1].field_0x88" * (cast_expression "(uint *)&target[1].field_0x88" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target[1].field_0x88" & (field_expression "target[1].field_0x88" (subscript_expression "target[1]" identifier [ number_literal ]) . field_identifier))))) )) (compound_statement "{\n          dst_id.first = (Relobj *)0x0;\nLAB_0028a4f8:\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_0028a4f8:\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)(uVar16 - *(uint *)&target[1].field_0x88);" (assignment_expression "uVar27 = (ulong)(uVar16 - *(uint *)&target[1].field_0x88)" identifier = (call_expression "(ulong)(uVar16 - *(uint *)&target[1].field_0x88)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 - *(uint *)&target[1].field_0x88)" ( (binary_expression "uVar16 - *(uint *)&target[1].field_0x88" identifier - (pointer_expression "*(uint *)&target[1].field_0x88" * (cast_expression "(uint *)&target[1].field_0x88" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target[1].field_0x88" & (field_expression "target[1].field_0x88" (subscript_expression "target[1]" identifier [ number_literal ]) . field_identifier))))) )))) ;) (if_statement "if ((ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 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[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27)" ( (binary_expression "(ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3) <= uVar27" (call_expression "(ulong)(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3)" ( (binary_expression "*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info\n                   >> 3" (binary_expression "*(long *)&target[2].tilegx_info.machine_code - *(long *)&target[2].tilegx_info" (pointer_expression "*(long *)&target[2].tilegx_info.machine_code" * (cast_expression "(long *)&target[2].tilegx_info.machine_code" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target[2].tilegx_info.machine_code" & (field_expression "target[2].tilegx_info.machine_code" (field_expression "target[2].tilegx_info" (subscript_expression "target[2]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) - (pointer_expression "*(long *)&target[2].tilegx_info" * (cast_expression "(long *)&target[2].tilegx_info" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target[2].tilegx_info" & (field_expression "target[2].tilegx_info" (subscript_expression "target[2]" 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 **)(*(long *)&target[2].tilegx_info + uVar27 * 8);" (assignment_expression "dst_id.first = *(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8)" (field_expression "dst_id.first" identifier . field_identifier) = (pointer_expression "*(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8)" * (cast_expression "(Relobj **)(*(long *)&target[2].tilegx_info + uVar27 * 8)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)&target[2].tilegx_info + uVar27 * 8)" ( (binary_expression "*(long *)&target[2].tilegx_info + uVar27 * 8" (pointer_expression "*(long *)&target[2].tilegx_info" * (cast_expression "(long *)&target[2].tilegx_info" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&target[2].tilegx_info" & (field_expression "target[2].tilegx_info" (subscript_expression "target[2]" identifier [ number_literal ]) . field_identifier)))) + (binary_expression "uVar27 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (dst_id.first == (Relobj *)0x0) goto LAB_0028a4f8;" 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_0028a4f8;" 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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }\n        else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\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          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n          if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }\n        }" { (expression_statement "pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;" (assignment_expression "pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_" identifier = (cast_expression "(Relobj *)((dst_id.first)->super_Object).xindex_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (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 "local_120 = ((anon_union_8_3_b0f6f408_for_u1_ *)\n                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;" (assignment_expression "local_120 = ((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_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;" (assignment_expression "local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3" identifier = (binary_expression "(long)&(pRVar25->super_Object)._vptr_Object + uVar3" (cast_expression "(long)&(pRVar25->super_Object)._vptr_Object" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(pRVar25->super_Object)._vptr_Object" & (field_expression "(pRVar25->super_Object)._vptr_Object" (parenthesized_expression "(pRVar25->super_Object)" ( (field_expression "pRVar25->super_Object" identifier -> field_identifier) )) . field_identifier))) + identifier)) ;) (if_statement "if (((ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish & 0x100000000) == 0) {\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }\n          else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }" if (parenthesized_expression "(((ulong)local_120->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_120->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_120->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_120->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_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish" (field_expression "(ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "(ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold::Output_data*,_std" (binary_expression "(ulong)local_120->output_lists_[2].\n                      super__Vector_base<gold" (cast_expression "(ulong)local_120->output_lists_[2].\n                      super__Vector_base" ( (type_descriptor "ulong" type_identifier) ) (field_expression "local_120->output_lists_[2].\n                      super__Vector_base" (subscript_expression "local_120->output_lists_[2]" (field_expression "local_120->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;\n            bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;\n            bVar21 = *(byte *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            uVar28 = bVar18 < 2;\n            uVar32 = bVar18 == 2;\n            if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          }" { (expression_statement "local_104 = *(uint *)&((dst_id.first)->super_Object).name_.field_2;" (assignment_expression "local_104 = *(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 "bVar18 = (byte)((dst_id.first)->super_Object).shnum_ & 0xf;" (assignment_expression "bVar18 = (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 "uVar28 = bVar18 < 2;" (assignment_expression "uVar28 = bVar18 < 2" identifier = (binary_expression "bVar18 < 2" identifier < number_literal)) ;) (expression_statement "uVar32 = bVar18 == 2;" (assignment_expression "uVar32 = bVar18 == 2" identifier = (binary_expression "bVar18 == 2" identifier == number_literal)) ;) (if_statement "if ((bool)uVar32) {\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }" if (parenthesized_expression "((bool)uVar32)" ( (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n              uVar28 = 0;\n              uVar32 = local_135 == '\0';\n              if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }\n            }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar32 = local_135 == '\0';" (assignment_expression "uVar32 = local_135 == '\0'" identifier = (binary_expression "local_135 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar32) {\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }" if (parenthesized_expression "(!(bool)uVar32)" ( (unary_expression "!(bool)uVar32" ! (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar28 = false;\n                uVar32 = bVar21 == 0;\n                if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;\n                local_b8 = local_120;\n                local_b0 = local_104;\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              }" { (expression_statement "uVar28 = false;" (assignment_expression "uVar28 = false" identifier = false) ;) (expression_statement "uVar32 = bVar21 == 0;" (assignment_expression "uVar32 = bVar21 == 0" identifier = (binary_expression "bVar21 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar32) {\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }" if (parenthesized_expression "(!(bool)uVar32)" ( (unary_expression "!(bool)uVar32" ! (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                  pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n                  lVar17 = 0x16;\n                  pp_Var22 = pp_Var19;\n                  pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);\n                  uVar28 = 0;\n                  uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;\n                  if ((bool)uVar32) goto LAB_0028a359;\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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }\n                  uVar16 = local_118 - 0x24;\n                  uVar28 = uVar16 < 0x27;\n                  uVar32 = uVar16 == 0x27;\n                  if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;\n                }" { (expression_statement "pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var19 = ((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 "lVar17 = 0x16;" (assignment_expression "lVar17 = 0x16" identifier = number_literal) ;) (expression_statement "pp_Var22 = pp_Var19;" (assignment_expression "pp_Var22 = pp_Var19" identifier = identifier) ;) (expression_statement "pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar23 = (byte *)"_GLOBAL_OFFSET_TABLE_"" identifier = (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content "))) ;) (do_statement "do {\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  } while ((bool)uVar32);" do (compound_statement "{\n                    bVar31 = (bool)uVar28;\n                    if (lVar17 == 0) break;\n                    lVar17 = lVar17 + -1;\n                    uVar28 = *(byte *)pp_Var22 < *pbVar23;\n                    uVar32 = *(byte *)pp_Var22 == *pbVar23;\n                    pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n                    pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n                    bVar31 = (bool)uVar28;\n                  }" { (expression_statement "bVar31 = (bool)uVar28;" (assignment_expression "bVar31 = (bool)uVar28" identifier = (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "uVar28 = *(byte *)pp_Var22 < *pbVar23;" (assignment_expression "uVar28 = *(byte *)pp_Var22 < *pbVar23" identifier = (binary_expression "*(byte *)pp_Var22 < *pbVar23" (pointer_expression "*(byte *)pp_Var22" * (cast_expression "(byte *)pp_Var22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "uVar32 = *(byte *)pp_Var22 == *pbVar23;" (assignment_expression "uVar32 = *(byte *)pp_Var22 == *pbVar23" identifier = (binary_expression "*(byte *)pp_Var22 == *pbVar23" (pointer_expression "*(byte *)pp_Var22" * (cast_expression "(byte *)pp_Var22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);" (assignment_expression "pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pp_Var22 + (ulong)bVar34 * -2 + 1)" ( (binary_expression "(long)pp_Var22 + (ulong)bVar34 * -2 + 1" (binary_expression "(long)pp_Var22 + (ulong)bVar34 * -2" (cast_expression "(long)pp_Var22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar34 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar34 * -2" identifier + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar31 = (bool)uVar28;" (assignment_expression "bVar31 = (bool)uVar28" identifier = (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) }) while (parenthesized_expression "((bool)uVar32)" ( (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar32 = (!bVar31 && !(bool)uVar32) == bVar31;" (assignment_expression "uVar32 = (!bVar31 && !(bool)uVar32) == bVar31" identifier = (binary_expression "(!bVar31 && !(bool)uVar32) == bVar31" (parenthesized_expression "(!bVar31 && !(bool)uVar32)" ( (binary_expression "!bVar31 && !(bool)uVar32" (unary_expression "!bVar31" ! identifier) && (unary_expression "!(bool)uVar32" ! (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == identifier)) ;) (if_statement "if ((bool)uVar32) goto LAB_0028a359;" if (parenthesized_expression "((bool)uVar32)" ( (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier) )) (goto_statement "goto LAB_0028a359;" goto statement_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_->shared_).value != false) {\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }" if (parenthesized_expression "((parameters->options_->shared_).value != false)" ( (binary_expression "(parameters->options_->shared_).value != false" (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) != false) )) (compound_statement "{\n                    uVar28 = false;\n                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;\n                    if (!(bool)uVar32) goto LAB_0028a6f0;\n                  }" { (expression_statement "uVar28 = false;" (assignment_expression "uVar28 = false" identifier = false) ;) (expression_statement "uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;" (assignment_expression "uVar32 = (((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)) ;) (if_statement "if (!(bool)uVar32) goto LAB_0028a6f0;" if (parenthesized_expression "(!(bool)uVar32)" ( (unary_expression "!(bool)uVar32" ! (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0028a6f0;" goto statement_identifier ;)) })) (expression_statement "uVar16 = local_118 - 0x24;" (assignment_expression "uVar16 = local_118 - 0x24" identifier = (binary_expression "local_118 - 0x24" identifier - number_literal)) ;) (expression_statement "uVar28 = uVar16 < 0x27;" (assignment_expression "uVar28 = uVar16 < 0x27" identifier = (binary_expression "uVar16 < 0x27" identifier < number_literal)) ;) (expression_statement "uVar32 = uVar16 == 0x27;" (assignment_expression "uVar32 = uVar16 == 0x27" identifier = (binary_expression "uVar16 == 0x27" identifier == number_literal)) ;) (if_statement "if ((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))\n                  goto LAB_0028a359;" if (parenthesized_expression "((0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28))" ( (binary_expression "(0x27 < uVar16) ||\n                     (uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28)" (parenthesized_expression "(0x27 < uVar16)" ( (binary_expression "0x27 < uVar16" number_literal < identifier) )) || (parenthesized_expression "(uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28)" ( (comma_expression "uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0, !(bool)uVar28" (assignment_expression "uVar28 = (0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0" identifier = (binary_expression "(0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1) != 0" (parenthesized_expression "(0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1)" ( (binary_expression "0xf03fffffffU >> ((ulong)uVar16 & 0x3f) & 1" (binary_expression "0xf03fffffffU >> ((ulong)uVar16 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)uVar16 & 0x3f)" ( (binary_expression "(ulong)uVar16 & 0x3f" (cast_expression "(ulong)uVar16" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal)) , (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_0028a359;" goto statement_identifier ;)) })) (labeled_statement "LAB_0028a6f0:\n                __node_gen_3._M_h = (__hashtable_alloc *)&symtab->icf_->fptr_section_id_;" statement_identifier : (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_120;" (assignment_expression "local_b8 = local_120" identifier = identifier) ;) (expression_statement "local_b0 = local_104;" (assignment_expression "local_b0 = local_104" 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 "pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var19 = ((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)) ;) }) (else_clause "else {\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }" else (compound_statement "{\n            local_104 = 0;\n            pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n            uVar28 = 0;\n            bVar21 = 0;\n            uVar32 = 1;\n            local_120 = (Output_segment *)0x0;\n          }" { (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var19 = ((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 "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar32 = 1;" (assignment_expression "uVar32 = 1" identifier = number_literal) ;) (expression_statement "local_120 = (Output_segment *)0x0;" (assignment_expression "local_120 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }" else (compound_statement "{\n          pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;\n          pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;\n          uVar28 = 0;\n          bVar21 = 0;\n          uVar32 = 1;\n          local_104 = 0;\n          local_120 = (Output_segment *)0x0;\n          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;\n        }" { (expression_statement "pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_;" (assignment_expression "pRVar25 = (Relobj *)((dst_id.first)->super_Object).xindex_" identifier = (cast_expression "(Relobj *)((dst_id.first)->super_Object).xindex_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (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 "pp_Var19 = ((dst_id.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var19 = ((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 "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar32 = 1;" (assignment_expression "uVar32 = 1" identifier = number_literal) ;) (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "local_120 = (Output_segment *)0x0;" (assignment_expression "local_120 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3;" (assignment_expression "local_130 = (long)&(pRVar25->super_Object)._vptr_Object + uVar3" identifier = (binary_expression "(long)&(pRVar25->super_Object)._vptr_Object + uVar3" (cast_expression "(long)&(pRVar25->super_Object)._vptr_Object" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(pRVar25->super_Object)._vptr_Object" & (field_expression "(pRVar25->super_Object)._vptr_Object" (parenthesized_expression "(pRVar25->super_Object)" ( (field_expression "pRVar25->super_Object" identifier -> field_identifier) )) . field_identifier))) + identifier)) ;) }))) (labeled_statement "LAB_0028a359:\n        lVar17 = 8;" statement_identifier : (expression_statement "lVar17 = 8;" (assignment_expression "lVar17 = 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_Var22 = pp_Var19;" (assignment_expression "pp_Var22 = pp_Var19" identifier = identifier) ;) (do_statement "do {\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        } while ((bool)uVar32);" do (compound_statement "{\n          if (lVar17 == 0) break;\n          lVar17 = lVar17 + -1;\n          uVar28 = *pbVar23 < *(byte *)pp_Var22;\n          uVar32 = *pbVar23 == *(byte *)pp_Var22;\n          pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n          pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n        }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "uVar28 = *pbVar23 < *(byte *)pp_Var22;" (assignment_expression "uVar28 = *pbVar23 < *(byte *)pp_Var22" identifier = (binary_expression "*pbVar23 < *(byte *)pp_Var22" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*(byte *)pp_Var22" * (cast_expression "(byte *)pp_Var22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "uVar32 = *pbVar23 == *(byte *)pp_Var22;" (assignment_expression "uVar32 = *pbVar23 == *(byte *)pp_Var22" identifier = (binary_expression "*pbVar23 == *(byte *)pp_Var22" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*(byte *)pp_Var22" * (cast_expression "(byte *)pp_Var22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar34 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar34 * -2" identifier + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);" (assignment_expression "pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pp_Var22 + (ulong)bVar34 * -2 + 1)" ( (binary_expression "(long)pp_Var22 + (ulong)bVar34 * -2 + 1" (binary_expression "(long)pp_Var22 + (ulong)bVar34 * -2" (cast_expression "(long)pp_Var22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "((bool)uVar32)" ( (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;" (assignment_expression "bVar33 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28" identifier = (binary_expression "(!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28" (parenthesized_expression "(!(bool)uVar28 && !(bool)uVar32)" ( (binary_expression "!(bool)uVar28 && !(bool)uVar32" (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar32" ! (cast_expression "(bool)uVar32" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar33) {\n          pp_Var19 = pp_Var19 + 1;\n        }\n        else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }" if (parenthesized_expression "(bVar33)" ( identifier )) (compound_statement "{\n          pp_Var19 = pp_Var19 + 1;\n        }" { (expression_statement "pp_Var19 = pp_Var19 + 1;" (assignment_expression "pp_Var19 = pp_Var19 + 1" identifier = (binary_expression "pp_Var19 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }" else (compound_statement "{\n          lVar17 = 7;\n          pbVar23 = (byte *)"__stop_";\n          pp_Var22 = pp_Var19;\n          do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);\n          pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);\n          if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }\n        }" { (expression_statement "lVar17 = 7;" (assignment_expression "lVar17 = 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_Var22 = pp_Var19;" (assignment_expression "pp_Var22 = pp_Var19" identifier = identifier) ;) (do_statement "do {\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          } while (bVar33);" do (compound_statement "{\n            if (lVar17 == 0) break;\n            lVar17 = lVar17 + -1;\n            bVar31 = *pbVar23 < *(byte *)pp_Var22;\n            bVar33 = *pbVar23 == *(byte *)pp_Var22;\n            pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;\n            pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);\n          }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar23 < *(byte *)pp_Var22;" (assignment_expression "bVar31 = *pbVar23 < *(byte *)pp_Var22" identifier = (binary_expression "*pbVar23 < *(byte *)pp_Var22" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*(byte *)pp_Var22" * (cast_expression "(byte *)pp_Var22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar33 = *pbVar23 == *(byte *)pp_Var22;" (assignment_expression "bVar33 = *pbVar23 == *(byte *)pp_Var22" identifier = (binary_expression "*pbVar23 == *(byte *)pp_Var22" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*(byte *)pp_Var22" * (cast_expression "(byte *)pp_Var22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar34 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar34 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar34 * -2" identifier + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1);" (assignment_expression "pp_Var22 = (_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((long)pp_Var22 + (ulong)bVar34 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pp_Var22 + (ulong)bVar34 * -2 + 1)" ( (binary_expression "(long)pp_Var22 + (ulong)bVar34 * -2 + 1" (binary_expression "(long)pp_Var22 + (ulong)bVar34 * -2" (cast_expression "(long)pp_Var22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar34 * -2" (cast_expression "(ulong)bVar34" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar33)" ( identifier )) ;) (expression_statement "pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7);" (assignment_expression "pp_Var19 = (_func_int_varargs **)((long)pp_Var19 + 7)" identifier = (cast_expression "(_func_int_varargs **)((long)pp_Var19 + 7)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pp_Var19 + 7)" ( (binary_expression "(long)pp_Var19 + 7" (cast_expression "(long)pp_Var19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (if_statement "if ((!bVar31 && !bVar33) != bVar31) {\n            pp_Var19 = local_140;\n          }" if (parenthesized_expression "((!bVar31 && !bVar33) != bVar31)" ( (binary_expression "(!bVar31 && !bVar33) != bVar31" (parenthesized_expression "(!bVar31 && !bVar33)" ( (binary_expression "!bVar31 && !bVar33" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) != identifier) )) (compound_statement "{\n            pp_Var19 = local_140;\n          }" { (expression_statement "pp_Var19 = local_140;" (assignment_expression "pp_Var19 = local_140" identifier = identifier) ;) })) }))) (expression_statement "local_140 = pp_Var19;" (assignment_expression "local_140 = pp_Var19" identifier = identifier) ;) (if_statement "if (bVar30) {\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }" if (parenthesized_expression "(bVar30)" ( identifier )) (compound_statement "{\n          if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          __position._M_current =\n               (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;\n          if (__position._M_current ==\n              (local_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;\n          }\n          src_id.first = pRVar25;\n          src_id._8_8_ = uVar3;\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_168,(pair<long_long_int,_long_long_int> *)&src_id);\n          src_id.first = (Relobj *)*puVar26;\n          iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;\n          if (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._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_170,(uint *)&src_id_2);\n        }" { (if_statement "if (bVar21 == 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }\n          else {\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 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_160->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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);" (binary_expression "Relobj*,_unsigned_int>_>\n                      (&local_160->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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" ( (comma_expression "&local_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id" (pointer_expression "&local_160->section_info" & (field_expression "local_160->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.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }" else (compound_statement "{\n            src_id.first = (Relobj *)local_120;\n            src_id.second = local_104;\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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);\n          }" { (expression_statement "src_id.first = (Relobj *)local_120;" (assignment_expression "src_id.first = (Relobj *)local_120" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_120" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = local_104;" (assignment_expression "src_id.second = local_104" (field_expression "src_id.second" identifier . field_identifier) = 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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id);" (binary_expression "Relobj*,_unsigned_int>_>\n                      (&local_160->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_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id)" ( (comma_expression "&local_160->section_info,(pair<gold::Relobj*,_unsigned_int> *)&src_id" (pointer_expression "&local_160->section_info" & (field_expression "local_160->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_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish;" (assignment_expression "__position._M_current =\n               (local_158->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_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl._M_finish" (field_expression "(local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n               _M_impl" (parenthesized_expression "(local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_158->super__Vector_base<gold" (field_expression "local_158->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_158->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_158,__position,(Symbol **)&dst_id);\n          }\n          else {\n            *__position._M_current = (Symbol *)dst_id.first;\n            (local_158->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_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage)" ( (binary_expression "__position._M_current ==\n              (local_158->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_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n              ._M_end_of_storage" (field_expression "(local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_158->super__Vector_base<gold" (field_expression "local_158->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_158,__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_158,__position,(Symbol **)&dst_id);" (binary_expression "Symbol*_const&>(local_158,__position,(Symbol **)&dst_id)" (binary_expression "Symbol*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "(local_158,__position,(Symbol **)&dst_id)" ( (comma_expression "local_158,__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_158->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_158->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_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1;" (assignment_expression "(local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = __position._M_current + 1" (field_expression "(local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish" (field_expression "(local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_158->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_158->super__Vector_base<gold" (field_expression "local_158->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 = pRVar25;" (assignment_expression "src_id.first = pRVar25" (field_expression "src_id.first" identifier . field_identifier) = identifier) ;) (expression_statement "src_id._8_8_ = uVar3;" (assignment_expression "src_id._8_8_ = uVar3" (field_expression "src_id._8_8_" identifier . field_identifier) = 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_168,(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_168,(pair<long_long_int,_long_long_int> *)&src_id);" (comma_expression "pair<long_long_int,_long_long_int>_>\n                    (local_168,(pair<long_long_int,_long_long_int> *)&src_id)" (binary_expression "pair<long_long_int" identifier < identifier) , (binary_expression "_long_long_int>_>\n                    (local_168,(pair<long_long_int,_long_long_int> *)&src_id)" (binary_expression "_long_long_int>_" identifier > identifier) > (parenthesized_expression "(local_168,(pair<long_long_int,_long_long_int> *)&src_id)" ( (comma_expression "local_168,(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 *)*puVar26;" (assignment_expression "src_id.first = (Relobj *)*puVar26" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)*puVar26" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar26" * identifier))) ;) (expression_statement "iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish;" (assignment_expression "iVar2._M_current =\n               (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish" (field_expression "iVar2._M_current" identifier . field_identifier) = (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl._M_finish" (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )._M_impl" (parenthesized_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>\n               )" ( (ERROR "local_148->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_148->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_148->super__Vector_base<long_unsigned_int" (field_expression "local_148->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 (iVar2._M_current ==\n              (local_148->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_148,iVar2,(ulong *)&src_id);\n          }\n          else {\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._M_current + 1;\n          }" if (parenthesized_expression "(iVar2._M_current ==\n              (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage)" ( (binary_expression "iVar2._M_current ==\n              (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage" (field_expression "iVar2._M_current" identifier . field_identifier) == (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl._M_end_of_storage" (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)\n              ._M_impl" (parenthesized_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)" ( (ERROR "local_148->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_148->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_148->super__Vector_base<long_unsigned_int" (field_expression "local_148->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_148,iVar2,(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_148,iVar2,(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_148,iVar2,(ulong *)&src_id);" (binary_expression "_M_realloc_insert<long_unsigned_int_const&>(local_148,iVar2,(ulong *)&src_id)" (binary_expression "_M_realloc_insert<long_unsigned_int_const" identifier < identifier) (ERROR "&" &) > (parenthesized_expression "(local_148,iVar2,(ulong *)&src_id)" ( (comma_expression "local_148,iVar2,(ulong *)&src_id" identifier , (comma_expression "iVar2,(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            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._M_current + 1;\n          }" else (compound_statement "{\n            *iVar2._M_current = (ulong)src_id.first;\n            (local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._M_current + 1;\n          }" { (expression_statement "*iVar2._M_current = (ulong)src_id.first;" (assignment_expression "*iVar2._M_current = (ulong)src_id.first" (pointer_expression "*iVar2._M_current" * (field_expression "iVar2._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_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._M_current + 1;" (assignment_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish = iVar2._M_current + 1" (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_148->super__Vector_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>)" ( (ERROR "local_148->super__Vector_base<long_unsigned_int,_std::" (comma_expression "local_148->super__Vector_base<long_unsigned_int,_std" (binary_expression "local_148->super__Vector_base<long_unsigned_int" (field_expression "local_148->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 "iVar2._M_current + 1" (field_expression "iVar2._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_170,(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_170,(uint *)&src_id_2);" (binary_expression "emplace_back<unsigned_int>\n                    (local_170,(uint *)&src_id_2)" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(local_170,(uint *)&src_id_2)" ( (comma_expression "local_170,(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 (bVar21 != 0) goto LAB_0028a049;" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0028a049;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00289ec8:\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 "puVar26 = puVar26 + 3;" (assignment_expression "puVar26 = puVar26 + 3" identifier = (binary_expression "puVar26 + 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_00289cb0(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,ulong param_7,long param_8)\n\n{\n  undefined8 *puVar1;\n  ulong uVar2;\n  long *plVar3;\n  code *pcVar4;\n  char cVar5;\n  long lVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  long lVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  ulong uVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_170;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_148;\n  byte *local_140;\n  char local_135;\n  byte *local_130;\n  byte *local_120;\n  int local_118;\n  uint local_104;\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  bVar26 = 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 {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar17 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 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_00289cb0(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,ulong param_7,long param_8)\n\n{\n  undefined8 *puVar1;\n  ulong uVar2;\n  long *plVar3;\n  code *pcVar4;\n  char cVar5;\n  long lVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  long lVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  ulong uVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_170;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_148;\n  byte *local_140;\n  char local_135;\n  byte *local_130;\n  byte *local_120;\n  int local_118;\n  uint local_104;\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  bVar26 = 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 {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar17 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 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_00289cb0(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,ulong param_7,long param_8)" identifier (parameter_list "(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,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 "undefined8 *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  undefined8 *puVar1;\n  ulong uVar2;\n  long *plVar3;\n  code *pcVar4;\n  char cVar5;\n  long lVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  long lVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  ulong uVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_170;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_148;\n  byte *local_140;\n  char local_135;\n  byte *local_130;\n  byte *local_120;\n  int local_118;\n  uint local_104;\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  bVar26 = 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 {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar17 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "undefined1 uVar20;" type_identifier identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "long local_170;" (sized_type_specifier "long" long) 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_148;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *local_140;" type_identifier (pointer_declarator "*local_140" * identifier) ;) (declaration "char local_135;" primitive_type identifier ;) (declaration "byte *local_130;" type_identifier (pointer_declarator "*local_130" * identifier) ;) (declaration "byte *local_120;" type_identifier (pointer_declarator "*local_120" * identifier) ;) (declaration "int local_118;" primitive_type identifier ;) (declaration "uint local_104;" type_identifier 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 "bVar26 = 0;" (assignment_expression "bVar26 = 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 {\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 {\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 "pbVar17 = local_78[0];" (assignment_expression "pbVar17 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }" { (labeled_statement "LAB_00289d45:\n    bVar22 = false;" statement_identifier : (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;)) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" identifier = number_literal) ;) (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" identifier = number_literal) ;) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" identifier = number_literal) ;) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }" else (compound_statement "{\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }" { (expression_statement "pbVar13 = (byte *)0xffffffffffffffff;" (assignment_expression "pbVar13 = (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 "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = local_78[0] == (byte *)0x0;" (assignment_expression "uVar24 = 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)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }" if (parenthesized_expression "(!(bool)uVar24)" ( (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }" { (expression_statement "sVar7 = strlen((char *)local_78[0]);" (assignment_expression "sVar7 = 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 "pbVar13 = pbVar17 + sVar7;" (assignment_expression "pbVar13 = pbVar17 + sVar7" identifier = (binary_expression "pbVar17 + sVar7" identifier + identifier)) ;) })) (expression_statement "FUN_001a61c0(&local_58,pbVar17,pbVar13);" (call_expression "FUN_001a61c0(&local_58,pbVar17,pbVar13)" identifier (argument_list "(&local_58,pbVar17,pbVar13)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "lVar15 = 5;" (assignment_expression "lVar15 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".text";" (assignment_expression "pbVar17 = (byte *)".text"" identifier = (cast_expression "(byte *)".text"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".text"" " string_content "))) ;) (expression_statement "pbVar13 = local_58;" (assignment_expression "pbVar13 = local_58" identifier = identifier) ;) (do_statement "do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);" do (compound_statement "{\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar20 = *pbVar17 < *pbVar13;" (assignment_expression "uVar20 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "uVar24 = *pbVar17 == *pbVar13;" (assignment_expression "uVar24 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;" (assignment_expression "bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" identifier = (binary_expression "(!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" (parenthesized_expression "(!(bool)uVar20 && !(bool)uVar24)" ( (binary_expression "!(bool)uVar20 && !(bool)uVar24" (unary_expression "!(bool)uVar20" ! (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\n      }\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\n      }\n    }" { (expression_statement "lVar15 = 0xf;" (assignment_expression "lVar15 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".gnu.linkonce.t";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_58;" (assignment_expression "pbVar13 = local_58" identifier = identifier) ;) (do_statement "do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);" do (compound_statement "{\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar17 < *pbVar13;" (assignment_expression "bVar22 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\n      }" if (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" ( (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_00289d45;" 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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);" (assignment_expression "local_160 = 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_158 = local_160 + 0x18;" (assignment_expression "local_158 = local_160 + 0x18" identifier = (binary_expression "local_160 + 0x18" identifier + number_literal)) ;) (expression_statement "local_148 = local_160 + 0x48;" (assignment_expression "local_148 = local_160 + 0x48" identifier = (binary_expression "local_160 + 0x48" identifier + number_literal)) ;) (expression_statement "local_168 = local_160 + 0x30;" (assignment_expression "local_168 = local_160 + 0x30" identifier = (binary_expression "local_160 + 0x30" identifier + number_literal)) ;) (expression_statement "local_170 = local_160 + 0x60;" (assignment_expression "local_170 = local_160 + 0x60" identifier = (binary_expression "local_160 + 0x60" identifier + number_literal)) ;) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) }))) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \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                    \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     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0'))" ( (binary_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\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 "(cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')" ( (comma_expression "cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0'" (assignment_expression "cVar5 = (**(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 "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "pcVar4 = *(code **)(*param_2 + 0x10);" (assignment_expression "pcVar4 = *(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 (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" if (parenthesized_expression "(pcVar4 != FUN_001a5310)" ( (binary_expression "pcVar4 != FUN_001a5310" identifier != identifier) )) (compound_statement "{\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" { (expression_statement "local_135 = (*pcVar4)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar4)(param_2,local_78[0])" identifier = (call_expression "(*pcVar4)(param_2,local_78[0])" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00289da4;" goto statement_identifier ;) })) (expression_statement "pcVar4 = *(code **)(*param_2 + 0x98);" (assignment_expression "pcVar4 = *(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 "bVar23 = pcVar4 < FUN_001a53d0;" (assignment_expression "bVar23 = pcVar4 < FUN_001a53d0" identifier = (binary_expression "pcVar4 < FUN_001a53d0" identifier < identifier)) ;) (expression_statement "bVar25 = pcVar4 == FUN_001a53d0;" (assignment_expression "bVar25 = pcVar4 == FUN_001a53d0" identifier = (binary_expression "pcVar4 == FUN_001a53d0" identifier == identifier)) ;) (if_statement "if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" { (expression_statement "local_135 = (*pcVar4)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar4)(param_2,local_78[0])" identifier = (call_expression "(*pcVar4)(param_2,local_78[0])" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(param_2,local_78[0])" ( identifier , (subscript_expression "local_78[0]" identifier [ number_literal ]) )))) ;) (goto_statement "goto LAB_00289da4;" goto statement_identifier ;) })) (expression_statement "lVar15 = 0xc;" (assignment_expression "lVar15 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".rodata._ZTV";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);" do (compound_statement "{\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar17 < *pbVar13;" (assignment_expression "bVar23 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar25 = *pbVar17 == *pbVar13;" (assignment_expression "bVar25 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }" { (expression_statement "lVar15 = 0x11;" (assignment_expression "lVar15 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".data.rel.ro._ZTV";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);" do (compound_statement "{\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar13;" (assignment_expression "bVar21 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar23 = (!bVar21 && !bVar23) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" ( (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }" { (expression_statement "lVar15 = 0xc;" (assignment_expression "lVar15 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".rodata._ZTC";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);" do (compound_statement "{\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar13;" (assignment_expression "bVar25 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }" { (expression_statement "lVar15 = 0x11;" (assignment_expression "lVar15 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".data.rel.ro._ZTC";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);" do (compound_statement "{\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar13;" (assignment_expression "bVar21 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar23 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar23 = (!bVar21 && !bVar23) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" ( (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }" { (expression_statement "lVar15 = 9;" (assignment_expression "lVar15 = 9" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".eh_frame";" (assignment_expression "pbVar17 = (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);" do (compound_statement "{\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar13;" (assignment_expression "bVar25 = *pbVar17 < *pbVar13" identifier = (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" identifier = (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "local_135 = (!bVar25 && !bVar23) != bVar25;" (assignment_expression "local_135 = (!bVar25 && !bVar23) != bVar25" identifier = (binary_expression "(!bVar25 && !bVar23) != bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" ( (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00289da4;" goto statement_identifier ;) })) })) })) })) })) (expression_statement "local_135 = '\0';" (assignment_expression "local_135 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);\n  }" statement_identifier : (if_statement "if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 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_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);\n  }" { (expression_statement "local_140 = (byte *)0x0;" (assignment_expression "local_140 = (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) ;) (do_statement "do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);" do (compound_statement "{\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    }" { (expression_statement "uVar19 = param_5[1];" (assignment_expression "uVar19 = param_5[1]" identifier = (subscript_expression "param_5[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_5[2];" (assignment_expression "uVar2 = param_5[2]" identifier = (subscript_expression "param_5[2]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = (uint)(uVar19 >> 0x20);" (assignment_expression "uVar12 = (uint)(uVar19 >> 0x20)" identifier = (call_expression "(uint)(uVar19 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 >> 0x20)" ( (binary_expression "uVar19 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_118 = (int)uVar19;" (assignment_expression "local_118 = (int)uVar19" identifier = (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }" if (parenthesized_expression "(uVar19 >> 0x20 < param_7)" ( (binary_expression "uVar19 >> 0x20 < param_7" (binary_expression "uVar19 >> 0x20" identifier >> number_literal) < identifier) )) (compound_statement "{\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 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 "lVar15 = (ulong)(uVar12 * 0x18) + param_8;" (assignment_expression "lVar15 = (ulong)(uVar12 * 0x18) + param_8" identifier = (binary_expression "(ulong)(uVar12 * 0x18) + param_8" (call_expression "(ulong)(uVar12 * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 * 0x18)" ( (binary_expression "uVar12 * 0x18" identifier * number_literal) ))) + identifier)) ;) (expression_statement "local_104 = (uint)*(ushort *)(lVar15 + 6);" (assignment_expression "local_104 = (uint)*(ushort *)(lVar15 + 6)" identifier = (binary_expression "(uint)*(ushort *)(lVar15 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(lVar15 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 6)" ( (binary_expression "lVar15 + 6" identifier + number_literal) ))))) ;) (if_statement "if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }" if (parenthesized_expression "(local_104 < 0xff00)" ( (binary_expression "local_104 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }" { (labeled_statement "LAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);" statement_identifier : (expression_statement "pbVar17 = *(byte **)(lVar15 + 8);" (assignment_expression "pbVar17 = *(byte **)(lVar15 + 8)" identifier = (pointer_expression "*(byte **)(lVar15 + 8)" * (cast_expression "(byte **)(lVar15 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 8)" ( (binary_expression "lVar15 + 8" identifier + number_literal) ))))) ;)) (expression_statement "local_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" identifier = (binary_expression "pbVar17 + uVar2" identifier + identifier)) ;) (if_statement "if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }" { (expression_statement "local_50 = CONCAT44(local_50._4_4_,local_104);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,local_104)" identifier = (call_expression "CONCAT44(local_50._4_4_,local_104)" identifier (argument_list "(local_50._4_4_,local_104)" ( (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_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) (if_statement "if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;" if (parenthesized_expression "((*(byte *)(lVar15 + 4) & 0xf) == 3)" ( (binary_expression "(*(byte *)(lVar15 + 4) & 0xf) == 3" (parenthesized_expression "(*(byte *)(lVar15 + 4) & 0xf)" ( (binary_expression "*(byte *)(lVar15 + 4) & 0xf" (pointer_expression "*(byte *)(lVar15 + 4)" * (cast_expression "(byte *)(lVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 4)" ( (binary_expression "lVar15 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00289f81;" goto statement_identifier ;)) (labeled_statement "LAB_00289e47:\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_158,&local_58);" (call_expression "FUN_001a7300(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (goto_statement "goto LAB_00289e62;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }" else (compound_statement "{\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }" { (if_statement "if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }" if (parenthesized_expression "(local_104 == 0xffff)" ( (binary_expression "local_104 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }" { (expression_statement "lVar9 = *(long *)(param_3 + 0x40);" (assignment_expression "lVar9 = *(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 (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }" { (expression_statement "lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);" (assignment_expression "lVar9 = (**(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) = lVar9;" (assignment_expression "*(long *)(param_3 + 0x40) = lVar9" (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 "local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);" (assignment_expression "local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20)" identifier = (call_expression "FUN_00392c60(lVar9,param_3,uVar19 >> 0x20)" identifier (argument_list "(lVar9,param_3,uVar19 >> 0x20)" ( identifier , identifier , (binary_expression "uVar19 >> 0x20" identifier >> number_literal) )))) ;) (goto_statement "goto LAB_00289f33;" goto statement_identifier ;) })) (expression_statement "pbVar17 = *(byte **)(lVar15 + 8);" (assignment_expression "pbVar17 = *(byte **)(lVar15 + 8)" identifier = (pointer_expression "*(byte **)(lVar15 + 8)" * (cast_expression "(byte **)(lVar15 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 8)" ( (binary_expression "lVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" identifier = (binary_expression "pbVar17 + uVar2" identifier + identifier)) ;) (if_statement "if (!bVar22) goto LAB_00289ec8;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_00289ec8;" 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_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (if_statement "if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;" if (parenthesized_expression "((*(byte *)(lVar15 + 4) & 0xf) != 3)" ( (binary_expression "(*(byte *)(lVar15 + 4) & 0xf) != 3" (parenthesized_expression "(*(byte *)(lVar15 + 4) & 0xf)" ( (binary_expression "*(byte *)(lVar15 + 4) & 0xf" (pointer_expression "*(byte *)(lVar15 + 4)" * (cast_expression "(byte *)(lVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 4)" ( (binary_expression "lVar15 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00289e47;" goto statement_identifier ;)) (labeled_statement "LAB_00289f81:\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_158,&local_58);" (call_expression "FUN_001a7300(local_158,&local_58)" identifier (argument_list "(local_158,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (labeled_statement "LAB_00289e62:\n          local_58 = pbVar17;" statement_identifier : (expression_statement "local_58 = pbVar17;" (assignment_expression "local_58 = pbVar17" identifier = identifier) ;)) (expression_statement "local_50 = uVar2;" (assignment_expression "local_50 = uVar2" identifier = identifier) ;) (expression_statement "FUN_001a74a0(local_168,&local_58);" (call_expression "FUN_001a74a0(local_168,&local_58)" identifier (argument_list "(local_168,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "local_58 = (byte *)*param_5;" (assignment_expression "local_58 = (byte *)*param_5" identifier = (cast_expression "(byte *)*param_5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "puVar1 = *(undefined8 **)(local_148 + 8);" (assignment_expression "puVar1 = *(undefined8 **)(local_148 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_148 + 8)" * (cast_expression "(undefined8 **)(local_148 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" if (parenthesized_expression "(puVar1 == *(undefined8 **)(local_148 + 0x10))" ( (binary_expression "puVar1 == *(undefined8 **)(local_148 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_148 + 0x10)" * (cast_expression "(undefined8 **)(local_148 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 0x10)" ( (binary_expression "local_148 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }" { (expression_statement "FUN_001a6070(local_148,puVar1,&local_58);" (call_expression "FUN_001a6070(local_148,puVar1,&local_58)" identifier (argument_list "(local_148,puVar1,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" else (compound_statement "{\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" { (expression_statement "*puVar1 = local_58;" (assignment_expression "*puVar1 = local_58" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_148 + 8) = puVar1 + 1;" (assignment_expression "*(undefined8 **)(local_148 + 8) = puVar1 + 1" (pointer_expression "*(undefined8 **)(local_148 + 8)" * (cast_expression "(undefined8 **)(local_148 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) )))) = (binary_expression "puVar1 + 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_170,&local_88);" (call_expression "FUN_001a7630(local_170,&local_88)" identifier (argument_list "(local_170,&local_88)" ( identifier , (pointer_expression "&local_88" & identifier) ))) ;) (if_statement "if (!bVar23) goto LAB_00289ec8;" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (goto_statement "goto LAB_00289ec8;" goto statement_identifier ;)) }))) (if_statement "if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }" if (parenthesized_expression "((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0))" ( (binary_expression "(((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)" (parenthesized_expression "(((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28))" ( (binary_expression "((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)" (parenthesized_expression "((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1))" ( (binary_expression "(local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)" (parenthesized_expression "(local_135 != '\0')" ( (binary_expression "local_135 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)(lVar15 + 4) & 0xf) != 1)" ( (binary_expression "(*(byte *)(lVar15 + 4) & 0xf) != 1" (parenthesized_expression "(*(byte *)(lVar15 + 4) & 0xf)" ( (binary_expression "*(byte *)(lVar15 + 4) & 0xf" (pointer_expression "*(byte *)(lVar15 + 4)" * (cast_expression "(byte *)(lVar15 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 4)" ( (binary_expression "lVar15 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(local_118 - 0x24U < 0x28)" ( (binary_expression "local_118 - 0x24U < 0x28" (binary_expression "local_118 - 0x24U" identifier - number_literal) < number_literal) ))) )) && (parenthesized_expression "((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)" ( (binary_expression "(0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0" (parenthesized_expression "(0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1)" ( (binary_expression "0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1" (binary_expression "0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f)" number_literal >> (parenthesized_expression "((ulong)(local_118 - 0x24U) & 0x3f)" ( (binary_expression "(ulong)(local_118 - 0x24U) & 0x3f" (call_expression "(ulong)(local_118 - 0x24U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(local_118 - 0x24U)" ( (binary_expression "local_118 - 0x24U" identifier - number_literal) ))) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }" { (expression_statement "local_a0 = (uint)*(ushort *)(lVar15 + 6);" (assignment_expression "local_a0 = (uint)*(ushort *)(lVar15 + 6)" identifier = (binary_expression "(uint)*(ushort *)(lVar15 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(lVar15 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 6)" ( (binary_expression "lVar15 + 6" 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 ))) ;) })) (expression_statement "local_120 = param_3;" (assignment_expression "local_120 = param_3" identifier = identifier) ;) (if_statement "if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(param_4 != local_104)" ( (binary_expression "param_4 != local_104" identifier != identifier) )) (compound_statement "{\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" statement_identifier : (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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809)" ( (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809" (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) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" { (expression_statement "lVar9 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar9 = *(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_80 = local_104;" (assignment_expression "local_80 = local_104" identifier = identifier) ;) (expression_statement "lVar15 = lVar9 + 0x28;" (assignment_expression "lVar15 = lVar9 + 0x28" identifier = (binary_expression "lVar9 + 0x28" identifier + number_literal)) ;) (expression_statement "local_88 = local_120;" (assignment_expression "local_88 = local_120" identifier = identifier) ;) (expression_statement "lVar10 = lVar15;" (assignment_expression "lVar10 = lVar15" identifier = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar9 + 0x30);" (assignment_expression "lVar8 = *(long *)(lVar9 + 0x30)" identifier = (pointer_expression "*(long *)(lVar9 + 0x30)" * (cast_expression "(long *)(lVar9 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 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) ;) (if_statement "if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }" if (parenthesized_expression "(*(long *)(lVar9 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar9 + 0x30) == 0" (pointer_expression "*(long *)(lVar9 + 0x30)" * (cast_expression "(long *)(lVar9 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }" { (labeled_statement "LAB_0028a100:\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 "lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);" (assignment_expression "lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea)" identifier = (call_expression "FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea)" identifier (argument_list "(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_0055840a" & identifier) , (pointer_expression "&local_c8" & identifier) , (pointer_expression "&local_ea" & identifier) )))) ;) }) (else_clause "else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }" else (compound_statement "{\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }" { (do_statement "do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);" do (compound_statement "{\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              }" { (while_statement "while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }" while (parenthesized_expression "((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )))" ( (parenthesized_expression "(lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))" ( (comma_expression "lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )" (assignment_expression "lVar6 = lVar8" identifier = identifier) , (binary_expression "*(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )" (binary_expression "*(byte **)(lVar6 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar6 + 0x20)" * (cast_expression "(byte **)(lVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) < identifier) || (parenthesized_expression "((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )" ( (parenthesized_expression "(param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))" ( (binary_expression "param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar6 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar6 + 0x20)" * (cast_expression "(byte **)(lVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(lVar6 + 0x28) < param_4)" ( (binary_expression "*(uint *)(lVar6 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar6 + 0x28)" * (cast_expression "(uint *)(lVar6 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x28)" ( (binary_expression "lVar6 + 0x28" identifier + number_literal) )))) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }" { (expression_statement "plVar3 = (long *)(lVar6 + 0x18);" (assignment_expression "plVar3 = (long *)(lVar6 + 0x18)" identifier = (cast_expression "(long *)(lVar6 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar6 = lVar10;" (assignment_expression "lVar6 = lVar10" identifier = identifier) ;) (expression_statement "lVar8 = *plVar3;" (assignment_expression "lVar8 = *plVar3" identifier = (pointer_expression "*plVar3" * identifier)) ;) (if_statement "if (*plVar3 == 0) goto LAB_0028a0da;" if (parenthesized_expression "(*plVar3 == 0)" ( (binary_expression "*plVar3 == 0" (pointer_expression "*plVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0028a0da;" goto statement_identifier ;)) })) (expression_statement "lVar10 = lVar6;" (assignment_expression "lVar10 = lVar6" identifier = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar6 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar6 + 0x10)" identifier = (pointer_expression "*(long *)(lVar6 + 0x10)" * (cast_expression "(long *)(lVar6 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(long *)(lVar6 + 0x10) != 0)" ( (binary_expression "*(long *)(lVar6 + 0x10) != 0" (pointer_expression "*(long *)(lVar6 + 0x10)" * (cast_expression "(long *)(lVar6 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_0028a0da:\n              bVar23 = lVar6 == lVar15;" statement_identifier : (expression_statement "bVar23 = lVar6 == lVar15;" (assignment_expression "bVar23 = lVar6 == lVar15" identifier = (binary_expression "lVar6 == lVar15" identifier == identifier)) ;)) (expression_statement "lVar15 = lVar6;" (assignment_expression "lVar15 = lVar6" identifier = identifier) ;) (if_statement "if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;" if (parenthesized_expression "(((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))" ( (binary_expression "((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28))))" (parenthesized_expression "((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20)))" ( (binary_expression "(bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))" (parenthesized_expression "(bVar23)" ( identifier )) || (parenthesized_expression "(param_3 < *(byte **)(lVar6 + 0x20))" ( (binary_expression "param_3 < *(byte **)(lVar6 + 0x20)" identifier < (pointer_expression "*(byte **)(lVar6 + 0x20)" * (cast_expression "(byte **)(lVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28))))" ( (parenthesized_expression "(param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))" ( (binary_expression "param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar6 + 0x20)" identifier == (pointer_expression "*(byte **)(lVar6 + 0x20)" * (cast_expression "(byte **)(lVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) ))))) && (parenthesized_expression "(param_4 < *(uint *)(lVar6 + 0x28))" ( (binary_expression "param_4 < *(uint *)(lVar6 + 0x28)" identifier < (pointer_expression "*(uint *)(lVar6 + 0x28)" * (cast_expression "(uint *)(lVar6 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x28)" ( (binary_expression "lVar6 + 0x28" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_0028a100;" goto statement_identifier ;)) }))) (expression_statement "local_d0 = lVar6 + 0x30;" (assignment_expression "local_d0 = lVar6 + 0x30" identifier = (binary_expression "lVar6 + 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 "plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);" (assignment_expression "plVar3 = *(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 (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }" if (parenthesized_expression "(plVar3 == (long *)0x0)" ( (binary_expression "plVar3 == (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 **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }" if (parenthesized_expression "(*(code **)(*plVar3 + 0x208) != FUN_001c0b90)" ( (binary_expression "*(code **)(*plVar3 + 0x208) != FUN_001c0b90" (pointer_expression "*(code **)(*plVar3 + 0x208)" * (cast_expression "(code **)(*plVar3 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar3 + 0x208)" ( (binary_expression "*plVar3 + 0x208" (pointer_expression "*plVar3" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }" { (expression_statement "(**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);" (call_expression "(**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130)" (parenthesized_expression "(**(code **)(*plVar3 + 0x208))" ( (pointer_expression "**(code **)(*plVar3 + 0x208)" * (pointer_expression "*(code **)(*plVar3 + 0x208)" * (cast_expression "(code **)(*plVar3 + 0x208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar3 + 0x208)" ( (binary_expression "*plVar3 + 0x208" (pointer_expression "*plVar3" * identifier) + number_literal) ))))) )) (argument_list "(plVar3,param_1,param_3,param_4,local_120,local_104,local_130)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }" if (parenthesized_expression "(local_140 != (byte *)0x0)" ( (binary_expression "local_140 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }" { (expression_statement "lVar15 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar15 = *(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 "sVar7 = strlen((char *)local_140);" (assignment_expression "sVar7 = strlen((char *)local_140)" identifier = (call_expression "strlen((char *)local_140)" identifier (argument_list "((char *)local_140)" ( (cast_expression "(char *)local_140" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "FUN_001a61c0(&local_58,local_140,local_140 + sVar7);" (call_expression "FUN_001a61c0(&local_58,local_140,local_140 + sVar7)" identifier (argument_list "(&local_58,local_140,local_140 + sVar7)" ( (pointer_expression "&local_58" & identifier) , identifier , (binary_expression "local_140 + sVar7" identifier + identifier) ))) ;) (expression_statement "lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);" (assignment_expression "lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58)" identifier = (call_expression "FUN_001c4d80(lVar15 + 0x88,&local_58)" identifier (argument_list "(lVar15 + 0x88,&local_58)" ( (binary_expression "lVar15 + 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 "lVar9 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar9 = *(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 (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" if (parenthesized_expression "(lVar15 != lVar9 + 0x90)" ( (binary_expression "lVar15 != lVar9 + 0x90" identifier != (binary_expression "lVar9 + 0x90" identifier + number_literal)) )) (compound_statement "{\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" { (expression_statement "lVar10 = lVar9 + 0x28;" (assignment_expression "lVar10 = lVar9 + 0x28" identifier = (binary_expression "lVar9 + 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 "lVar8 = lVar10;" (assignment_expression "lVar8 = lVar10" identifier = identifier) ;) (expression_statement "lVar6 = *(long *)(lVar9 + 0x30);" (assignment_expression "lVar6 = *(long *)(lVar9 + 0x30)" identifier = (pointer_expression "*(long *)(lVar9 + 0x30)" * (cast_expression "(long *)(lVar9 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }" if (parenthesized_expression "(*(long *)(lVar9 + 0x30) == 0)" ( (binary_expression "*(long *)(lVar9 + 0x30) == 0" (pointer_expression "*(long *)(lVar9 + 0x30)" * (cast_expression "(long *)(lVar9 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }" { (labeled_statement "LAB_0028a5e0:\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 "lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);" (assignment_expression "lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9)" identifier = (call_expression "FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9)" identifier (argument_list "(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) , identifier , (pointer_expression "&DAT_0055840a" & identifier) , (pointer_expression "&local_c0" & identifier) , (pointer_expression "&local_e9" & identifier) )))) ;) }) (else_clause "else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }" else (compound_statement "{\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }" { (do_statement "do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);" do (compound_statement "{\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  }" { (while_statement "while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }" while (parenthesized_expression "((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4)))))" ( (parenthesized_expression "(lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))" ( (comma_expression "lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4)))" (assignment_expression "lVar11 = lVar6" 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                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }" { (expression_statement "plVar3 = (long *)(lVar11 + 0x18);" (assignment_expression "plVar3 = (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 = lVar8;" (assignment_expression "lVar11 = lVar8" identifier = identifier) ;) (expression_statement "lVar6 = *plVar3;" (assignment_expression "lVar6 = *plVar3" identifier = (pointer_expression "*plVar3" * identifier)) ;) (if_statement "if (*plVar3 == 0) goto LAB_0028a24a;" if (parenthesized_expression "(*plVar3 == 0)" ( (binary_expression "*plVar3 == 0" (pointer_expression "*plVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0028a24a;" goto statement_identifier ;)) })) (expression_statement "lVar8 = lVar11;" (assignment_expression "lVar8 = lVar11" identifier = identifier) ;) (expression_statement "lVar6 = *(long *)(lVar11 + 0x10);" (assignment_expression "lVar6 = *(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_0028a24a:\n                  bVar23 = lVar10 == lVar11;" statement_identifier : (expression_statement "bVar23 = lVar10 == lVar11;" (assignment_expression "bVar23 = lVar10 == lVar11" identifier = (binary_expression "lVar10 == lVar11" identifier == identifier)) ;)) (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" identifier = identifier) ;) (if_statement "if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;" if (parenthesized_expression "(((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28)))))" ( (binary_expression "((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))" (parenthesized_expression "((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20)))" ( (binary_expression "(bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))" (parenthesized_expression "(bVar23)" ( 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 "((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))" ( (parenthesized_expression "(local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28)))" ( (comma_expression "local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))" (assignment_expression "local_58 = param_3" identifier = identifier) , (binary_expression "param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (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_0028a5e0;" goto statement_identifier ;)) }))) (for_statement "for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }" for ( (assignment_expression "puVar1 = *(undefined8 **)(lVar15 + 0x50)" identifier = (pointer_expression "*(undefined8 **)(lVar15 + 0x50)" * (cast_expression "(undefined8 **)(lVar15 + 0x50)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 0x50)" ( (binary_expression "lVar15 + 0x50" identifier + number_literal) ))))) ; (binary_expression "puVar1 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar1 = (undefined8 *)*puVar1" identifier = (cast_expression "(undefined8 *)*puVar1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ) (compound_statement "{\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }" { (expression_statement "local_d8 = lVar11 + 0x30;" (assignment_expression "local_d8 = lVar11 + 0x30" identifier = (binary_expression "lVar11 + 0x30" identifier + number_literal)) ;) (expression_statement "FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);" (call_expression "FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1)" identifier (argument_list "(lVar11 + 0x30,puVar1 + 1,&local_d8,1)" ( (binary_expression "lVar11 + 0x30" identifier + number_literal) , (binary_expression "puVar1 + 1" identifier + number_literal) , (pointer_expression "&local_d8" & identifier) , number_literal ))) ;) })) })) })) })) })) }) (else_clause "else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }" else (compound_statement "{\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }" { (if_statement "if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" if (parenthesized_expression "(uVar12 < *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar12 < *(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_0028a4f8:\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_0028a4f8:\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 "uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));" (assignment_expression "uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120))" identifier = (call_expression "(ulong)(uVar12 - *(uint *)(param_3 + 0x120))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar12 - *(uint *)(param_3 + 0x120))" ( (binary_expression "uVar12 - *(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) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }" if (parenthesized_expression "((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19)" ( (binary_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19" (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) + uVar19 * 8);" (assignment_expression "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8)" identifier = (pointer_expression "*(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8)" * (cast_expression "(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_3 + 0x130) + uVar19 * 8)" ( (binary_expression "*(long *)(param_3 + 0x130) + uVar19 * 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 "uVar19 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (local_88 == (byte *)0x0) goto LAB_0028a4f8;" 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_0028a4f8;" 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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }" { (expression_statement "pbVar17 = *(byte **)(local_88 + 0x40);" (assignment_expression "pbVar17 = *(byte **)(local_88 + 0x40)" identifier = (pointer_expression "*(byte **)(local_88 + 0x40)" * (cast_expression "(byte **)(local_88 + 0x40)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_120 = *(byte **)(local_88 + 0x10);" (assignment_expression "local_120 = *(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_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" identifier = (binary_expression "pbVar17 + uVar2" identifier + identifier)) ;) (if_statement "if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }" if (parenthesized_expression "((local_120[0x3c] & 1) == 0)" ( (binary_expression "(local_120[0x3c] & 1) == 0" (parenthesized_expression "(local_120[0x3c] & 1)" ( (binary_expression "local_120[0x3c] & 1" (subscript_expression "local_120[0x3c]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }" { (expression_statement "local_104 = *(uint *)(local_88 + 0x18);" (assignment_expression "local_104 = *(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 "bVar14 = local_88[0x3b] >> 5 & 1;" (assignment_expression "bVar14 = 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 "uVar20 = (local_88[0x38] & 0xf) < 2;" (assignment_expression "uVar20 = (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 "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)) ;) (if_statement "if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }" if (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = local_135 == '\0';" (assignment_expression "uVar24 = local_135 == '\0'" identifier = (binary_expression "local_135 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }" if (parenthesized_expression "(!(bool)uVar24)" ( (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }" { (expression_statement "uVar20 = false;" (assignment_expression "uVar20 = false" identifier = false) ;) (expression_statement "uVar24 = bVar14 == 0;" (assignment_expression "uVar24 = bVar14 == 0" identifier = (binary_expression "bVar14 == 0" identifier == number_literal)) ;) (if_statement "if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }" if (parenthesized_expression "(!(bool)uVar24)" ( (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }" { (expression_statement "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(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 "lVar15 = 0x16;" (assignment_expression "lVar15 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar13;" (assignment_expression "pbVar16 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_"" identifier = (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content "))) ;) (do_statement "do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);" do (compound_statement "{\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  }" { (expression_statement "bVar23 = (bool)uVar20;" (assignment_expression "bVar23 = (bool)uVar20" identifier = (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar20 = *pbVar16 < *pbVar18;" (assignment_expression "uVar20 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar24 = *pbVar16 == *pbVar18;" (assignment_expression "uVar24 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar23 = (bool)uVar20;" (assignment_expression "bVar23 = (bool)uVar20" identifier = (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) }) while (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;" (assignment_expression "uVar24 = (!bVar23 && !(bool)uVar24) == bVar23" identifier = (binary_expression "(!bVar23 && !(bool)uVar24) == bVar23" (parenthesized_expression "(!bVar23 && !(bool)uVar24)" ( (binary_expression "!bVar23 && !(bool)uVar24" (unary_expression "!bVar23" ! identifier) && (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == identifier)) ;) (if_statement "if ((bool)uVar24) goto LAB_0028a359;" if (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) (goto_statement "goto LAB_0028a359;" goto statement_identifier ;)) (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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" ( (type_descriptor "char *" primitive_type (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) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }" { (expression_statement "uVar20 = false;" (assignment_expression "uVar20 = false" identifier = false) ;) (expression_statement "uVar24 = (local_88[0x39] & 3) == 0;" (assignment_expression "uVar24 = (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)) ;) (if_statement "if (!(bool)uVar24) goto LAB_0028a6f0;" if (parenthesized_expression "(!(bool)uVar24)" ( (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0028a6f0;" goto statement_identifier ;)) })) (expression_statement "uVar12 = local_118 - 0x24;" (assignment_expression "uVar12 = local_118 - 0x24" identifier = (binary_expression "local_118 - 0x24" identifier - number_literal)) ;) (expression_statement "uVar20 = uVar12 < 0x27;" (assignment_expression "uVar20 = uVar12 < 0x27" identifier = (binary_expression "uVar12 < 0x27" identifier < number_literal)) ;) (expression_statement "uVar24 = uVar12 == 0x27;" (assignment_expression "uVar24 = uVar12 == 0x27" identifier = (binary_expression "uVar12 == 0x27" identifier == number_literal)) ;) (if_statement "if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;" if (parenthesized_expression "((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))" ( (binary_expression "(0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20)" (parenthesized_expression "(0x27 < uVar12)" ( (binary_expression "0x27 < uVar12" number_literal < identifier) )) || (parenthesized_expression "(uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20)" ( (comma_expression "uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20" (assignment_expression "uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0" identifier = (binary_expression "(0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0" (parenthesized_expression "(0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1)" ( (binary_expression "0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1" (binary_expression "0xf03fffffffU >> ((ulong)uVar12 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)uVar12 & 0x3f)" ( (binary_expression "(ulong)uVar12 & 0x3f" (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal)) , (unary_expression "!(bool)uVar20" ! (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_0028a359;" goto statement_identifier ;)) })) (labeled_statement "LAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;" statement_identifier : (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_120;" (assignment_expression "local_b8 = local_120" identifier = identifier) ;) (expression_statement "local_b0 = local_104;" (assignment_expression "local_b0 = local_104" 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 "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(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))) ;) }) (else_clause "else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }" else (compound_statement "{\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }" { (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(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 "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" identifier = number_literal) ;) (expression_statement "local_120 = (byte *)0x0;" (assignment_expression "local_120 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }" else (compound_statement "{\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }" { (expression_statement "pbVar17 = *(byte **)(local_88 + 0x40);" (assignment_expression "pbVar17 = *(byte **)(local_88 + 0x40)" identifier = (pointer_expression "*(byte **)(local_88 + 0x40)" * (cast_expression "(byte **)(local_88 + 0x40)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_88 + 0x40)" ( (binary_expression "local_88 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(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 "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" identifier = number_literal) ;) (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "local_120 = (byte *)0x0;" (assignment_expression "local_120 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" identifier = (binary_expression "pbVar17 + uVar2" identifier + identifier)) ;) }))) (labeled_statement "LAB_0028a359:\n        lVar15 = 8;" statement_identifier : (expression_statement "lVar15 = 8;" (assignment_expression "lVar15 = 8" identifier = number_literal) ;)) (expression_statement "pbVar16 = (byte *)"__start_";" (assignment_expression "pbVar16 = (byte *)"__start_"" identifier = (cast_expression "(byte *)"__start_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__start_"" " string_content "))) ;) (expression_statement "pbVar18 = pbVar13;" (assignment_expression "pbVar18 = pbVar13" identifier = identifier) ;) (do_statement "do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);" do (compound_statement "{\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar20 = *pbVar16 < *pbVar18;" (assignment_expression "uVar20 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar24 = *pbVar16 == *pbVar18;" (assignment_expression "uVar24 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;" (assignment_expression "bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" identifier = (binary_expression "(!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" (parenthesized_expression "(!(bool)uVar20 && !(bool)uVar24)" ( (binary_expression "!(bool)uVar20 && !(bool)uVar24" (unary_expression "!(bool)uVar20" ! (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n          pbVar13 = pbVar13 + 8;\n        }" { (expression_statement "pbVar13 = pbVar13 + 8;" (assignment_expression "pbVar13 = pbVar13 + 8" identifier = (binary_expression "pbVar13 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }" else (compound_statement "{\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }" { (expression_statement "lVar15 = 7;" (assignment_expression "lVar15 = 7" identifier = number_literal) ;) (expression_statement "pbVar16 = (byte *)"__stop_";" (assignment_expression "pbVar16 = (byte *)"__stop_"" identifier = (cast_expression "(byte *)"__stop_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__stop_"" " string_content "))) ;) (expression_statement "pbVar18 = pbVar13;" (assignment_expression "pbVar18 = pbVar13" identifier = identifier) ;) (do_statement "do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);" do (compound_statement "{\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar16 < *pbVar18;" (assignment_expression "bVar23 = *pbVar16 < *pbVar18" identifier = (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar25 = *pbVar16 == *pbVar18;" (assignment_expression "bVar25 = *pbVar16 == *pbVar18" identifier = (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "pbVar13 = pbVar13 + 7;" (assignment_expression "pbVar13 = pbVar13 + 7" identifier = (binary_expression "pbVar13 + 7" identifier + number_literal)) ;) (if_statement "if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }" if (parenthesized_expression "((!bVar23 && !bVar25) != bVar23)" ( (binary_expression "(!bVar23 && !bVar25) != bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier) )) (compound_statement "{\n            pbVar13 = local_140;\n          }" { (expression_statement "pbVar13 = local_140;" (assignment_expression "pbVar13 = local_140" identifier = identifier) ;) })) }))) (expression_statement "local_140 = pbVar13;" (assignment_expression "local_140 = pbVar13" identifier = identifier) ;) (if_statement "if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }" { (if_statement "if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (compound_statement "{\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&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_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }" else (compound_statement "{\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }" { (expression_statement "local_58 = local_120;" (assignment_expression "local_58 = local_120" identifier = identifier) ;) (expression_statement "local_50 = CONCAT44(local_50._4_4_,local_104);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,local_104)" identifier = (call_expression "CONCAT44(local_50._4_4_,local_104)" identifier (argument_list "(local_50._4_4_,local_104)" ( (field_expression "local_50._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "FUN_001a7180(local_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" identifier (argument_list "(local_160,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) }))) (expression_statement "puVar1 = *(undefined8 **)(local_158 + 8);" (assignment_expression "puVar1 = *(undefined8 **)(local_158 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_158 + 8)" * (cast_expression "(undefined8 **)(local_158 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_158 + 8)" ( (binary_expression "local_158 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }" if (parenthesized_expression "(puVar1 == *(undefined8 **)(local_158 + 0x10))" ( (binary_expression "puVar1 == *(undefined8 **)(local_158 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_158 + 0x10)" * (cast_expression "(undefined8 **)(local_158 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_158 + 0x10)" ( (binary_expression "local_158 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }" { (expression_statement "FUN_001a5d30(local_158,puVar1,&local_88);" (call_expression "FUN_001a5d30(local_158,puVar1,&local_88)" identifier (argument_list "(local_158,puVar1,&local_88)" ( identifier , identifier , (pointer_expression "&local_88" & identifier) ))) ;) }) (else_clause "else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }" else (compound_statement "{\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }" { (expression_statement "*puVar1 = local_88;" (assignment_expression "*puVar1 = local_88" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_158 + 8) = puVar1 + 1;" (assignment_expression "*(undefined8 **)(local_158 + 8) = puVar1 + 1" (pointer_expression "*(undefined8 **)(local_158 + 8)" * (cast_expression "(undefined8 **)(local_158 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_158 + 8)" ( (binary_expression "local_158 + 8" identifier + number_literal) )))) = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_58 = pbVar17;" (assignment_expression "local_58 = pbVar17" identifier = identifier) ;) (expression_statement "local_50 = uVar2;" (assignment_expression "local_50 = uVar2" identifier = identifier) ;) (expression_statement "FUN_001a74a0(local_168,&local_58);" (call_expression "FUN_001a74a0(local_168,&local_58)" identifier (argument_list "(local_168,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "local_58 = (byte *)*param_5;" (assignment_expression "local_58 = (byte *)*param_5" identifier = (cast_expression "(byte *)*param_5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "puVar1 = *(undefined8 **)(local_148 + 8);" (assignment_expression "puVar1 = *(undefined8 **)(local_148 + 8)" identifier = (pointer_expression "*(undefined8 **)(local_148 + 8)" * (cast_expression "(undefined8 **)(local_148 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" if (parenthesized_expression "(puVar1 == *(undefined8 **)(local_148 + 0x10))" ( (binary_expression "puVar1 == *(undefined8 **)(local_148 + 0x10)" identifier == (pointer_expression "*(undefined8 **)(local_148 + 0x10)" * (cast_expression "(undefined8 **)(local_148 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 0x10)" ( (binary_expression "local_148 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }" { (expression_statement "FUN_001a6070(local_148,puVar1,&local_58);" (call_expression "FUN_001a6070(local_148,puVar1,&local_58)" identifier (argument_list "(local_148,puVar1,&local_58)" ( identifier , identifier , (pointer_expression "&local_58" & identifier) ))) ;) }) (else_clause "else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" else (compound_statement "{\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" { (expression_statement "*puVar1 = local_58;" (assignment_expression "*puVar1 = local_58" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "*(undefined8 **)(local_148 + 8) = puVar1 + 1;" (assignment_expression "*(undefined8 **)(local_148 + 8) = puVar1 + 1" (pointer_expression "*(undefined8 **)(local_148 + 8)" * (cast_expression "(undefined8 **)(local_148 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) )))) = (binary_expression "puVar1 + 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_170,&local_98);" (call_expression "FUN_001a7630(local_170,&local_98)" identifier (argument_list "(local_170,&local_98)" ( identifier , (pointer_expression "&local_98" & identifier) ))) ;) })) (if_statement "if (bVar14 != 0) goto LAB_0028a049;" if (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0028a049;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00289ec8:\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 "param_5 = param_5 + 3;" (assignment_expression "param_5 = param_5 + 3" identifier = (binary_expression "param_5 + 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 TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) 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 IDENT ;) (declaration TYPE (pointer_declarator * 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 (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (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) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) < 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 = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 + IDENT)) ;) (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 , (binary_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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (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 = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (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 ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) ))) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) & LIT) ))) & LIT) )) != LIT) ))) )) (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 ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (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 = (binary_expression IDENT + LIT)) ;) (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) ;) (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 : (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( 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 = (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 : (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression 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 = (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)) ;) (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 = BOOL) ;) (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 = (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) })) (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & LIT) )) != LIT)) , (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (labeled_statement 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 = 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , 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 = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (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) )) (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_00289cb0(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,ulong param_7,long param_8)\n\n{\n  undefined8 *puVar1;\n  ulong uVar2;\n  long *plVar3;\n  code *pcVar4;\n  char cVar5;\n  long lVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  long lVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  ulong uVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_170;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_148;\n  byte *local_140;\n  char local_135;\n  byte *local_130;\n  byte *local_120;\n  int local_118;\n  uint local_104;\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  bVar26 = 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 {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar17 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 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_00289cb0(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,ulong param_7,long param_8)" (identifier "FUN_00289cb0") (parameter_list "(long param_1,long *param_2,byte *param_3,uint param_4,undefined8 *param_5,\n                 long param_6,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 "undefined8 *param_5" (type_identifier "undefined8") (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  undefined8 *puVar1;\n  ulong uVar2;\n  long *plVar3;\n  code *pcVar4;\n  char cVar5;\n  long lVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  long lVar10;\n  long lVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte bVar14;\n  long lVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  ulong uVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_170;\n  long local_168;\n  long local_160;\n  long local_158;\n  long local_148;\n  byte *local_140;\n  char local_135;\n  byte *local_130;\n  byte *local_120;\n  int local_118;\n  uint local_104;\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  bVar26 = 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 {\n    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);\n  }\n  pbVar17 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }\n  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    \n    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }\n  local_135 = '\0';\nLAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);\n  }\n  if (local_78[0] != local_68) {\n    FUN_0049e330();\n  }\n  return;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "long *plVar3;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar3" (* "*") (identifier "plVar3")) (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "ulong uVar19;" (type_identifier "ulong") (identifier "uVar19") (; ";")) (declaration "undefined1 uVar20;" (type_identifier "undefined1") (identifier "uVar20") (; ";")) (declaration "bool bVar21;" (primitive_type "bool") (identifier "bVar21") (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "undefined1 uVar24;" (type_identifier "undefined1") (identifier "uVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "byte bVar26;" (type_identifier "byte") (identifier "bVar26") (; ";")) (declaration "long local_170;" (sized_type_specifier "long" (long "long")) (identifier "local_170") (; ";")) (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_148;" (sized_type_specifier "long" (long "long")) (identifier "local_148") (; ";")) (declaration "byte *local_140;" (type_identifier "byte") (pointer_declarator "*local_140" (* "*") (identifier "local_140")) (; ";")) (declaration "char local_135;" (primitive_type "char") (identifier "local_135") (; ";")) (declaration "byte *local_130;" (type_identifier "byte") (pointer_declarator "*local_130" (* "*") (identifier "local_130")) (; ";")) (declaration "byte *local_120;" (type_identifier "byte") (pointer_declarator "*local_120" (* "*") (identifier "local_120")) (; ";")) (declaration "int local_118;" (primitive_type "int") (identifier "local_118") (; ";")) (declaration "uint local_104;" (type_identifier "uint") (identifier "local_104") (; ";")) (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 "bVar26 = 0;" (assignment_expression "bVar26 = 0" (identifier "bVar26") (= "=") (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 {\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 {\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 "pbVar17 = local_78[0];" (assignment_expression "pbVar17 = local_78[0]" (identifier "pbVar17") (= "=") (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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }\n  else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = 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_00289d45:\n    bVar22 = false;\n    local_170 = 0;\n    local_148 = 0;\n    local_168 = 0;\n    local_158 = 0;\n    local_160 = 0;\n  }" ({ "{") (labeled_statement "LAB_00289d45:\n    bVar22 = false;" (statement_identifier "LAB_00289d45") (: ":") (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";"))) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" (identifier "local_170") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" (identifier "local_148") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_168 = 0;" (assignment_expression "local_168 = 0" (identifier "local_168") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_158 = 0;" (assignment_expression "local_158 = 0" (identifier "local_158") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" (identifier "local_160") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }" (else "else") (compound_statement "{\n    pbVar13 = (byte *)0xffffffffffffffff;\n    local_58 = local_48;\n    uVar20 = 0;\n    uVar24 = local_78[0] == (byte *)0x0;\n    if (!(bool)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }\n    FUN_001a61c0(&local_58,pbVar17,pbVar13);\n    lVar15 = 5;\n    pbVar17 = (byte *)".text";\n    pbVar13 = local_58;\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);\n    bVar22 = false;\n    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n    if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);\n    local_158 = local_160 + 0x18;\n    local_148 = local_160 + 0x48;\n    local_168 = local_160 + 0x30;\n    local_170 = local_160 + 0x60;\n    bVar22 = true;\n  }" ({ "{") (expression_statement "pbVar13 = (byte *)0xffffffffffffffff;" (assignment_expression "pbVar13 = (byte *)0xffffffffffffffff" (identifier "pbVar13") (= "=") (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 "uVar20 = 0;" (assignment_expression "uVar20 = 0" (identifier "uVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar24 = local_78[0] == (byte *)0x0;" (assignment_expression "uVar24 = local_78[0] == (byte *)0x0" (identifier "uVar24") (= "=") (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)uVar24) {\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }" (if "if") (parenthesized_expression "(!(bool)uVar24)" (( "(") (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) () ")")) (compound_statement "{\n      sVar7 = strlen((char *)local_78[0]);\n      pbVar13 = pbVar17 + sVar7;\n    }" ({ "{") (expression_statement "sVar7 = strlen((char *)local_78[0]);" (assignment_expression "sVar7 = strlen((char *)local_78[0])" (identifier "sVar7") (= "=") (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 "pbVar13 = pbVar17 + sVar7;" (assignment_expression "pbVar13 = pbVar17 + sVar7" (identifier "pbVar13") (= "=") (binary_expression "pbVar17 + sVar7" (identifier "pbVar17") (+ "+") (identifier "sVar7"))) (; ";")) (} "}"))) (expression_statement "FUN_001a61c0(&local_58,pbVar17,pbVar13);" (call_expression "FUN_001a61c0(&local_58,pbVar17,pbVar13)" (identifier "FUN_001a61c0") (argument_list "(&local_58,pbVar17,pbVar13)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "pbVar17") (, ",") (identifier "pbVar13") () ")"))) (; ";")) (expression_statement "lVar15 = 5;" (assignment_expression "lVar15 = 5" (identifier "lVar15") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar17 = (byte *)".text";" (assignment_expression "pbVar17 = (byte *)".text"" (identifier "pbVar17") (= "=") (cast_expression "(byte *)".text"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".text"" (" """) (string_content ".text") (" """)))) (; ";")) (expression_statement "pbVar13 = local_58;" (assignment_expression "pbVar13 = local_58" (identifier "pbVar13") (= "=") (identifier "local_58")) (; ";")) (do_statement "do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while ((bool)uVar24);" (do "do") (compound_statement "{\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      uVar20 = *pbVar17 < *pbVar13;\n      uVar24 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar15 == 0) break;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + -1" (identifier "lVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar20 = *pbVar17 < *pbVar13;" (assignment_expression "uVar20 = *pbVar17 < *pbVar13" (identifier "uVar20") (= "=") (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "uVar24 = *pbVar17 == *pbVar13;" (assignment_expression "uVar24 = *pbVar17 == *pbVar13" (identifier "uVar24") (= "=") (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar24)" (( "(") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")) () ")")) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;" (assignment_expression "bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" (identifier "bVar23") (= "=") (binary_expression "(!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" (parenthesized_expression "(!(bool)uVar20 && !(bool)uVar24)" (( "(") (binary_expression "!(bool)uVar20 && !(bool)uVar24" (unary_expression "!(bool)uVar20" (! "!") (cast_expression "(bool)uVar20" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar20"))) (&& "&&") (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")))) () ")")) (== "==") (cast_expression "(bool)uVar20" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar20")))) (; ";")) (if_statement "if (!bVar23) {\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n      lVar15 = 0xf;\n      pbVar17 = (byte *)".gnu.linkonce.t";\n      pbVar13 = local_58;\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\n      }\n    }" ({ "{") (expression_statement "lVar15 = 0xf;" (assignment_expression "lVar15 = 0xf" (identifier "lVar15") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "pbVar17 = (byte *)".gnu.linkonce.t";" (assignment_expression "pbVar17 = (byte *)".gnu.linkonce.t"" (identifier "pbVar17") (= "=") (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 "pbVar13 = local_58;" (assignment_expression "pbVar13 = local_58" (identifier "pbVar13") (= "=") (identifier "local_58")) (; ";")) (do_statement "do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);" (do "do") (compound_statement "{\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar22 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar15 == 0) break;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + -1" (identifier "lVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar17 < *pbVar13;" (assignment_expression "bVar22 = *pbVar17 < *pbVar13" (identifier "bVar22") (= "=") (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\n      }" (if "if") (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" (( "(") (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" (( "(") (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (!= "!=") (identifier "bVar22")) () ")")) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_0049e330(local_58);\n        }\n        goto LAB_00289d45;\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_00289d45;" (goto "goto") (statement_identifier "LAB_00289d45") (; ";")) (} "}"))) (} "}"))) (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_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);" (assignment_expression "local_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58)" (identifier "local_160") (= "=") (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_158 = local_160 + 0x18;" (assignment_expression "local_158 = local_160 + 0x18" (identifier "local_158") (= "=") (binary_expression "local_160 + 0x18" (identifier "local_160") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "local_148 = local_160 + 0x48;" (assignment_expression "local_148 = local_160 + 0x48" (identifier "local_148") (= "=") (binary_expression "local_160 + 0x48" (identifier "local_160") (+ "+") (number_literal "0x48"))) (; ";")) (expression_statement "local_168 = local_160 + 0x30;" (assignment_expression "local_168 = local_160 + 0x30" (identifier "local_168") (= "=") (binary_expression "local_160 + 0x30" (identifier "local_160") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "local_170 = local_160 + 0x60;" (assignment_expression "local_170 = local_160 + 0x60" (identifier "local_170") (= "=") (binary_expression "local_160 + 0x60" (identifier "local_160") (+ "+") (number_literal "0x60"))) (; ";")) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" (identifier "bVar22") (= "=") (true "true")) (; ";")) (} "}")))) (if_statement "if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \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                    \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     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0'))" (( "(") (binary_expression "(*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&\n     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\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 "(cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')" (( "(") (comma_expression "cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0'" (assignment_expression "cVar5 = (**(code **)(*param_2 + 0x90))(param_2)" (identifier "cVar5") (= "=") (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 "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n    pcVar4 = *(code **)(*param_2 + 0x10);\n    if (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    pcVar4 = *(code **)(*param_2 + 0x98);\n    bVar23 = pcVar4 < FUN_001a53d0;\n    bVar25 = pcVar4 == FUN_001a53d0;\n    if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }\n    lVar15 = 0xc;\n    pbVar17 = (byte *)".rodata._ZTV";\n    pbVar13 = local_78[0];\n    do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);\n    bVar21 = false;\n    bVar23 = (!bVar23 && !bVar25) == bVar23;\n    if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "pcVar4 = *(code **)(*param_2 + 0x10);" (assignment_expression "pcVar4 = *(code **)(*param_2 + 0x10)" (identifier "pcVar4") (= "=") (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 (pcVar4 != FUN_001a5310) {\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" (if "if") (parenthesized_expression "(pcVar4 != FUN_001a5310)" (( "(") (binary_expression "pcVar4 != FUN_001a5310" (identifier "pcVar4") (!= "!=") (identifier "FUN_001a5310")) () ")")) (compound_statement "{\n                    \n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" ({ "{") (expression_statement "local_135 = (*pcVar4)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar4)(param_2,local_78[0])" (identifier "local_135") (= "=") (call_expression "(*pcVar4)(param_2,local_78[0])" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (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_00289da4;" (goto "goto") (statement_identifier "LAB_00289da4") (; ";")) (} "}"))) (expression_statement "pcVar4 = *(code **)(*param_2 + 0x98);" (assignment_expression "pcVar4 = *(code **)(*param_2 + 0x98)" (identifier "pcVar4") (= "=") (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 "bVar23 = pcVar4 < FUN_001a53d0;" (assignment_expression "bVar23 = pcVar4 < FUN_001a53d0" (identifier "bVar23") (= "=") (binary_expression "pcVar4 < FUN_001a53d0" (identifier "pcVar4") (< "<") (identifier "FUN_001a53d0"))) (; ";")) (expression_statement "bVar25 = pcVar4 == FUN_001a53d0;" (assignment_expression "bVar25 = pcVar4 == FUN_001a53d0" (identifier "bVar25") (= "=") (binary_expression "pcVar4 == FUN_001a53d0" (identifier "pcVar4") (== "==") (identifier "FUN_001a53d0"))) (; ";")) (if_statement "if (!bVar25) {\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (compound_statement "{\n      local_135 = (*pcVar4)(param_2,local_78[0]);\n      goto LAB_00289da4;\n    }" ({ "{") (expression_statement "local_135 = (*pcVar4)(param_2,local_78[0]);" (assignment_expression "local_135 = (*pcVar4)(param_2,local_78[0])" (identifier "local_135") (= "=") (call_expression "(*pcVar4)(param_2,local_78[0])" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (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_00289da4;" (goto "goto") (statement_identifier "LAB_00289da4") (; ";")) (} "}"))) (expression_statement "lVar15 = 0xc;" (assignment_expression "lVar15 = 0xc" (identifier "lVar15") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar17 = (byte *)".rodata._ZTV";" (assignment_expression "pbVar17 = (byte *)".rodata._ZTV"" (identifier "pbVar17") (= "=") (cast_expression "(byte *)".rodata._ZTV"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".rodata._ZTV"" (" """) (string_content ".rodata._ZTV") (" """)))) (; ";")) (expression_statement "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    } while (bVar25);" (do "do") (compound_statement "{\n      if (lVar15 == 0) break;\n      lVar15 = lVar15 + -1;\n      bVar23 = *pbVar17 < *pbVar13;\n      bVar25 = *pbVar17 == *pbVar13;\n      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar15 == 0) break;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + -1" (identifier "lVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar17 < *pbVar13;" (assignment_expression "bVar23 = *pbVar17 < *pbVar13" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar25 = *pbVar17 == *pbVar13;" (assignment_expression "bVar25 = *pbVar17 == *pbVar13" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar23 && !bVar25) == bVar23;" (assignment_expression "bVar23 = (!bVar23 && !bVar25) == bVar23" (identifier "bVar23") (= "=") (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" (( "(") (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if (!bVar23) {\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n      lVar15 = 0x11;\n      pbVar17 = (byte *)".data.rel.ro._ZTV";\n      pbVar13 = local_78[0];\n      do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);\n      bVar25 = false;\n      bVar23 = (!bVar21 && !bVar23) == bVar21;\n      if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "lVar15 = 0x11;" (assignment_expression "lVar15 = 0x11" (identifier "lVar15") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "pbVar17 = (byte *)".data.rel.ro._ZTV";" (assignment_expression "pbVar17 = (byte *)".data.rel.ro._ZTV"" (identifier "pbVar17") (= "=") (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      } while (bVar23);" (do "do") (compound_statement "{\n        if (lVar15 == 0) break;\n        lVar15 = lVar15 + -1;\n        bVar21 = *pbVar17 < *pbVar13;\n        bVar23 = *pbVar17 == *pbVar13;\n        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar15 == 0) break;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + -1" (identifier "lVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar17 < *pbVar13;" (assignment_expression "bVar21 = *pbVar17 < *pbVar13" (identifier "bVar21") (= "=") (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar23 = (!bVar21 && !bVar23) == bVar21" (identifier "bVar23") (= "=") (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" (( "(") (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar21"))) (; ";")) (if_statement "if (!bVar23) {\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n        lVar15 = 0xc;\n        pbVar17 = (byte *)".rodata._ZTC";\n        pbVar13 = local_78[0];\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar23 = (!bVar25 && !bVar23) == bVar25;\n        if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }\n      }" ({ "{") (expression_statement "lVar15 = 0xc;" (assignment_expression "lVar15 = 0xc" (identifier "lVar15") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar17 = (byte *)".rodata._ZTC";" (assignment_expression "pbVar17 = (byte *)".rodata._ZTC"" (identifier "pbVar17") (= "=") (cast_expression "(byte *)".rodata._ZTC"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".rodata._ZTC"" (" """) (string_content ".rodata._ZTC") (" """)))) (; ";")) (expression_statement "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        } while (bVar23);" (do "do") (compound_statement "{\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          bVar25 = *pbVar17 < *pbVar13;\n          bVar23 = *pbVar17 == *pbVar13;\n          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar15 == 0) break;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + -1" (identifier "lVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar17 < *pbVar13;" (assignment_expression "bVar25 = *pbVar17 < *pbVar13" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar25 && !bVar23) == bVar25;" (assignment_expression "bVar23 = (!bVar25 && !bVar23) == bVar25" (identifier "bVar23") (= "=") (binary_expression "(!bVar25 && !bVar23) == bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" (( "(") (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar23) {\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n          lVar15 = 0x11;\n          pbVar17 = (byte *)".data.rel.ro._ZTC";\n          pbVar13 = local_78[0];\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);\n          bVar25 = false;\n          bVar23 = (!bVar21 && !bVar23) == bVar21;\n          if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }\n        }" ({ "{") (expression_statement "lVar15 = 0x11;" (assignment_expression "lVar15 = 0x11" (identifier "lVar15") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "pbVar17 = (byte *)".data.rel.ro._ZTC";" (assignment_expression "pbVar17 = (byte *)".data.rel.ro._ZTC"" (identifier "pbVar17") (= "=") (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 "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          } while (bVar23);" (do "do") (compound_statement "{\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar21 = *pbVar17 < *pbVar13;\n            bVar23 = *pbVar17 == *pbVar13;\n            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar15 == 0) break;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + -1" (identifier "lVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar17 < *pbVar13;" (assignment_expression "bVar21 = *pbVar17 < *pbVar13" (identifier "bVar21") (= "=") (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar23 = (!bVar21 && !bVar23) == bVar21" (identifier "bVar23") (= "=") (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" (( "(") (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar21"))) (; ";")) (if_statement "if (!bVar23) {\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n            lVar15 = 9;\n            pbVar17 = (byte *)".eh_frame";\n            pbVar13 = local_78[0];\n            do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);\n            local_135 = (!bVar25 && !bVar23) != bVar25;\n            goto LAB_00289da4;\n          }" ({ "{") (expression_statement "lVar15 = 9;" (assignment_expression "lVar15 = 9" (identifier "lVar15") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar17 = (byte *)".eh_frame";" (assignment_expression "pbVar17 = (byte *)".eh_frame"" (identifier "pbVar17") (= "=") (cast_expression "(byte *)".eh_frame"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".eh_frame"" (" """) (string_content ".eh_frame") (" """)))) (; ";")) (expression_statement "pbVar13 = local_78[0];" (assignment_expression "pbVar13 = local_78[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            } while (bVar23);" (do "do") (compound_statement "{\n              if (lVar15 == 0) break;\n              lVar15 = lVar15 + -1;\n              bVar25 = *pbVar17 < *pbVar13;\n              bVar23 = *pbVar17 == *pbVar13;\n              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;\n              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar15 == 0) break;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + -1" (identifier "lVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar17 < *pbVar13;" (assignment_expression "bVar25 = *pbVar17 < *pbVar13" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 < *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar23 = *pbVar17 == *pbVar13;" (assignment_expression "bVar23 = *pbVar17 == *pbVar13" (identifier "bVar23") (= "=") (binary_expression "*pbVar17 == *pbVar13" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar26 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar26 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "local_135 = (!bVar25 && !bVar23) != bVar25;" (assignment_expression "local_135 = (!bVar25 && !bVar23) != bVar25" (identifier "local_135") (= "=") (binary_expression "(!bVar25 && !bVar23) != bVar25" (parenthesized_expression "(!bVar25 && !bVar23)" (( "(") (binary_expression "!bVar25 && !bVar23" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (!= "!=") (identifier "bVar25"))) (; ";")) (goto_statement "goto LAB_00289da4;" (goto "goto") (statement_identifier "LAB_00289da4") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_135 = '\0';" (assignment_expression "local_135 = '\0'" (identifier "local_135") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (labeled_statement "LAB_00289da4:\n  if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);\n  }" (statement_identifier "LAB_00289da4") (: ":") (if_statement "if (param_6 != 0) {\n    local_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 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_140 = (byte *)0x0;\n    local_100 = 0;\n    do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);\n  }" ({ "{") (expression_statement "local_140 = (byte *)0x0;" (assignment_expression "local_140 = (byte *)0x0" (identifier "local_140") (= "=") (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")) (; ";")) (do_statement "do {\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    } while (param_6 != local_100);" (do "do") (compound_statement "{\n      uVar19 = param_5[1];\n      uVar2 = param_5[2];\n      uVar12 = (uint)(uVar19 >> 0x20);\n      local_118 = (int)uVar19;\n      if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }\nLAB_00289ec8:\n      local_100 = local_100 + 1;\n      param_5 = param_5 + 3;\n    }" ({ "{") (expression_statement "uVar19 = param_5[1];" (assignment_expression "uVar19 = param_5[1]" (identifier "uVar19") (= "=") (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar2 = param_5[2];" (assignment_expression "uVar2 = param_5[2]" (identifier "uVar2") (= "=") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar12 = (uint)(uVar19 >> 0x20);" (assignment_expression "uVar12 = (uint)(uVar19 >> 0x20)" (identifier "uVar12") (= "=") (call_expression "(uint)(uVar19 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar19 >> 0x20)" (( "(") (binary_expression "uVar19 >> 0x20" (identifier "uVar19") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_118 = (int)uVar19;" (assignment_expression "local_118 = (int)uVar19" (identifier "local_118") (= "=") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) (; ";")) (if_statement "if (uVar19 >> 0x20 < param_7) {\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }" (if "if") (parenthesized_expression "(uVar19 >> 0x20 < param_7)" (( "(") (binary_expression "uVar19 >> 0x20 < param_7" (binary_expression "uVar19 >> 0x20" (identifier "uVar19") (>> ">>") (number_literal "0x20")) (< "<") (identifier "param_7")) () ")")) (compound_statement "{\n        if (param_8 == 0) {\n                    \n          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");\n        }\n        lVar15 = (ulong)(uVar12 * 0x18) + param_8;\n        local_104 = (uint)*(ushort *)(lVar15 + 6);\n        if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }\n        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }\n        local_120 = param_3;\n        if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 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 "lVar15 = (ulong)(uVar12 * 0x18) + param_8;" (assignment_expression "lVar15 = (ulong)(uVar12 * 0x18) + param_8" (identifier "lVar15") (= "=") (binary_expression "(ulong)(uVar12 * 0x18) + param_8" (call_expression "(ulong)(uVar12 * 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar12 * 0x18)" (( "(") (binary_expression "uVar12 * 0x18" (identifier "uVar12") (* "*") (number_literal "0x18")) () ")"))) (+ "+") (identifier "param_8"))) (; ";")) (expression_statement "local_104 = (uint)*(ushort *)(lVar15 + 6);" (assignment_expression "local_104 = (uint)*(ushort *)(lVar15 + 6)" (identifier "local_104") (= "=") (binary_expression "(uint)*(ushort *)(lVar15 + 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(lVar15 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 6)" (( "(") (binary_expression "lVar15 + 6" (identifier "lVar15") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (if_statement "if (local_104 < 0xff00) {\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }\n        else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }" (if "if") (parenthesized_expression "(local_104 < 0xff00)" (( "(") (binary_expression "local_104 < 0xff00" (identifier "local_104") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\nLAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }\n        }" ({ "{") (labeled_statement "LAB_00289f33:\n          pbVar17 = *(byte **)(lVar15 + 8);" (statement_identifier "LAB_00289f33") (: ":") (expression_statement "pbVar17 = *(byte **)(lVar15 + 8);" (assignment_expression "pbVar17 = *(byte **)(lVar15 + 8)" (identifier "pbVar17") (= "=") (pointer_expression "*(byte **)(lVar15 + 8)" (* "*") (cast_expression "(byte **)(lVar15 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar15 + 8)" (( "(") (binary_expression "lVar15 + 8" (identifier "lVar15") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "local_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" (identifier "local_130") (= "=") (binary_expression "pbVar17 + uVar2" (identifier "pbVar17") (+ "+") (identifier "uVar2"))) (; ";")) (if_statement "if (bVar22) {\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (compound_statement "{\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            local_58 = param_3;\n            FUN_001a7180(local_160,&local_58);\n            bVar23 = true;\n            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;\nLAB_00289e47:\n            local_58 = (byte *)0x0;\n            FUN_001a7300(local_158,&local_58);\n            goto LAB_00289e62;\n          }" ({ "{") (expression_statement "local_50 = CONCAT44(local_50._4_4_,local_104);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,local_104)" (identifier "local_50") (= "=") (call_expression "CONCAT44(local_50._4_4_,local_104)" (identifier "CONCAT44") (argument_list "(local_50._4_4_,local_104)" (( "(") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "local_104") () ")")))) (; ";")) (expression_statement "local_58 = param_3;" (assignment_expression "local_58 = param_3" (identifier "local_58") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_001a7180(local_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" (identifier "FUN_001a7180") (argument_list "(local_160,&local_58)" (( "(") (identifier "local_160") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" (identifier "bVar23") (= "=") (true "true")) (; ";")) (if_statement "if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 4) & 0xf) == 3)" (( "(") (binary_expression "(*(byte *)(lVar15 + 4) & 0xf) == 3" (parenthesized_expression "(*(byte *)(lVar15 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(lVar15 + 4) & 0xf" (pointer_expression "*(byte *)(lVar15 + 4)" (* "*") (cast_expression "(byte *)(lVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 4)" (( "(") (binary_expression "lVar15 + 4" (identifier "lVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_00289f81;" (goto "goto") (statement_identifier "LAB_00289f81") (; ";"))) (labeled_statement "LAB_00289e47:\n            local_58 = (byte *)0x0;" (statement_identifier "LAB_00289e47") (: ":") (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_158,&local_58);" (call_expression "FUN_001a7300(local_158,&local_58)" (identifier "FUN_001a7300") (argument_list "(local_158,&local_58)" (( "(") (identifier "local_158") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (goto_statement "goto LAB_00289e62;" (goto "goto") (statement_identifier "LAB_00289e62") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }" (else "else") (compound_statement "{\n          if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }\n          pbVar17 = *(byte **)(lVar15 + 8);\n          local_130 = pbVar17 + uVar2;\n          if (!bVar22) goto LAB_00289ec8;\n          local_58 = (byte *)0x0;\n          local_50 = local_50 & 0xffffffff00000000;\n                    \n          FUN_001a7180(local_160,&local_58);\n          bVar23 = false;\n          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;\nLAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;\n          FUN_001a7300(local_158,&local_58);\nLAB_00289e62:\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_88);\n          if (!bVar23) goto LAB_00289ec8;\n        }" ({ "{") (if_statement "if (local_104 == 0xffff) {\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }" (if "if") (parenthesized_expression "(local_104 == 0xffff)" (( "(") (binary_expression "local_104 == 0xffff" (identifier "local_104") (== "==") (number_literal "0xffff")) () ")")) (compound_statement "{\n            lVar9 = *(long *)(param_3 + 0x40);\n            if (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }\n            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);\n            goto LAB_00289f33;\n          }" ({ "{") (expression_statement "lVar9 = *(long *)(param_3 + 0x40);" (assignment_expression "lVar9 = *(long *)(param_3 + 0x40)" (identifier "lVar9") (= "=") (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 (lVar9 == 0) {\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);\n              *(long *)(param_3 + 0x40) = lVar9;\n            }" ({ "{") (expression_statement "lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);" (assignment_expression "lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3)" (identifier "lVar9") (= "=") (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) = lVar9;" (assignment_expression "*(long *)(param_3 + 0x40) = lVar9" (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 "lVar9")) (; ";")) (} "}"))) (expression_statement "local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);" (assignment_expression "local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20)" (identifier "local_104") (= "=") (call_expression "FUN_00392c60(lVar9,param_3,uVar19 >> 0x20)" (identifier "FUN_00392c60") (argument_list "(lVar9,param_3,uVar19 >> 0x20)" (( "(") (identifier "lVar9") (, ",") (identifier "param_3") (, ",") (binary_expression "uVar19 >> 0x20" (identifier "uVar19") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (goto_statement "goto LAB_00289f33;" (goto "goto") (statement_identifier "LAB_00289f33") (; ";")) (} "}"))) (expression_statement "pbVar17 = *(byte **)(lVar15 + 8);" (assignment_expression "pbVar17 = *(byte **)(lVar15 + 8)" (identifier "pbVar17") (= "=") (pointer_expression "*(byte **)(lVar15 + 8)" (* "*") (cast_expression "(byte **)(lVar15 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar15 + 8)" (( "(") (binary_expression "lVar15 + 8" (identifier "lVar15") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" (identifier "local_130") (= "=") (binary_expression "pbVar17 + uVar2" (identifier "pbVar17") (+ "+") (identifier "uVar2"))) (; ";")) (if_statement "if (!bVar22) goto LAB_00289ec8;" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (goto_statement "goto LAB_00289ec8;" (goto "goto") (statement_identifier "LAB_00289ec8") (; ";"))) (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_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" (identifier "FUN_001a7180") (argument_list "(local_160,&local_58)" (( "(") (identifier "local_160") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (if_statement "if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 4) & 0xf) != 3)" (( "(") (binary_expression "(*(byte *)(lVar15 + 4) & 0xf) != 3" (parenthesized_expression "(*(byte *)(lVar15 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(lVar15 + 4) & 0xf" (pointer_expression "*(byte *)(lVar15 + 4)" (* "*") (cast_expression "(byte *)(lVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 4)" (( "(") (binary_expression "lVar15 + 4" (identifier "lVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_00289e47;" (goto "goto") (statement_identifier "LAB_00289e47") (; ";"))) (labeled_statement "LAB_00289f81:\n          local_58 = (byte *)0xffffffffffffffff;" (statement_identifier "LAB_00289f81") (: ":") (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_158,&local_58);" (call_expression "FUN_001a7300(local_158,&local_58)" (identifier "FUN_001a7300") (argument_list "(local_158,&local_58)" (( "(") (identifier "local_158") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (labeled_statement "LAB_00289e62:\n          local_58 = pbVar17;" (statement_identifier "LAB_00289e62") (: ":") (expression_statement "local_58 = pbVar17;" (assignment_expression "local_58 = pbVar17" (identifier "local_58") (= "=") (identifier "pbVar17")) (; ";"))) (expression_statement "local_50 = uVar2;" (assignment_expression "local_50 = uVar2" (identifier "local_50") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_001a74a0(local_168,&local_58);" (call_expression "FUN_001a74a0(local_168,&local_58)" (identifier "FUN_001a74a0") (argument_list "(local_168,&local_58)" (( "(") (identifier "local_168") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "local_58 = (byte *)*param_5;" (assignment_expression "local_58 = (byte *)*param_5" (identifier "local_58") (= "=") (cast_expression "(byte *)*param_5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (; ";")) (expression_statement "puVar1 = *(undefined8 **)(local_148 + 8);" (assignment_expression "puVar1 = *(undefined8 **)(local_148 + 8)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined8 **)(local_148 + 8)" (* "*") (cast_expression "(undefined8 **)(local_148 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_148 + 8)" (( "(") (binary_expression "local_148 + 8" (identifier "local_148") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" (if "if") (parenthesized_expression "(puVar1 == *(undefined8 **)(local_148 + 0x10))" (( "(") (binary_expression "puVar1 == *(undefined8 **)(local_148 + 0x10)" (identifier "puVar1") (== "==") (pointer_expression "*(undefined8 **)(local_148 + 0x10)" (* "*") (cast_expression "(undefined8 **)(local_148 + 0x10)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_148 + 0x10)" (( "(") (binary_expression "local_148 + 0x10" (identifier "local_148") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }" ({ "{") (expression_statement "FUN_001a6070(local_148,puVar1,&local_58);" (call_expression "FUN_001a6070(local_148,puVar1,&local_58)" (identifier "FUN_001a6070") (argument_list "(local_148,puVar1,&local_58)" (( "(") (identifier "local_148") (, ",") (identifier "puVar1") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" ({ "{") (expression_statement "*puVar1 = local_58;" (assignment_expression "*puVar1 = local_58" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(undefined8 **)(local_148 + 8) = puVar1 + 1;" (assignment_expression "*(undefined8 **)(local_148 + 8) = puVar1 + 1" (pointer_expression "*(undefined8 **)(local_148 + 8)" (* "*") (cast_expression "(undefined8 **)(local_148 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_148 + 8)" (( "(") (binary_expression "local_148 + 8" (identifier "local_148") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "puVar1 + 1" (identifier "puVar1") (+ "+") (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_170,&local_88);" (call_expression "FUN_001a7630(local_170,&local_88)" (identifier "FUN_001a7630") (argument_list "(local_170,&local_88)" (( "(") (identifier "local_170") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")"))) (; ";")) (if_statement "if (!bVar23) goto LAB_00289ec8;" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (goto_statement "goto LAB_00289ec8;" (goto "goto") (statement_identifier "LAB_00289ec8") (; ";"))) (} "}")))) (if_statement "if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }" (if "if") (parenthesized_expression "((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0))" (( "(") (binary_expression "(((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)) &&\n           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)" (parenthesized_expression "(((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28))" (( "(") (binary_expression "((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&\n            (local_118 - 0x24U < 0x28)" (parenthesized_expression "((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1))" (( "(") (binary_expression "(local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)" (parenthesized_expression "(local_135 != '\0')" (( "(") (binary_expression "local_135 != '\0'" (identifier "local_135") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(lVar15 + 4) & 0xf) != 1)" (( "(") (binary_expression "(*(byte *)(lVar15 + 4) & 0xf) != 1" (parenthesized_expression "(*(byte *)(lVar15 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(lVar15 + 4) & 0xf" (pointer_expression "*(byte *)(lVar15 + 4)" (* "*") (cast_expression "(byte *)(lVar15 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 4)" (( "(") (binary_expression "lVar15 + 4" (identifier "lVar15") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "1")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_118 - 0x24U < 0x28)" (( "(") (binary_expression "local_118 - 0x24U < 0x28" (binary_expression "local_118 - 0x24U" (identifier "local_118") (- "-") (number_literal "0x24U")) (< "<") (number_literal "0x28")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)" (( "(") (binary_expression "(0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0" (parenthesized_expression "(0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1)" (( "(") (binary_expression "0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1" (binary_expression "0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f)" (number_literal "0xf03fffffffU") (>> ">>") (parenthesized_expression "((ulong)(local_118 - 0x24U) & 0x3f)" (( "(") (binary_expression "(ulong)(local_118 - 0x24U) & 0x3f" (call_expression "(ulong)(local_118 - 0x24U)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(local_118 - 0x24U)" (( "(") (binary_expression "local_118 - 0x24U" (identifier "local_118") (- "-") (number_literal "0x24U")) () ")"))) (& "&") (number_literal "0x3f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          local_a0 = (uint)*(ushort *)(lVar15 + 6);\n          local_e8 = *(long *)(param_1 + 0x298) + 0x68;\n          local_a8 = param_3;\n          FUN_001a7850(local_e8,&local_a8,&local_e8,1);\n        }" ({ "{") (expression_statement "local_a0 = (uint)*(ushort *)(lVar15 + 6);" (assignment_expression "local_a0 = (uint)*(ushort *)(lVar15 + 6)" (identifier "local_a0") (= "=") (binary_expression "(uint)*(ushort *)(lVar15 + 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(lVar15 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 6)" (( "(") (binary_expression "lVar15 + 6" (identifier "lVar15") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (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") () ")"))) (; ";")) (} "}"))) (expression_statement "local_120 = param_3;" (assignment_expression "local_120 = param_3" (identifier "local_120") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (param_4 != local_104) {\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(param_4 != local_104)" (( "(") (binary_expression "param_4 != local_104" (identifier "param_4") (!= "!=") (identifier "local_104")) () ")")) (compound_statement "{\nLAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }\n        }" ({ "{") (labeled_statement "LAB_0028a049:\n          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n            FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n          }" (statement_identifier "LAB_0028a049") (: ":") (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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809)" (( "(") (binary_expression "*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809" (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 "0x2809")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            lVar9 = *(long *)(param_1 + 0x290);\n            local_80 = local_104;\n            lVar15 = lVar9 + 0x28;\n            local_88 = local_120;\n            lVar10 = lVar15;\n            lVar8 = *(long *)(lVar9 + 0x30);\n            local_98 = param_3;\n            local_90 = param_4;\n            if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }\n            local_d0 = lVar6 + 0x30;\n            FUN_001a78f0(local_d0,&local_88,&local_d0,1);\n            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);\n            if (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }\n            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }\n            if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "lVar9 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x290)" (identifier "lVar9") (= "=") (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_80 = local_104;" (assignment_expression "local_80 = local_104" (identifier "local_80") (= "=") (identifier "local_104")) (; ";")) (expression_statement "lVar15 = lVar9 + 0x28;" (assignment_expression "lVar15 = lVar9 + 0x28" (identifier "lVar15") (= "=") (binary_expression "lVar9 + 0x28" (identifier "lVar9") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "local_88 = local_120;" (assignment_expression "local_88 = local_120" (identifier "local_88") (= "=") (identifier "local_120")) (; ";")) (expression_statement "lVar10 = lVar15;" (assignment_expression "lVar10 = lVar15" (identifier "lVar10") (= "=") (identifier "lVar15")) (; ";")) (expression_statement "lVar8 = *(long *)(lVar9 + 0x30);" (assignment_expression "lVar8 = *(long *)(lVar9 + 0x30)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar9 + 0x30)" (* "*") (cast_expression "(long *)(lVar9 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x30)" (( "(") (binary_expression "lVar9 + 0x30" (identifier "lVar9") (+ "+") (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")) (; ";")) (if_statement "if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }\n            else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }" (if "if") (parenthesized_expression "(*(long *)(lVar9 + 0x30) == 0)" (( "(") (binary_expression "*(long *)(lVar9 + 0x30) == 0" (pointer_expression "*(long *)(lVar9 + 0x30)" (* "*") (cast_expression "(long *)(lVar9 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x30)" (( "(") (binary_expression "lVar9 + 0x30" (identifier "lVar9") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0028a100:\n              local_c8 = &local_98;\n              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);\n            }" ({ "{") (labeled_statement "LAB_0028a100:\n              local_c8 = &local_98;" (statement_identifier "LAB_0028a100") (: ":") (expression_statement "local_c8 = &local_98;" (assignment_expression "local_c8 = &local_98" (identifier "local_c8") (= "=") (pointer_expression "&local_98" (& "&") (identifier "local_98"))) (; ";"))) (expression_statement "lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);" (assignment_expression "lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea)" (identifier "lVar6") (= "=") (call_expression "FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea)" (identifier "FUN_001a64f0") (argument_list "(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea)" (( "(") (binary_expression "lVar9 + 0x20" (identifier "lVar9") (+ "+") (number_literal "0x20")) (, ",") (identifier "lVar15") (, ",") (pointer_expression "&DAT_0055840a" (& "&") (identifier "DAT_0055840a")) (, ",") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) (, ",") (pointer_expression "&local_ea" (& "&") (identifier "local_ea")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }" (else "else") (compound_statement "{\n              do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);\nLAB_0028a0da:\n              bVar23 = lVar6 == lVar15;\n              lVar15 = lVar6;\n              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;\n            }" ({ "{") (do_statement "do {\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              } while (*(long *)(lVar6 + 0x10) != 0);" (do "do") (compound_statement "{\n                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }\n                lVar10 = lVar6;\n                lVar8 = *(long *)(lVar6 + 0x10);\n              }" ({ "{") (while_statement "while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))) {\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }" (while "while") (parenthesized_expression "((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )))" (( "(") (parenthesized_expression "(lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       ))" (( "(") (comma_expression "lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )" (assignment_expression "lVar6 = lVar8" (identifier "lVar6") (= "=") (identifier "lVar8")) (, ",") (binary_expression "*(byte **)(lVar6 + 0x20) < param_3 ||\n                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )" (binary_expression "*(byte **)(lVar6 + 0x20) < param_3" (pointer_expression "*(byte **)(lVar6 + 0x20)" (* "*") (cast_expression "(byte **)(lVar6 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (identifier "param_3")) (|| "||") (parenthesized_expression "((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))\n                       )" (( "(") (parenthesized_expression "(param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))" (( "(") (binary_expression "param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4)" (binary_expression "param_3 == *(byte **)(lVar6 + 0x20)" (identifier "param_3") (== "==") (pointer_expression "*(byte **)(lVar6 + 0x20)" (* "*") (cast_expression "(byte **)(lVar6 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(*(uint *)(lVar6 + 0x28) < param_4)" (( "(") (binary_expression "*(uint *)(lVar6 + 0x28) < param_4" (pointer_expression "*(uint *)(lVar6 + 0x28)" (* "*") (cast_expression "(uint *)(lVar6 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x28)" (( "(") (binary_expression "lVar6 + 0x28" (identifier "lVar6") (+ "+") (number_literal "0x28")) () ")")))) (< "<") (identifier "param_4")) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                  plVar3 = (long *)(lVar6 + 0x18);\n                  lVar6 = lVar10;\n                  lVar8 = *plVar3;\n                  if (*plVar3 == 0) goto LAB_0028a0da;\n                }" ({ "{") (expression_statement "plVar3 = (long *)(lVar6 + 0x18);" (assignment_expression "plVar3 = (long *)(lVar6 + 0x18)" (identifier "plVar3") (= "=") (cast_expression "(long *)(lVar6 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x18)" (( "(") (binary_expression "lVar6 + 0x18" (identifier "lVar6") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "lVar6 = lVar10;" (assignment_expression "lVar6 = lVar10" (identifier "lVar6") (= "=") (identifier "lVar10")) (; ";")) (expression_statement "lVar8 = *plVar3;" (assignment_expression "lVar8 = *plVar3" (identifier "lVar8") (= "=") (pointer_expression "*plVar3" (* "*") (identifier "plVar3"))) (; ";")) (if_statement "if (*plVar3 == 0) goto LAB_0028a0da;" (if "if") (parenthesized_expression "(*plVar3 == 0)" (( "(") (binary_expression "*plVar3 == 0" (pointer_expression "*plVar3" (* "*") (identifier "plVar3")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028a0da;" (goto "goto") (statement_identifier "LAB_0028a0da") (; ";"))) (} "}"))) (expression_statement "lVar10 = lVar6;" (assignment_expression "lVar10 = lVar6" (identifier "lVar10") (= "=") (identifier "lVar6")) (; ";")) (expression_statement "lVar8 = *(long *)(lVar6 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar6 + 0x10)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar6 + 0x10)" (* "*") (cast_expression "(long *)(lVar6 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x10)" (( "(") (binary_expression "lVar6 + 0x10" (identifier "lVar6") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(long *)(lVar6 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(lVar6 + 0x10) != 0" (pointer_expression "*(long *)(lVar6 + 0x10)" (* "*") (cast_expression "(long *)(lVar6 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x10)" (( "(") (binary_expression "lVar6 + 0x10" (identifier "lVar6") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_0028a0da:\n              bVar23 = lVar6 == lVar15;" (statement_identifier "LAB_0028a0da") (: ":") (expression_statement "bVar23 = lVar6 == lVar15;" (assignment_expression "bVar23 = lVar6 == lVar15" (identifier "bVar23") (= "=") (binary_expression "lVar6 == lVar15" (identifier "lVar6") (== "==") (identifier "lVar15"))) (; ";"))) (expression_statement "lVar15 = lVar6;" (assignment_expression "lVar15 = lVar6" (identifier "lVar15") (= "=") (identifier "lVar6")) (; ";")) (if_statement "if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))\n              goto LAB_0028a100;" (if "if") (parenthesized_expression "(((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))" (( "(") (binary_expression "((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||\n                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28))))" (parenthesized_expression "((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20)))" (( "(") (binary_expression "(bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))" (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (|| "||") (parenthesized_expression "(param_3 < *(byte **)(lVar6 + 0x20))" (( "(") (binary_expression "param_3 < *(byte **)(lVar6 + 0x20)" (identifier "param_3") (< "<") (pointer_expression "*(byte **)(lVar6 + 0x20)" (* "*") (cast_expression "(byte **)(lVar6 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28))))" (( "(") (parenthesized_expression "(param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))" (( "(") (binary_expression "param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28))" (binary_expression "param_3 == *(byte **)(lVar6 + 0x20)" (identifier "param_3") (== "==") (pointer_expression "*(byte **)(lVar6 + 0x20)" (* "*") (cast_expression "(byte **)(lVar6 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")"))))) (&& "&&") (parenthesized_expression "(param_4 < *(uint *)(lVar6 + 0x28))" (( "(") (binary_expression "param_4 < *(uint *)(lVar6 + 0x28)" (identifier "param_4") (< "<") (pointer_expression "*(uint *)(lVar6 + 0x28)" (* "*") (cast_expression "(uint *)(lVar6 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x28)" (( "(") (binary_expression "lVar6 + 0x28" (identifier "lVar6") (+ "+") (number_literal "0x28")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0028a100;" (goto "goto") (statement_identifier "LAB_0028a100") (; ";"))) (} "}")))) (expression_statement "local_d0 = lVar6 + 0x30;" (assignment_expression "local_d0 = lVar6 + 0x30" (identifier "local_d0") (= "=") (binary_expression "lVar6 + 0x30" (identifier "lVar6") (+ "+") (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 "plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);" (assignment_expression "plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18)" (identifier "plVar3") (= "=") (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 (plVar3 == (long *)0x0) {\n                    \n              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");\n            }" (if "if") (parenthesized_expression "(plVar3 == (long *)0x0)" (( "(") (binary_expression "plVar3 == (long *)0x0" (identifier "plVar3") (== "==") (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 **)(*plVar3 + 0x208) != FUN_001c0b90) {\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }" (if "if") (parenthesized_expression "(*(code **)(*plVar3 + 0x208) != FUN_001c0b90)" (( "(") (binary_expression "*(code **)(*plVar3 + 0x208) != FUN_001c0b90" (pointer_expression "*(code **)(*plVar3 + 0x208)" (* "*") (cast_expression "(code **)(*plVar3 + 0x208)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar3 + 0x208)" (( "(") (binary_expression "*plVar3 + 0x208" (pointer_expression "*plVar3" (* "*") (identifier "plVar3")) (+ "+") (number_literal "0x208")) () ")")))) (!= "!=") (identifier "FUN_001c0b90")) () ")")) (compound_statement "{\n              (**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);\n            }" ({ "{") (expression_statement "(**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);" (call_expression "(**(code **)(*plVar3 + 0x208))\n                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130)" (parenthesized_expression "(**(code **)(*plVar3 + 0x208))" (( "(") (pointer_expression "**(code **)(*plVar3 + 0x208)" (* "*") (pointer_expression "*(code **)(*plVar3 + 0x208)" (* "*") (cast_expression "(code **)(*plVar3 + 0x208)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar3 + 0x208)" (( "(") (binary_expression "*plVar3 + 0x208" (pointer_expression "*plVar3" (* "*") (identifier "plVar3")) (+ "+") (number_literal "0x208")) () ")"))))) () ")")) (argument_list "(plVar3,param_1,param_3,param_4,local_120,local_104,local_130)" (( "(") (identifier "plVar3") (, ",") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "local_120") (, ",") (identifier "local_104") (, ",") (identifier "local_130") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_140 != (byte *)0x0) {\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }" (if "if") (parenthesized_expression "(local_140 != (byte *)0x0)" (( "(") (binary_expression "local_140 != (byte *)0x0" (identifier "local_140") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              lVar15 = *(long *)(param_1 + 0x290);\n              local_58 = local_48;\n              sVar7 = strlen((char *)local_140);\n              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);\n              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);\n              if (local_58 != local_48) {\n                FUN_0049e330();\n              }\n              lVar9 = *(long *)(param_1 + 0x290);\n              if (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }\n            }" ({ "{") (expression_statement "lVar15 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar15 = *(long *)(param_1 + 0x290)" (identifier "lVar15") (= "=") (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 "sVar7 = strlen((char *)local_140);" (assignment_expression "sVar7 = strlen((char *)local_140)" (identifier "sVar7") (= "=") (call_expression "strlen((char *)local_140)" (identifier "strlen") (argument_list "((char *)local_140)" (( "(") (cast_expression "(char *)local_140" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_140")) () ")")))) (; ";")) (expression_statement "FUN_001a61c0(&local_58,local_140,local_140 + sVar7);" (call_expression "FUN_001a61c0(&local_58,local_140,local_140 + sVar7)" (identifier "FUN_001a61c0") (argument_list "(&local_58,local_140,local_140 + sVar7)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "local_140") (, ",") (binary_expression "local_140 + sVar7" (identifier "local_140") (+ "+") (identifier "sVar7")) () ")"))) (; ";")) (expression_statement "lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);" (assignment_expression "lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58)" (identifier "lVar15") (= "=") (call_expression "FUN_001c4d80(lVar15 + 0x88,&local_58)" (identifier "FUN_001c4d80") (argument_list "(lVar15 + 0x88,&local_58)" (( "(") (binary_expression "lVar15 + 0x88" (identifier "lVar15") (+ "+") (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 "lVar9 = *(long *)(param_1 + 0x290);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x290)" (identifier "lVar9") (= "=") (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 (lVar15 != lVar9 + 0x90) {\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" (if "if") (parenthesized_expression "(lVar15 != lVar9 + 0x90)" (( "(") (binary_expression "lVar15 != lVar9 + 0x90" (identifier "lVar15") (!= "!=") (binary_expression "lVar9 + 0x90" (identifier "lVar9") (+ "+") (number_literal "0x90"))) () ")")) (compound_statement "{\n                lVar10 = lVar9 + 0x28;\n                local_50 = CONCAT44(local_50._4_4_,param_4);\n                lVar8 = lVar10;\n                lVar6 = *(long *)(lVar9 + 0x30);\n                if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }\n                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }\n              }" ({ "{") (expression_statement "lVar10 = lVar9 + 0x28;" (assignment_expression "lVar10 = lVar9 + 0x28" (identifier "lVar10") (= "=") (binary_expression "lVar9 + 0x28" (identifier "lVar9") (+ "+") (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 "lVar8 = lVar10;" (assignment_expression "lVar8 = lVar10" (identifier "lVar8") (= "=") (identifier "lVar10")) (; ";")) (expression_statement "lVar6 = *(long *)(lVar9 + 0x30);" (assignment_expression "lVar6 = *(long *)(lVar9 + 0x30)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(lVar9 + 0x30)" (* "*") (cast_expression "(long *)(lVar9 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x30)" (( "(") (binary_expression "lVar9 + 0x30" (identifier "lVar9") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (*(long *)(lVar9 + 0x30) == 0) {\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }\n                else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }" (if "if") (parenthesized_expression "(*(long *)(lVar9 + 0x30) == 0)" (( "(") (binary_expression "*(long *)(lVar9 + 0x30) == 0" (pointer_expression "*(long *)(lVar9 + 0x30)" (* "*") (cast_expression "(long *)(lVar9 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x30)" (( "(") (binary_expression "lVar9 + 0x30" (identifier "lVar9") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0028a5e0:\n                  local_c0 = &local_58;\n                  local_58 = param_3;\n                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);\n                }" ({ "{") (labeled_statement "LAB_0028a5e0:\n                  local_c0 = &local_58;" (statement_identifier "LAB_0028a5e0") (: ":") (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 "lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);" (assignment_expression "lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9)" (identifier "lVar11") (= "=") (call_expression "FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9)" (identifier "FUN_001a64f0") (argument_list "(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9)" (( "(") (binary_expression "lVar9 + 0x20" (identifier "lVar9") (+ "+") (number_literal "0x20")) (, ",") (identifier "lVar10") (, ",") (pointer_expression "&DAT_0055840a" (& "&") (identifier "DAT_0055840a")) (, ",") (pointer_expression "&local_c0" (& "&") (identifier "local_c0")) (, ",") (pointer_expression "&local_e9" (& "&") (identifier "local_e9")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }" (else "else") (compound_statement "{\n                  do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);\nLAB_0028a24a:\n                  bVar23 = lVar10 == lVar11;\n                  lVar10 = lVar11;\n                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;\n                }" ({ "{") (do_statement "do {\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  } while (*(long *)(lVar11 + 0x10) != 0);" (do "do") (compound_statement "{\n                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }\n                    lVar8 = lVar11;\n                    lVar6 = *(long *)(lVar11 + 0x10);\n                  }" ({ "{") (while_statement "while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))) {\n                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }" (while "while") (parenthesized_expression "((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4)))))" (( "(") (parenthesized_expression "(lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4))))" (( "(") (comma_expression "lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||\n                           ((param_3 == *(byte **)(lVar11 + 0x20) &&\n                            (*(uint *)(lVar11 + 0x28) < param_4)))" (assignment_expression "lVar11 = lVar6" (identifier "lVar11") (= "=") (identifier "lVar6")) (, ",") (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                      plVar3 = (long *)(lVar11 + 0x18);\n                      lVar11 = lVar8;\n                      lVar6 = *plVar3;\n                      if (*plVar3 == 0) goto LAB_0028a24a;\n                    }" ({ "{") (expression_statement "plVar3 = (long *)(lVar11 + 0x18);" (assignment_expression "plVar3 = (long *)(lVar11 + 0x18)" (identifier "plVar3") (= "=") (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 = lVar8;" (assignment_expression "lVar11 = lVar8" (identifier "lVar11") (= "=") (identifier "lVar8")) (; ";")) (expression_statement "lVar6 = *plVar3;" (assignment_expression "lVar6 = *plVar3" (identifier "lVar6") (= "=") (pointer_expression "*plVar3" (* "*") (identifier "plVar3"))) (; ";")) (if_statement "if (*plVar3 == 0) goto LAB_0028a24a;" (if "if") (parenthesized_expression "(*plVar3 == 0)" (( "(") (binary_expression "*plVar3 == 0" (pointer_expression "*plVar3" (* "*") (identifier "plVar3")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028a24a;" (goto "goto") (statement_identifier "LAB_0028a24a") (; ";"))) (} "}"))) (expression_statement "lVar8 = lVar11;" (assignment_expression "lVar8 = lVar11" (identifier "lVar8") (= "=") (identifier "lVar11")) (; ";")) (expression_statement "lVar6 = *(long *)(lVar11 + 0x10);" (assignment_expression "lVar6 = *(long *)(lVar11 + 0x10)" (identifier "lVar6") (= "=") (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_0028a24a:\n                  bVar23 = lVar10 == lVar11;" (statement_identifier "LAB_0028a24a") (: ":") (expression_statement "bVar23 = lVar10 == lVar11;" (assignment_expression "bVar23 = lVar10 == lVar11" (identifier "bVar23") (= "=") (binary_expression "lVar10 == lVar11" (identifier "lVar10") (== "==") (identifier "lVar11"))) (; ";"))) (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" (identifier "lVar10") (= "=") (identifier "lVar11")) (; ";")) (if_statement "if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;" (if "if") (parenthesized_expression "(((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28)))))" (( "(") (binary_expression "((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||\n                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))" (parenthesized_expression "((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20)))" (( "(") (binary_expression "(bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))" (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (|| "||") (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 "((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))))" (( "(") (parenthesized_expression "(local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28)))" (( "(") (comma_expression "local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (param_4 < *(uint *)(lVar11 + 0x28))" (assignment_expression "local_58 = param_3" (identifier "local_58") (= "=") (identifier "param_3")) (, ",") (binary_expression "param_3 == *(byte **)(lVar11 + 0x20) &&\n                      (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_0028a5e0;" (goto "goto") (statement_identifier "LAB_0028a5e0") (; ";"))) (} "}")))) (for_statement "for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;\n                    puVar1 = (undefined8 *)*puVar1) {\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }" (for "for") (( "(") (assignment_expression "puVar1 = *(undefined8 **)(lVar15 + 0x50)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined8 **)(lVar15 + 0x50)" (* "*") (cast_expression "(undefined8 **)(lVar15 + 0x50)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar15 + 0x50)" (( "(") (binary_expression "lVar15 + 0x50" (identifier "lVar15") (+ "+") (number_literal "0x50")) () ")"))))) (; ";") (binary_expression "puVar1 != (undefined8 *)0x0" (identifier "puVar1") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar1 = (undefined8 *)*puVar1" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)*puVar1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) () ")") (compound_statement "{\n                  local_d8 = lVar11 + 0x30;\n                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);\n                }" ({ "{") (expression_statement "local_d8 = lVar11 + 0x30;" (assignment_expression "local_d8 = lVar11 + 0x30" (identifier "local_d8") (= "=") (binary_expression "lVar11 + 0x30" (identifier "lVar11") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);" (call_expression "FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1)" (identifier "FUN_001a78f0") (argument_list "(lVar11 + 0x30,puVar1 + 1,&local_d8,1)" (( "(") (binary_expression "lVar11 + 0x30" (identifier "lVar11") (+ "+") (number_literal "0x30")) (, ",") (binary_expression "puVar1 + 1" (identifier "puVar1") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_d8" (& "&") (identifier "local_d8")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }" (else "else") (compound_statement "{\n        if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }\n        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));\n        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {\n                    \n          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");\n        }\n        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);\n        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }\nLAB_0028a359:\n        lVar15 = 8;\n        pbVar16 = (byte *)"__start_";\n        pbVar18 = pbVar13;\n        do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;\n        if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }\n        local_140 = pbVar13;\n        if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }\n        if (bVar14 != 0) goto LAB_0028a049;\n      }" ({ "{") (if_statement "if (uVar12 < *(uint *)(param_3 + 0x120)) {\n          local_88 = (byte *)0x0;\nLAB_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");\n        }" (if "if") (parenthesized_expression "(uVar12 < *(uint *)(param_3 + 0x120))" (( "(") (binary_expression "uVar12 < *(uint *)(param_3 + 0x120)" (identifier "uVar12") (< "<") (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_0028a4f8:\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_0028a4f8:\n                    \n          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");" (statement_identifier "LAB_0028a4f8") (: ":") (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 "uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));" (assignment_expression "uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120))" (identifier "uVar19") (= "=") (call_expression "(ulong)(uVar12 - *(uint *)(param_3 + 0x120))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar12 - *(uint *)(param_3 + 0x120))" (( "(") (binary_expression "uVar12 - *(uint *)(param_3 + 0x120)" (identifier "uVar12") (- "-") (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) <= uVar19) {\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) <= uVar19)" (( "(") (binary_expression "(ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19" (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 "uVar19")) () ")")) (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) + uVar19 * 8);" (assignment_expression "local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8)" (identifier "local_88") (= "=") (pointer_expression "*(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8)" (* "*") (cast_expression "(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0x130) + uVar19 * 8)" (( "(") (binary_expression "*(long *)(param_3 + 0x130) + uVar19 * 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 "uVar19 * 8" (identifier "uVar19") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (local_88 == (byte *)0x0) goto LAB_0028a4f8;" (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_0028a4f8;" (goto "goto") (statement_identifier "LAB_0028a4f8") (; ";"))) (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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }\n        else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\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          pbVar17 = *(byte **)(local_88 + 0x40);\n          local_120 = *(byte **)(local_88 + 0x10);\n          local_130 = pbVar17 + uVar2;\n          if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }\n        }" ({ "{") (expression_statement "pbVar17 = *(byte **)(local_88 + 0x40);" (assignment_expression "pbVar17 = *(byte **)(local_88 + 0x40)" (identifier "pbVar17") (= "=") (pointer_expression "*(byte **)(local_88 + 0x40)" (* "*") (cast_expression "(byte **)(local_88 + 0x40)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_88 + 0x40)" (( "(") (binary_expression "local_88 + 0x40" (identifier "local_88") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_120 = *(byte **)(local_88 + 0x10);" (assignment_expression "local_120 = *(byte **)(local_88 + 0x10)" (identifier "local_120") (= "=") (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_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" (identifier "local_130") (= "=") (binary_expression "pbVar17 + uVar2" (identifier "pbVar17") (+ "+") (identifier "uVar2"))) (; ";")) (if_statement "if ((local_120[0x3c] & 1) == 0) {\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }\n          else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }" (if "if") (parenthesized_expression "((local_120[0x3c] & 1) == 0)" (( "(") (binary_expression "(local_120[0x3c] & 1) == 0" (parenthesized_expression "(local_120[0x3c] & 1)" (( "(") (binary_expression "local_120[0x3c] & 1" (subscript_expression "local_120[0x3c]" (identifier "local_120") ([ "[") (number_literal "0x3c") (] "]")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_104 = *(uint *)(local_88 + 0x18);\n            bVar14 = local_88[0x3b] >> 5 & 1;\n            uVar20 = (local_88[0x38] & 0xf) < 2;\n            uVar24 = (local_88[0x38] & 0xf) == 2;\n            if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }\n            pbVar13 = *(byte **)local_88;\n          }" ({ "{") (expression_statement "local_104 = *(uint *)(local_88 + 0x18);" (assignment_expression "local_104 = *(uint *)(local_88 + 0x18)" (identifier "local_104") (= "=") (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 "bVar14 = local_88[0x3b] >> 5 & 1;" (assignment_expression "bVar14 = local_88[0x3b] >> 5 & 1" (identifier "bVar14") (= "=") (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 "uVar20 = (local_88[0x38] & 0xf) < 2;" (assignment_expression "uVar20 = (local_88[0x38] & 0xf) < 2" (identifier "uVar20") (= "=") (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 "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"))) (; ";")) (if_statement "if ((bool)uVar24) {\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }" (if "if") (parenthesized_expression "((bool)uVar24)" (( "(") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")) () ")")) (compound_statement "{\n              uVar20 = 0;\n              uVar24 = local_135 == '\0';\n              if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }\n            }" ({ "{") (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" (identifier "uVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar24 = local_135 == '\0';" (assignment_expression "uVar24 = local_135 == '\0'" (identifier "uVar24") (= "=") (binary_expression "local_135 == '\0'" (identifier "local_135") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!(bool)uVar24) {\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }" (if "if") (parenthesized_expression "(!(bool)uVar24)" (( "(") (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) () ")")) (compound_statement "{\n                uVar20 = false;\n                uVar24 = bVar14 == 0;\n                if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }\nLAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;\n                local_b8 = local_120;\n                local_b0 = local_104;\n                FUN_001a7850(local_e0,&local_b8,&local_e0,1);\n              }" ({ "{") (expression_statement "uVar20 = false;" (assignment_expression "uVar20 = false" (identifier "uVar20") (= "=") (false "false")) (; ";")) (expression_statement "uVar24 = bVar14 == 0;" (assignment_expression "uVar24 = bVar14 == 0" (identifier "uVar24") (= "=") (binary_expression "bVar14 == 0" (identifier "bVar14") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!(bool)uVar24) {\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }" (if "if") (parenthesized_expression "(!(bool)uVar24)" (( "(") (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) () ")")) (compound_statement "{\n                  pbVar13 = *(byte **)local_88;\n                  lVar15 = 0x16;\n                  pbVar16 = pbVar13;\n                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n                  do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);\n                  uVar20 = 0;\n                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;\n                  if ((bool)uVar24) goto LAB_0028a359;\n                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {\n                    \n                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");\n                  }\n                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }\n                  uVar12 = local_118 - 0x24;\n                  uVar20 = uVar12 < 0x27;\n                  uVar24 = uVar12 == 0x27;\n                  if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;\n                }" ({ "{") (expression_statement "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(byte **)local_88" (identifier "pbVar13") (= "=") (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 "lVar15 = 0x16;" (assignment_expression "lVar15 = 0x16" (identifier "lVar15") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "pbVar16 = pbVar13;" (assignment_expression "pbVar16 = pbVar13" (identifier "pbVar16") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_"" (identifier "pbVar18") (= "=") (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""_GLOBAL_OFFSET_TABLE_"" (" """) (string_content "_GLOBAL_OFFSET_TABLE_") (" """)))) (; ";")) (do_statement "do {\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  } while ((bool)uVar24);" (do "do") (compound_statement "{\n                    bVar23 = (bool)uVar20;\n                    if (lVar15 == 0) break;\n                    lVar15 = lVar15 + -1;\n                    uVar20 = *pbVar16 < *pbVar18;\n                    uVar24 = *pbVar16 == *pbVar18;\n                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                    bVar23 = (bool)uVar20;\n                  }" ({ "{") (expression_statement "bVar23 = (bool)uVar20;" (assignment_expression "bVar23 = (bool)uVar20" (identifier "bVar23") (= "=") (cast_expression "(bool)uVar20" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar20"))) (; ";")) (if_statement "if (lVar15 == 0) break;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + -1" (identifier "lVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar20 = *pbVar16 < *pbVar18;" (assignment_expression "uVar20 = *pbVar16 < *pbVar18" (identifier "uVar20") (= "=") (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "uVar24 = *pbVar16 == *pbVar18;" (assignment_expression "uVar24 = *pbVar16 == *pbVar18" (identifier "uVar24") (= "=") (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar26 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar23 = (bool)uVar20;" (assignment_expression "bVar23 = (bool)uVar20" (identifier "bVar23") (= "=") (cast_expression "(bool)uVar20" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar24)" (( "(") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")) () ")")) (; ";")) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" (identifier "uVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;" (assignment_expression "uVar24 = (!bVar23 && !(bool)uVar24) == bVar23" (identifier "uVar24") (= "=") (binary_expression "(!bVar23 && !(bool)uVar24) == bVar23" (parenthesized_expression "(!bVar23 && !(bool)uVar24)" (( "(") (binary_expression "!bVar23 && !(bool)uVar24" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if ((bool)uVar24) goto LAB_0028a359;" (if "if") (parenthesized_expression "((bool)uVar24)" (( "(") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")) () ")")) (goto_statement "goto LAB_0028a359;" (goto "goto") (statement_identifier "LAB_0028a359") (; ";"))) (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 (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61)" (( "(") (type_descriptor "char *" (primitive_type "char") (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")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    uVar20 = false;\n                    uVar24 = (local_88[0x39] & 3) == 0;\n                    if (!(bool)uVar24) goto LAB_0028a6f0;\n                  }" ({ "{") (expression_statement "uVar20 = false;" (assignment_expression "uVar20 = false" (identifier "uVar20") (= "=") (false "false")) (; ";")) (expression_statement "uVar24 = (local_88[0x39] & 3) == 0;" (assignment_expression "uVar24 = (local_88[0x39] & 3) == 0" (identifier "uVar24") (= "=") (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"))) (; ";")) (if_statement "if (!(bool)uVar24) goto LAB_0028a6f0;" (if "if") (parenthesized_expression "(!(bool)uVar24)" (( "(") (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) () ")")) (goto_statement "goto LAB_0028a6f0;" (goto "goto") (statement_identifier "LAB_0028a6f0") (; ";"))) (} "}"))) (expression_statement "uVar12 = local_118 - 0x24;" (assignment_expression "uVar12 = local_118 - 0x24" (identifier "uVar12") (= "=") (binary_expression "local_118 - 0x24" (identifier "local_118") (- "-") (number_literal "0x24"))) (; ";")) (expression_statement "uVar20 = uVar12 < 0x27;" (assignment_expression "uVar20 = uVar12 < 0x27" (identifier "uVar20") (= "=") (binary_expression "uVar12 < 0x27" (identifier "uVar12") (< "<") (number_literal "0x27"))) (; ";")) (expression_statement "uVar24 = uVar12 == 0x27;" (assignment_expression "uVar24 = uVar12 == 0x27" (identifier "uVar24") (= "=") (binary_expression "uVar12 == 0x27" (identifier "uVar12") (== "==") (number_literal "0x27"))) (; ";")) (if_statement "if ((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))\n                  goto LAB_0028a359;" (if "if") (parenthesized_expression "((0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))" (( "(") (binary_expression "(0x27 < uVar12) ||\n                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20)" (parenthesized_expression "(0x27 < uVar12)" (( "(") (binary_expression "0x27 < uVar12" (number_literal "0x27") (< "<") (identifier "uVar12")) () ")")) (|| "||") (parenthesized_expression "(uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20)" (( "(") (comma_expression "uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20" (assignment_expression "uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0" (identifier "uVar20") (= "=") (binary_expression "(0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0" (parenthesized_expression "(0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1)" (( "(") (binary_expression "0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1" (binary_expression "0xf03fffffffU >> ((ulong)uVar12 & 0x3f)" (number_literal "0xf03fffffffU") (>> ">>") (parenthesized_expression "((ulong)uVar12 & 0x3f)" (( "(") (binary_expression "(ulong)uVar12 & 0x3f" (cast_expression "(ulong)uVar12" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar12")) (& "&") (number_literal "0x3f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) (, ",") (unary_expression "!(bool)uVar20" (! "!") (cast_expression "(bool)uVar20" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar20")))) () ")"))) () ")")) (goto_statement "goto LAB_0028a359;" (goto "goto") (statement_identifier "LAB_0028a359") (; ";"))) (} "}"))) (labeled_statement "LAB_0028a6f0:\n                local_e0 = *(long *)(param_1 + 0x298) + 0x68;" (statement_identifier "LAB_0028a6f0") (: ":") (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_120;" (assignment_expression "local_b8 = local_120" (identifier "local_b8") (= "=") (identifier "local_120")) (; ";")) (expression_statement "local_b0 = local_104;" (assignment_expression "local_b0 = local_104" (identifier "local_b0") (= "=") (identifier "local_104")) (; ";")) (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 "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(byte **)local_88" (identifier "pbVar13") (= "=") (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")))) (; ";")) (} "}")) (else_clause "else {\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }" (else "else") (compound_statement "{\n            local_104 = 0;\n            pbVar13 = *(byte **)local_88;\n            uVar20 = 0;\n            bVar14 = 0;\n            uVar24 = 1;\n            local_120 = (byte *)0x0;\n          }" ({ "{") (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" (identifier "local_104") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(byte **)local_88" (identifier "pbVar13") (= "=") (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 "uVar20 = 0;" (assignment_expression "uVar20 = 0" (identifier "uVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" (identifier "uVar24") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_120 = (byte *)0x0;" (assignment_expression "local_120 = (byte *)0x0" (identifier "local_120") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }" (else "else") (compound_statement "{\n          pbVar17 = *(byte **)(local_88 + 0x40);\n          pbVar13 = *(byte **)local_88;\n          uVar20 = 0;\n          bVar14 = 0;\n          uVar24 = 1;\n          local_104 = 0;\n          local_120 = (byte *)0x0;\n          local_130 = pbVar17 + uVar2;\n        }" ({ "{") (expression_statement "pbVar17 = *(byte **)(local_88 + 0x40);" (assignment_expression "pbVar17 = *(byte **)(local_88 + 0x40)" (identifier "pbVar17") (= "=") (pointer_expression "*(byte **)(local_88 + 0x40)" (* "*") (cast_expression "(byte **)(local_88 + 0x40)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_88 + 0x40)" (( "(") (binary_expression "local_88 + 0x40" (identifier "local_88") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "pbVar13 = *(byte **)local_88;" (assignment_expression "pbVar13 = *(byte **)local_88" (identifier "pbVar13") (= "=") (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 "uVar20 = 0;" (assignment_expression "uVar20 = 0" (identifier "uVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" (identifier "uVar24") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" (identifier "local_104") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_120 = (byte *)0x0;" (assignment_expression "local_120 = (byte *)0x0" (identifier "local_120") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_130 = pbVar17 + uVar2;" (assignment_expression "local_130 = pbVar17 + uVar2" (identifier "local_130") (= "=") (binary_expression "pbVar17 + uVar2" (identifier "pbVar17") (+ "+") (identifier "uVar2"))) (; ";")) (} "}")))) (labeled_statement "LAB_0028a359:\n        lVar15 = 8;" (statement_identifier "LAB_0028a359") (: ":") (expression_statement "lVar15 = 8;" (assignment_expression "lVar15 = 8" (identifier "lVar15") (= "=") (number_literal "8")) (; ";"))) (expression_statement "pbVar16 = (byte *)"__start_";" (assignment_expression "pbVar16 = (byte *)"__start_"" (identifier "pbVar16") (= "=") (cast_expression "(byte *)"__start_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""__start_"" (" """) (string_content "__start_") (" """)))) (; ";")) (expression_statement "pbVar18 = pbVar13;" (assignment_expression "pbVar18 = pbVar13" (identifier "pbVar18") (= "=") (identifier "pbVar13")) (; ";")) (do_statement "do {\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);" (do "do") (compound_statement "{\n          if (lVar15 == 0) break;\n          lVar15 = lVar15 + -1;\n          uVar20 = *pbVar16 < *pbVar18;\n          uVar24 = *pbVar16 == *pbVar18;\n          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar15 == 0) break;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + -1" (identifier "lVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar20 = *pbVar16 < *pbVar18;" (assignment_expression "uVar20 = *pbVar16 < *pbVar18" (identifier "uVar20") (= "=") (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "uVar24 = *pbVar16 == *pbVar18;" (assignment_expression "uVar24 = *pbVar16 == *pbVar18" (identifier "uVar24") (= "=") (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar26 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar24)" (( "(") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")) () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;" (assignment_expression "bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" (identifier "bVar25") (= "=") (binary_expression "(!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20" (parenthesized_expression "(!(bool)uVar20 && !(bool)uVar24)" (( "(") (binary_expression "!(bool)uVar20 && !(bool)uVar24" (unary_expression "!(bool)uVar20" (! "!") (cast_expression "(bool)uVar20" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar20"))) (&& "&&") (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")))) () ")")) (== "==") (cast_expression "(bool)uVar20" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar20")))) (; ";")) (if_statement "if (bVar25) {\n          pbVar13 = pbVar13 + 8;\n        }\n        else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n          pbVar13 = pbVar13 + 8;\n        }" ({ "{") (expression_statement "pbVar13 = pbVar13 + 8;" (assignment_expression "pbVar13 = pbVar13 + 8" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + 8" (identifier "pbVar13") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }" (else "else") (compound_statement "{\n          lVar15 = 7;\n          pbVar16 = (byte *)"__stop_";\n          pbVar18 = pbVar13;\n          do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          pbVar13 = pbVar13 + 7;\n          if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }\n        }" ({ "{") (expression_statement "lVar15 = 7;" (assignment_expression "lVar15 = 7" (identifier "lVar15") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar16 = (byte *)"__stop_";" (assignment_expression "pbVar16 = (byte *)"__stop_"" (identifier "pbVar16") (= "=") (cast_expression "(byte *)"__stop_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""__stop_"" (" """) (string_content "__stop_") (" """)))) (; ";")) (expression_statement "pbVar18 = pbVar13;" (assignment_expression "pbVar18 = pbVar13" (identifier "pbVar18") (= "=") (identifier "pbVar13")) (; ";")) (do_statement "do {\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);" (do "do") (compound_statement "{\n            if (lVar15 == 0) break;\n            lVar15 = lVar15 + -1;\n            bVar23 = *pbVar16 < *pbVar18;\n            bVar25 = *pbVar16 == *pbVar18;\n            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar15 == 0) break;" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + -1" (identifier "lVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar16 < *pbVar18;" (assignment_expression "bVar23 = *pbVar16 < *pbVar18" (identifier "bVar23") (= "=") (binary_expression "*pbVar16 < *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar25 = *pbVar16 == *pbVar18;" (assignment_expression "bVar25 = *pbVar16 == *pbVar18" (identifier "bVar25") (= "=") (binary_expression "*pbVar16 == *pbVar18" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar26 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "pbVar13 = pbVar13 + 7;" (assignment_expression "pbVar13 = pbVar13 + 7" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + 7" (identifier "pbVar13") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if ((!bVar23 && !bVar25) != bVar23) {\n            pbVar13 = local_140;\n          }" (if "if") (parenthesized_expression "((!bVar23 && !bVar25) != bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar25) != bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" (( "(") (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (!= "!=") (identifier "bVar23")) () ")")) (compound_statement "{\n            pbVar13 = local_140;\n          }" ({ "{") (expression_statement "pbVar13 = local_140;" (assignment_expression "pbVar13 = local_140" (identifier "pbVar13") (= "=") (identifier "local_140")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_140 = pbVar13;" (assignment_expression "local_140 = pbVar13" (identifier "local_140") (= "=") (identifier "pbVar13")) (; ";")) (if_statement "if (bVar22) {\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (compound_statement "{\n          if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }\n          puVar1 = *(undefined8 **)(local_158 + 8);\n          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }\n          local_58 = pbVar17;\n          local_50 = uVar2;\n          FUN_001a74a0(local_168,&local_58);\n          local_58 = (byte *)*param_5;\n          puVar1 = *(undefined8 **)(local_148 + 8);\n          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }\n          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);\n          FUN_001a7630(local_170,&local_98);\n        }" ({ "{") (if_statement "if (bVar14 == 0) {\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&local_58);\n          }\n          else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }" (if "if") (parenthesized_expression "(bVar14 == 0)" (( "(") (binary_expression "bVar14 == 0" (identifier "bVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_58 = (byte *)0x0;\n            local_50 = (ulong)local_50._4_4_ << 0x20;\n            FUN_001a7180(local_160,&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_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" (identifier "FUN_001a7180") (argument_list "(local_160,&local_58)" (( "(") (identifier "local_160") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }" (else "else") (compound_statement "{\n            local_58 = local_120;\n            local_50 = CONCAT44(local_50._4_4_,local_104);\n            FUN_001a7180(local_160,&local_58);\n          }" ({ "{") (expression_statement "local_58 = local_120;" (assignment_expression "local_58 = local_120" (identifier "local_58") (= "=") (identifier "local_120")) (; ";")) (expression_statement "local_50 = CONCAT44(local_50._4_4_,local_104);" (assignment_expression "local_50 = CONCAT44(local_50._4_4_,local_104)" (identifier "local_50") (= "=") (call_expression "CONCAT44(local_50._4_4_,local_104)" (identifier "CONCAT44") (argument_list "(local_50._4_4_,local_104)" (( "(") (field_expression "local_50._4_4_" (identifier "local_50") (. ".") (field_identifier "_4_4_")) (, ",") (identifier "local_104") () ")")))) (; ";")) (expression_statement "FUN_001a7180(local_160,&local_58);" (call_expression "FUN_001a7180(local_160,&local_58)" (identifier "FUN_001a7180") (argument_list "(local_160,&local_58)" (( "(") (identifier "local_160") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")))) (expression_statement "puVar1 = *(undefined8 **)(local_158 + 8);" (assignment_expression "puVar1 = *(undefined8 **)(local_158 + 8)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined8 **)(local_158 + 8)" (* "*") (cast_expression "(undefined8 **)(local_158 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_158 + 8)" (( "(") (binary_expression "local_158 + 8" (identifier "local_158") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }\n          else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }" (if "if") (parenthesized_expression "(puVar1 == *(undefined8 **)(local_158 + 0x10))" (( "(") (binary_expression "puVar1 == *(undefined8 **)(local_158 + 0x10)" (identifier "puVar1") (== "==") (pointer_expression "*(undefined8 **)(local_158 + 0x10)" (* "*") (cast_expression "(undefined8 **)(local_158 + 0x10)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_158 + 0x10)" (( "(") (binary_expression "local_158 + 0x10" (identifier "local_158") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n            FUN_001a5d30(local_158,puVar1,&local_88);\n          }" ({ "{") (expression_statement "FUN_001a5d30(local_158,puVar1,&local_88);" (call_expression "FUN_001a5d30(local_158,puVar1,&local_88)" (identifier "FUN_001a5d30") (argument_list "(local_158,puVar1,&local_88)" (( "(") (identifier "local_158") (, ",") (identifier "puVar1") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar1 = local_88;\n            *(undefined8 **)(local_158 + 8) = puVar1 + 1;\n          }" ({ "{") (expression_statement "*puVar1 = local_88;" (assignment_expression "*puVar1 = local_88" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "local_88")) (; ";")) (expression_statement "*(undefined8 **)(local_158 + 8) = puVar1 + 1;" (assignment_expression "*(undefined8 **)(local_158 + 8) = puVar1 + 1" (pointer_expression "*(undefined8 **)(local_158 + 8)" (* "*") (cast_expression "(undefined8 **)(local_158 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_158 + 8)" (( "(") (binary_expression "local_158 + 8" (identifier "local_158") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "puVar1 + 1" (identifier "puVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "local_58 = pbVar17;" (assignment_expression "local_58 = pbVar17" (identifier "local_58") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "local_50 = uVar2;" (assignment_expression "local_50 = uVar2" (identifier "local_50") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_001a74a0(local_168,&local_58);" (call_expression "FUN_001a74a0(local_168,&local_58)" (identifier "FUN_001a74a0") (argument_list "(local_168,&local_58)" (( "(") (identifier "local_168") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "local_58 = (byte *)*param_5;" (assignment_expression "local_58 = (byte *)*param_5" (identifier "local_58") (= "=") (cast_expression "(byte *)*param_5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (; ";")) (expression_statement "puVar1 = *(undefined8 **)(local_148 + 8);" (assignment_expression "puVar1 = *(undefined8 **)(local_148 + 8)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined8 **)(local_148 + 8)" (* "*") (cast_expression "(undefined8 **)(local_148 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_148 + 8)" (( "(") (binary_expression "local_148 + 8" (identifier "local_148") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }\n          else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" (if "if") (parenthesized_expression "(puVar1 == *(undefined8 **)(local_148 + 0x10))" (( "(") (binary_expression "puVar1 == *(undefined8 **)(local_148 + 0x10)" (identifier "puVar1") (== "==") (pointer_expression "*(undefined8 **)(local_148 + 0x10)" (* "*") (cast_expression "(undefined8 **)(local_148 + 0x10)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_148 + 0x10)" (( "(") (binary_expression "local_148 + 0x10" (identifier "local_148") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n            FUN_001a6070(local_148,puVar1,&local_58);\n          }" ({ "{") (expression_statement "FUN_001a6070(local_148,puVar1,&local_58);" (call_expression "FUN_001a6070(local_148,puVar1,&local_58)" (identifier "FUN_001a6070") (argument_list "(local_148,puVar1,&local_58)" (( "(") (identifier "local_148") (, ",") (identifier "puVar1") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar1 = local_58;\n            *(undefined8 **)(local_148 + 8) = puVar1 + 1;\n          }" ({ "{") (expression_statement "*puVar1 = local_58;" (assignment_expression "*puVar1 = local_58" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(undefined8 **)(local_148 + 8) = puVar1 + 1;" (assignment_expression "*(undefined8 **)(local_148 + 8) = puVar1 + 1" (pointer_expression "*(undefined8 **)(local_148 + 8)" (* "*") (cast_expression "(undefined8 **)(local_148 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_148 + 8)" (( "(") (binary_expression "local_148 + 8" (identifier "local_148") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "puVar1 + 1" (identifier "puVar1") (+ "+") (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_170,&local_98);" (call_expression "FUN_001a7630(local_170,&local_98)" (identifier "FUN_001a7630") (argument_list "(local_170,&local_98)" (( "(") (identifier "local_170") (, ",") (pointer_expression "&local_98" (& "&") (identifier "local_98")) () ")"))) (; ";")) (} "}"))) (if_statement "if (bVar14 != 0) goto LAB_0028a049;" (if "if") (parenthesized_expression "(bVar14 != 0)" (( "(") (binary_expression "bVar14 != 0" (identifier "bVar14") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028a049;" (goto "goto") (statement_identifier "LAB_0028a049") (; ";"))) (} "}")))) (labeled_statement "LAB_00289ec8:\n      local_100 = local_100 + 1;" (statement_identifier "LAB_00289ec8") (: ":") (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 "param_5 = param_5 + 3;" (assignment_expression "param_5 = param_5 + 3" (identifier "param_5") (= "=") (binary_expression "param_5 + 3" (identifier "param_5") (+ "+") (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<64, false, (anonymous namespace)::Target_tilegx<64,
   false>, (anonymous namespace)::Target_tilegx<64, false>::Scan, gold::Default_classify_reloc<4,
   64, false> > */

void var_39::
     gc_process_relocs<64,var_56,var_17(anonymous_namespace)::var_7<64,var_56>,var_17(anonymous_namespace)::var_7<64,var_56>::Scan,_gold::Default_classify_reloc<4,_64,var_56>var_17>
               (Symbol_table *symtab,Layout *param_2,var_7<64,var_56> *var_57,
               Sized_relobj_file<64,var_56> *src_obj,type_9 src_indx,type_23 *var_31,size_t var_33
               ,type_29 *var_34,bool param_9,size_t param_10,type_23 *plocal_syms)

{
  type_4 *pp_Var1;
  type_1 iVar2;
  type_2 var_37;
  type_3 *pGVar4;
  type_4 var_54;
  type_5 *var_58;
  type_4 var_63;
  type_1 __position;
  type_6 *pcVar8;
  char var_27;
  type_1 iVar10;
  size_t var_14;
  type_1 iVar12;
  type_4 p_Var13;
  type_7 *var_41;
  type_8 cVar14;
  type_9 var_53;
  type_9 var_35;
  long var_19;
  type_10 var_66;
  type_11 **var_67;
  type_12 pcVar20;
  type_10 var_20;
  type_11 **pp_Var22;
  type_10 *var_21;
  type_13 _Var24;
  type_14 *pRVar25;
  type_15 in_register_00000084;
  type_2 *var_70;
  type_2 var_32;
  type_16 uVar28;
  bool var_29;
  bool var_22;
  bool var_28;
  type_16 uVar32;
  bool var_30;
  type_10 bVar34;
  type_17 *local_170;
  type_18 *local_168;
  type_19 *local_160;
  type_20 *local_158;
  type_21 *local_148;
  type_11 **var_61;
  char var_51;
  long local_130;
  type_22 *local_120;
  int var_52;
  type_9 var_36;
  type_23 *var_69;
  var_1<> var_2;
  var_1<> var_3;
  type_24 __node_gen_2;
  type_24 __node_gen_3;
  type_24 __node_gen;
  type_24 __node_gen_1;
  _Head_base<0,_const_std::var_38<var_39::type_14*,var_4>&,var_56> var_5;
  _Head_base<0,_const_std::var_38<var_39::type_14*,var_4>&,var_56> var_6;
  type_22 *local_b8;
  type_9 local_b0;
  var_7<64,var_56> *local_a8;
  type_9 local_a0;
  type_25 src_id_2;
  type_25 dst_id;
  type_26 src_section_name;
  type_25 var_18;
  
  var_70 = (type_2 *)var_8(in_register_00000084,src_indx);
  bVar34 = 0;
  var_53 = (type_9)src_obj;
  if (parameters->options_ == (type_27 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_9("../../gold/parameters.h",0x5c,"options");
  }
  if (parameters->options_->icf_status_ == var_10) {
    src_section_name._M_dataplus._M_p = (type_12)&src_section_name.field_2;
    std::__cxx11::basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17>::
    var_11<var_12*>(&src_section_name,"");
  }
  else {
    (**(type_6 **)(*(long *)&var_57->tilegx_info + 0x80))
              (&src_section_name,var_57,(type_2)src_obj & 0xffffffff);
  }
  _Var24._M_p = src_section_name._M_dataplus._M_p;
  if (parameters->options_ == (type_27 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_9("../../gold/parameters.h",0x5c,"options");
  }
  if (parameters->options_->icf_status_ == var_10) {
LAB_00289d45:
    var_22 = false;
    local_170 = (type_17 *)0x0;
    local_148 = (type_21 *)0x0;
    local_168 = (type_18 *)0x0;
    local_158 = (type_20 *)0x0;
    local_160 = (type_19 *)0x0;
  }
  else {
    pcVar20 = (type_12)0xffffffffffffffff;
    var_18.first = (type_14 *)&stack0xffffffffffffffb8;
    uVar28 = 0;
    uVar32 = src_section_name._M_dataplus._M_p == (type_12)0x0;
    if (!(bool)uVar32) {
      var_14 = var_13(src_section_name._M_dataplus._M_p);
      pcVar20 = _Var24._M_p + var_14;
    }
    std::__cxx11::basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17>::
    var_11<var_12*>
              ((basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17> *var_46)&var_18,
               _Var24._M_p,pcVar20);
    var_19 = 5;
    var_21 = (type_10 *)".text";
    pRVar25 = var_18.first;
    do {
      if (var_19 == 0) break;
      var_19 = var_19 + -1;
      var_20 = *(type_10 *)&(pRVar25->super_Object)._vptr_Object;
      uVar28 = *var_21 < var_20;
      uVar32 = *var_21 == var_20;
      var_21 = var_21 + (type_2)bVar34 * -2 + 1;
      pRVar25 = (type_14 *)((long)pRVar25 + (type_2)bVar34 * -2 + 1);
    } while ((bool)uVar32);
    var_22 = false;
    var_28 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;
    if (!var_28) {
      var_19 = 0xf;
      var_21 = (type_10 *)".gnu.linkonce.t";
      pRVar25 = var_18.first;
      do {
        if (var_19 == 0) break;
        var_19 = var_19 + -1;
        var_20 = *(type_10 *)&(pRVar25->super_Object)._vptr_Object;
        var_22 = *var_21 < var_20;
        var_28 = *var_21 == var_20;
        var_21 = var_21 + (type_2)bVar34 * -2 + 1;
        pRVar25 = (type_14 *)((long)pRVar25 + (type_2)bVar34 * -2 + 1);
      } while (var_28);
      if ((!var_22 && !var_28) != var_22) {
        if (var_18.first != (type_14 *)&stack0xffffffffffffffb8) {
          var_23(var_18.first);
        }
        goto LAB_00289d45;
      }
    }
    if (var_18.first != (type_14 *)&stack0xffffffffffffffb8) {
      var_23(var_18.first);
    }
    var_18.second = var_53;
    var_18.first = (type_14 *)var_57;
    local_160 = std::__detail::
                _Map_base<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_55::var_38<var_39::type_14*,var_4>,_gold::Icf::Reloc_info>,var_65::var_15<std::var_38<var_55::var_38<var_39::type_14*,var_4>,_gold::Icf::Reloc_info>var_17>,var_65::__detail::_Select1st,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,_gold::Section_id_hash,var_65::__detail::_Mod_range_hashing,var_65::__detail::_Default_ranged_hash,var_65::__detail::_Prime_rehash_policy,var_65::__detail::var_24<true,var_56,var_25>,var_25>
                ::operator[var_46]((_Map_base<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_55::var_38<var_39::type_14*,var_4>,_gold::Icf::Reloc_info>,var_65::var_15<std::var_38<var_55::var_38<var_39::type_14*,var_4>,_gold::Icf::Reloc_info>var_17>,var_65::__detail::_Select1st,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,_gold::Section_id_hash,var_65::__detail::_Mod_range_hashing,var_65::__detail::_Default_ranged_hash,var_65::__detail::_Prime_rehash_policy,var_65::__detail::var_24<true,var_56,var_25>,var_25>
                              *var_46)&symtab->icf_->reloc_info_list_,(type_28 *)&var_18);
    local_158 = &local_160->symbol_info;
    local_148 = &local_160->offset_info;
    local_168 = &local_160->addend_info;
    local_170 = &local_160->reloc_addend_size_info;
    var_22 = true;
  }
  if (parameters->options_ == (type_27 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */
    var_9("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->icf_status_ == var_26) &&
     (var_27 = (**(type_6 **)(*(long *)param_2 + 0x90))(param_2), var_27 != '\0')) {
    pcVar8 = *(type_6 **)(*(long *)param_2 + 0x10);
    if (pcVar8 != type_5::section_may_have_icf_unsafe_pointers) {
                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */
      var_51 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00289da4;
    }
    pcVar8 = *(type_6 **)(*(long *)param_2 + 0x98);
    var_28 = pcVar8 < type_5::do_section_may_have_icf_unsafe_pointers;
    var_30 = pcVar8 == type_5::do_section_may_have_icf_unsafe_pointers;
    if (!var_30) {
      var_51 = (*pcVar8)(param_2,src_section_name._M_dataplus._M_p);
      goto LAB_00289da4;
    }
    var_19 = 0xc;
    var_21 = (type_10 *)".rodata._ZTV";
    _Var24 = src_section_name._M_dataplus;
    do {
      if (var_19 == 0) break;
      var_19 = var_19 + -1;
      var_28 = *var_21 < (type_10)*_Var24._M_p;
      var_30 = *var_21 == *_Var24._M_p;
      var_21 = var_21 + (type_2)bVar34 * -2 + 1;
      _Var24._M_p = (type_12)((type_10 *)_Var24._M_p + (type_2)bVar34 * -2 + 1);
    } while (var_30);
    var_29 = false;
    var_28 = (!var_28 && !var_30) == var_28;
    if (!var_28) {
      var_19 = 0x11;
      var_21 = (type_10 *)".data.rel.ro._ZTV";
      _Var24 = src_section_name._M_dataplus;
      do {
        if (var_19 == 0) break;
        var_19 = var_19 + -1;
        var_29 = *var_21 < (type_10)*_Var24._M_p;
        var_28 = *var_21 == *_Var24._M_p;
        var_21 = var_21 + (type_2)bVar34 * -2 + 1;
        _Var24._M_p = (type_12)((type_10 *)_Var24._M_p + (type_2)bVar34 * -2 + 1);
      } while (var_28);
      var_30 = false;
      var_28 = (!var_29 && !var_28) == var_29;
      if (!var_28) {
        var_19 = 0xc;
        var_21 = (type_10 *)".rodata._ZTC";
        _Var24 = src_section_name._M_dataplus;
        do {
          if (var_19 == 0) break;
          var_19 = var_19 + -1;
          var_30 = *var_21 < (type_10)*_Var24._M_p;
          var_28 = *var_21 == *_Var24._M_p;
          var_21 = var_21 + (type_2)bVar34 * -2 + 1;
          _Var24._M_p = (type_12)((type_10 *)_Var24._M_p + (type_2)bVar34 * -2 + 1);
        } while (var_28);
        var_29 = false;
        var_28 = (!var_30 && !var_28) == var_30;
        if (!var_28) {
          var_19 = 0x11;
          var_21 = (type_10 *)".data.rel.ro._ZTC";
          _Var24 = src_section_name._M_dataplus;
          do {
            if (var_19 == 0) break;
            var_19 = var_19 + -1;
            var_29 = *var_21 < (type_10)*_Var24._M_p;
            var_28 = *var_21 == *_Var24._M_p;
            var_21 = var_21 + (type_2)bVar34 * -2 + 1;
            _Var24._M_p = (type_12)((type_10 *)_Var24._M_p + (type_2)bVar34 * -2 + 1);
          } while (var_28);
          var_30 = false;
          var_28 = (!var_29 && !var_28) == var_29;
          if (!var_28) {
            var_19 = 9;
            var_21 = (type_10 *)".eh_frame";
            _Var24 = src_section_name._M_dataplus;
            do {
              if (var_19 == 0) break;
              var_19 = var_19 + -1;
              var_30 = *var_21 < (type_10)*_Var24._M_p;
              var_28 = *var_21 == *_Var24._M_p;
              var_21 = var_21 + (type_2)bVar34 * -2 + 1;
              _Var24._M_p = (type_12)((type_10 *)_Var24._M_p + (type_2)bVar34 * -2 + 1);
            } while (var_28);
            var_51 = (!var_30 && !var_28) != var_30;
            goto LAB_00289da4;
          }
        }
      }
    }
  }
  var_51 = '\0';
LAB_00289da4:
  if (var_31 != (type_23 *)0x0) {
    var_61 = (type_11 **)0x0;
    var_69 = (type_23 *)0x0;
    do {
      var_32 = var_70[1];
      var_37 = var_70[2];
      var_35 = (type_9)(var_32 >> 0x20);
      var_52 = (int)var_32;
      if (var_32 >> 0x20 < var_33) {
        if (var_34 == (type_29 *)0x0) {
                    /* WARNING: Subroutine does not return */
          var_9("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        var_36 = (type_9)*(type_30 *)
                           ((long)&(var_34->super_Output_data)._vptr_Output_data +
                           (type_2)(var_35 * 0x18) + 6);
        if (var_36 < 0xff00) {
LAB_00289f33:
          pRVar25 = *(type_14 **)
                     ((long)&(var_34->super_Output_data).address_ + (type_2)(var_35 * 0x18));
          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + var_37;
          if (var_22) {
            var_18.second = var_36;
            var_18.first = (type_14 *)var_57;
            std::
            vector<std::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>
            ::var_49<std::var_38<var_39::type_14*,var_4>var_17>
                      (&local_160->section_info,(var_38<var_39::type_14*,var_4> *var_46)&var_18);
            var_28 = true;
            if ((*(type_10 *)((long)&(var_34->super_Output_data)._vptr_Output_data +
                          (type_2)(var_35 * 0x18) + 4) & 0xf) == 3) goto LAB_00289f81;
LAB_00289e47:
            var_18.first = (type_14 *)0x0;
            std::vector<var_39::var_40*,var_65::var_15<var_39::var_40*>var_17>::var_49<var_39::var_40*>
                      (local_158,(var_40 **)&var_18);
            goto LAB_00289e62;
          }
        }
        else {
          if (var_36 == 0xffff) {
            var_41 = (type_7 *)(var_57->tilegx_info).rosegment_gap;
            if (var_41 == (type_7 *)0x0) {
              var_41 = (type_7 *)(**(type_6 **)(*(long *)&var_57->tilegx_info + 0xd8))(var_57);
              (var_57->tilegx_info).rosegment_gap = (uint64_t)var_41;
            }
            var_36 = type_7::var_42(var_41,(type_31 *)var_57,var_35);
            goto LAB_00289f33;
          }
          pRVar25 = *(type_14 **)
                     ((long)&(var_34->super_Output_data).address_ + (type_2)(var_35 * 0x18));
          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + var_37;
          if (!var_22) goto LAB_00289ec8;
          var_18.first = (type_14 *)0x0;
          var_18._8_8_ = var_18._8_8_ & 0xffffffff00000000;
                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */
          std::
          vector<std::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>
          ::var_49<std::var_38<var_39::type_14*,var_4>var_17>
                    (&local_160->section_info,(var_38<var_39::type_14*,var_4> *var_46)&var_18);
          var_28 = false;
          if ((*(type_10 *)((long)&(var_34->super_Output_data)._vptr_Output_data +
                        (type_2)(var_35 * 0x18) + 4) & 0xf) != 3) goto LAB_00289e47;
LAB_00289f81:
          var_18.first = (type_14 *)0xffffffffffffffff;
          std::vector<var_39::var_40*,var_65::var_15<var_39::var_40*>var_17>::var_49<var_39::var_40*>
                    (local_158,(var_40 **)&var_18);
LAB_00289e62:
          var_18.first = pRVar25;
          var_18._8_8_ = var_37;
          std::
          vector<std::var_38<var_43,var_44>,var_65::var_15<std::var_38<var_43,var_44>var_17>var_17>
          ::var_49<std::var_38<var_43,var_44>var_17>
                    (local_168,(var_38<var_43,var_44> *var_46)&var_18);
          var_18.first = (type_14 *)*var_70;
          iVar2._M_current =
               (local_148->super__Vector_base<var_45,var_65::var_15<var_45>var_17>var_46
               )._M_impl._M_finish;
          if (iVar2._M_current ==
              (local_148->super__Vector_base<var_45,var_65::var_15<var_45>var_17>var_46)
              ._M_impl._M_end_of_storage) {
            std::vector<var_45,var_65::var_15<var_45>var_17>::
            var_47<var_48&>(local_148,iVar2,(type_2 *)&var_18);
          }
          else {
            *iVar2._M_current = (type_2)var_18.first;
            (local_148->super__Vector_base<var_45,var_65::var_15<var_45>var_17>var_46).
            _M_impl._M_finish = iVar2._M_current + 1;
          }
          dst_id.first = (type_14 *)((type_2)dst_id.first & 0xffffffff00000000);
          std::vector<var_50,var_65::var_15<var_50>var_17>::var_49<var_50>
                    (local_170,(type_9 *)&dst_id);
          if (!var_28) goto LAB_00289ec8;
        }
        if ((((var_51 != '\0') &&
             ((*(type_10 *)((long)&(var_34->super_Output_data)._vptr_Output_data +
                        (type_2)(var_35 * 0x18) + 4) & 0xf) != 1)) && (var_52 - 0x24U < 0x28)) &&
           ((0xf03fffffffU >> ((type_2)(var_52 - 0x24U) & 0x3f) & 1) != 0)) {
          local_a0 = (type_9)*(type_30 *)
                            ((long)&(var_34->super_Output_data)._vptr_Output_data +
                            (type_2)(var_35 * 0x18) + 6);
          __node_gen_2._M_h = (type_32 *)&symtab->icf_->fptr_section_id_;
          local_a8 = var_57;
          std::
          _Hashtable<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>,var_65::__detail::_Identity,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,_gold::Section_id_hash,var_65::__detail::_Mod_range_hashing,var_65::__detail::_Default_ranged_hash,var_65::__detail::_Prime_rehash_policy,var_65::__detail::var_24<true,var_25,var_25>var_17>
          ::
          _M_insert<std::var_38<var_39::type_14*,var_4>,var_65::__detail::_AllocNode<std::var_15<std::__detail::_Hash_node<std::var_38<var_39::type_14*,var_4>,var_25>var_17>var_17>var_17>
                    ((_Hashtable<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>,var_65::__detail::_Identity,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,_gold::Section_id_hash,var_65::__detail::_Mod_range_hashing,var_65::__detail::_Default_ranged_hash,var_65::__detail::_Prime_rehash_policy,var_65::__detail::var_24<true,var_25,var_25>var_17>
                      *)__node_gen_2._M_h,&local_a8,&__node_gen_2,1);
        }
        local_120 = (type_22 *)var_57;
        if (var_53 != var_36) {
LAB_0028a049:
          if (parameters->options_ == (type_27 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_9("../../gold/parameters.h",0x5c,"options");
          }
          if ((parameters->options_->gc_sections_).value != false) {
            pGVar4 = symtab->gc_;
            dst_id.second = var_36;
            var_54 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            cVar14._M_node =
                 &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;
            dst_id.first = (type_14 *)local_120;
            p_Var13 = cVar14._M_node;
            src_id_2.first = (type_14 *)var_57;
            src_id_2.second = var_53;
            if (var_54 == (type_4)0x0) {
LAB_0028a100:
              var_5._M_head_impl = &src_id_2;
              iVar10 = std::
                       _Rb_tree<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_55::var_38<var_39::type_14*,var_4>,var_65::unordered_set<std::var_38<var_39::type_14*,var_4>,_gold::Section_id_hash,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>var_17>,var_65::_Select1st<std::var_38<var_55::var_38<var_39::type_14*,var_4>,var_65::unordered_set<std::var_38<var_39::type_14*,var_4>,_gold::Section_id_hash,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>var_17>var_17>,var_65::less<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_55::var_38<var_39::type_14*,var_4>,var_65::unordered_set<std::var_38<var_39::type_14*,var_4>,_gold::Section_id_hash,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>var_17>var_17>var_17>
                       ::
                       _M_emplace_hint_unique<var_55::piecewise_construct_t&,var_65::var_1<var_55::var_38<var_39::type_14*,var_4>&>,var_65::var_1<>var_17>
                                 (&(pGVar4->section_reloc_map_)._M_t,cVar14,
                                  (piecewise_construct_t *)&std::piecewise_construct,
                                  (var_1<var_55::var_38<var_39::type_14*,var_4>&> *var_46)&var_5,
                                  &var_2);
            }
            else {
              do {
                while ((iVar10._M_node = var_54,
                       *(var_7<64,var_56> **var_46)(iVar10._M_node + 1) < var_57 ||
                       ((var_57 == *(var_7<64,var_56> **var_46)(iVar10._M_node + 1) &&
                        (*(type_9 *)&iVar10._M_node[1]._M_parent < var_53))))) {
                  pp_Var1 = &(iVar10._M_node)->_M_right;
                  iVar10._M_node = p_Var13;
                  var_54 = *pp_Var1;
                  if (*pp_Var1 == (type_4)0x0) goto LAB_0028a0da;
                }
                p_Var13 = iVar10._M_node;
                var_54 = (iVar10._M_node)->_M_left;
              } while ((iVar10._M_node)->_M_left != (type_4)0x0);
LAB_0028a0da:
              var_28 = iVar10._M_node == cVar14._M_node;
              cVar14._M_node = iVar10._M_node;
              if (((var_28) || (var_57 < *(var_7<64,var_56> **var_46)(iVar10._M_node + 1))) ||
                 ((var_57 == *(var_7<64,var_56> **var_46)(iVar10._M_node + 1) &&
                  (var_53 < *(type_9 *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a100;
            }
            __node_gen_1._M_h = (type_32 *)&iVar10._M_node[1]._M_left;
            std::
            _Hashtable<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>,var_65::__detail::_Identity,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,_gold::Section_id_hash,var_65::__detail::_Mod_range_hashing,var_65::__detail::_Default_ranged_hash,var_65::__detail::_Prime_rehash_policy,var_65::__detail::var_24<true,var_25,var_25>var_17>
            ::
            _M_insert<var_55::var_38<var_39::type_14*,var_4>&,var_65::__detail::_AllocNode<std::var_15<std::__detail::_Hash_node<std::var_38<var_39::type_14*,var_4>,var_25>var_17>var_17>var_17>
                      ((_Hashtable<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>,var_65::__detail::_Identity,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,_gold::Section_id_hash,var_65::__detail::_Mod_range_hashing,var_65::__detail::_Default_ranged_hash,var_65::__detail::_Prime_rehash_policy,var_65::__detail::var_24<true,var_25,var_25>var_17>
                        *)__node_gen_1._M_h,&dst_id,&__node_gen_1,1);
            var_58 = parameters->target_;
            if (var_58 == (type_5 *)0x0) {
                    /* WARNING: Subroutine does not return */
              var_9("../../gold/parameters.h",0x73,"sized_target");
            }
            if (var_58->_vptr_Target[0x41] != var_59<64,var_56>::var_60) {
              (*var_58->_vptr_Target[0x41])
                        (var_58,symtab,var_57,(type_2)src_obj & 0xffffffff,local_120,(type_2)var_36
                         ,local_130);
            }
            if (var_61 != (type_11 **)0x0) {
              pGVar4 = symtab->gc_;
              var_18.first = (type_14 *)&stack0xffffffffffffffb8;
              var_14 = var_13((char *)var_61);
              std::__cxx11::basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17>::
              var_11<var_12*>
                        ((basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17> *var_46)
                         &var_18,var_61,(type_10 *)((long)var_61 + var_14));
              iVar12 = std::
                       _Rb_tree<std::__cxx11::basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17>,var_65::var_38<var_55::__cxx11::basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17>,var_65::unordered_set<std::var_38<var_39::type_14*,var_4>,_gold::Section_id_hash,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>var_17>,var_65::_Select1st<std::var_38<var_55::__cxx11::basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17>,var_65::unordered_set<std::var_38<var_39::type_14*,var_4>,_gold::Section_id_hash,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>var_17>var_17>,var_65::less<std::__cxx11::basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17>var_17>,var_65::var_15<std::var_38<var_55::__cxx11::basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17>,var_65::unordered_set<std::var_38<var_39::type_14*,var_4>,_gold::Section_id_hash,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>var_17>var_17>var_17>
                       ::var_62(&(pGVar4->cident_sections_)._M_t,
                              (basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17> *var_46)
                              &var_18);
              if (var_18.first != (type_14 *)&stack0xffffffffffffffb8) {
                var_23(var_18.first);
              }
              pGVar4 = symtab->gc_;
              if ((type_33 *)iVar12._M_node !=
                  &(pGVar4->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {
                var_54 = (pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                         _M_parent;
                cVar14._M_node =
                     &(pGVar4->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header;
                var_18.second = var_53;
                p_Var13 = cVar14._M_node;
                if (var_54 == (type_4)0x0) {
LAB_0028a5e0:
                  var_6._M_head_impl = (var_38<var_39::type_14*,var_4> *var_46)&var_18;
                  var_18.first = (type_14 *)var_57;
                  iVar10 = std::
                           _Rb_tree<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_55::var_38<var_39::type_14*,var_4>,var_65::unordered_set<std::var_38<var_39::type_14*,var_4>,_gold::Section_id_hash,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>var_17>,var_65::_Select1st<std::var_38<var_55::var_38<var_39::type_14*,var_4>,var_65::unordered_set<std::var_38<var_39::type_14*,var_4>,_gold::Section_id_hash,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>var_17>var_17>,var_65::less<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_55::var_38<var_39::type_14*,var_4>,var_65::unordered_set<std::var_38<var_39::type_14*,var_4>,_gold::Section_id_hash,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>var_17>var_17>var_17>
                           ::
                           _M_emplace_hint_unique<var_55::piecewise_construct_t&,var_65::var_1<var_55::var_38<var_39::type_14*,var_4>&>,var_65::var_1<>var_17>
                                     (&(pGVar4->section_reloc_map_)._M_t,cVar14,
                                      (piecewise_construct_t *)&std::piecewise_construct,
                                      (var_1<var_55::var_38<var_39::type_14*,var_4>&> *var_46)
                                      &var_6,&var_3);
                }
                else {
                  do {
                    while ((iVar10._M_node = var_54,
                           *(var_7<64,var_56> **var_46)(iVar10._M_node + 1) < var_57 ||
                           ((var_57 == *(var_7<64,var_56> **var_46)(iVar10._M_node + 1) &&
                            (*(type_9 *)&iVar10._M_node[1]._M_parent < var_53))))) {
                      pp_Var1 = &(iVar10._M_node)->_M_right;
                      iVar10._M_node = p_Var13;
                      var_54 = *pp_Var1;
                      if (*pp_Var1 == (type_4)0x0) goto LAB_0028a24a;
                    }
                    p_Var13 = iVar10._M_node;
                    var_54 = (iVar10._M_node)->_M_left;
                  } while ((iVar10._M_node)->_M_left != (type_4)0x0);
LAB_0028a24a:
                  var_28 = cVar14._M_node == iVar10._M_node;
                  cVar14._M_node = iVar10._M_node;
                  if (((var_28) || (var_57 < *(var_7<64,var_56> **var_46)(iVar10._M_node + 1))) ||
                     ((var_18.first = (type_14 *)var_57,
                      var_57 == *(var_7<64,var_56> **var_46)(iVar10._M_node + 1) &&
                      (var_53 < *(type_9 *)&iVar10._M_node[1]._M_parent)))) goto LAB_0028a5e0;
                }
                for (var_63 = iVar12._M_node[2]._M_left; var_63 != (type_4)0x0;
                    var_63 = *(type_4 *)var_63) {
                  __node_gen._M_h = (type_32 *)&iVar10._M_node[1]._M_left;
                  std::
                  _Hashtable<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>,var_65::__detail::_Identity,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,_gold::Section_id_hash,var_65::__detail::_Mod_range_hashing,var_65::__detail::_Default_ranged_hash,var_65::__detail::_Prime_rehash_policy,var_65::__detail::var_24<true,var_25,var_25>var_17>
                  ::
                  _M_insert<var_55::var_38<var_39::type_14*,var_4>&,var_65::__detail::_AllocNode<std::var_15<std::__detail::_Hash_node<std::var_38<var_39::type_14*,var_4>,var_25>var_17>var_17>var_17>
                            ((_Hashtable<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>,var_65::__detail::_Identity,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,_gold::Section_id_hash,var_65::__detail::_Mod_range_hashing,var_65::__detail::_Default_ranged_hash,var_65::__detail::_Prime_rehash_policy,var_65::__detail::var_24<true,var_25,var_25>var_17>
                              *var_46)&iVar10._M_node[1]._M_left,&var_63->_M_parent,&__node_gen,1);
                }
              }
            }
          }
        }
      }
      else {
        if (var_35 < *(type_9 *)&var_57[1].field_0x88) {
          dst_id.first = (type_14 *)0x0;
LAB_0028a4f8:
                    /* WARNING: Subroutine does not return */
          var_9("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        var_32 = (type_2)(var_35 - *(type_9 *)&var_57[1].field_0x88);
        if ((type_2)(*(long *)&var_57[2].tilegx_info.machine_code - *(long *)&var_57[2].tilegx_info
                   >> 3) <= var_32) {
                    /* WARNING: Subroutine does not return */
          var_9("../../gold/object.h",0x8ad,"global_symbol");
        }
        dst_id.first = *(type_14 **)(*(long *)&var_57[2].tilegx_info + var_32 * 8);
        if (dst_id.first == (type_14 *)0x0) goto LAB_0028a4f8;
        if ((((dst_id.first)->super_Object).shnum_ & 0x100000) != 0) {
          dst_id.first = (type_14 *)Symbol_table::var_64(symtab,(var_40 *)dst_id.first);
        }
        if ((((dst_id.first)->super_Object).shnum_ & 0x70000) == 0) {
          pRVar25 = (type_14 *)((dst_id.first)->super_Object).xindex_;
          local_120 = ((type_34 *)
                      &((dst_id.first)->super_Object).name_._M_string_length)->output_segment;
          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + var_37;
          if (((type_2)local_120->output_lists_[2].
                      super__Vector_base<var_39::Output_data*,var_65::var_15<var_39::Output_data*>var_17>.
                      _M_impl._M_finish & 0x100000000) == 0) {
            var_36 = *(type_9 *)&((dst_id.first)->super_Object).name_.field_2;
            var_66 = (type_10)((dst_id.first)->super_Object).shnum_ & 0xf;
            var_20 = *(type_10 *)((long)&((dst_id.first)->super_Object).shnum_ + 3) >> 5 & 1;
            uVar28 = var_66 < 2;
            uVar32 = var_66 == 2;
            if ((bool)uVar32) {
              uVar28 = 0;
              uVar32 = var_51 == '\0';
              if (!(bool)uVar32) {
                uVar28 = false;
                uVar32 = var_20 == 0;
                if (!(bool)uVar32) {
                  var_67 = ((dst_id.first)->super_Object)._vptr_Object;
                  var_19 = 0x16;
                  pp_Var22 = var_67;
                  var_21 = (type_10 *)"_GLOBAL_OFFSET_TABLE_";
                  do {
                    var_28 = (bool)uVar28;
                    if (var_19 == 0) break;
                    var_19 = var_19 + -1;
                    uVar28 = *(type_10 *)pp_Var22 < *var_21;
                    uVar32 = *(type_10 *)pp_Var22 == *var_21;
                    pp_Var22 = (type_11 **)((long)pp_Var22 + (type_2)bVar34 * -2 + 1);
                    var_21 = var_21 + (type_2)bVar34 * -2 + 1;
                    var_28 = (bool)uVar28;
                  } while ((bool)uVar32);
                  uVar28 = 0;
                  uVar32 = (!var_28 && !(bool)uVar32) == var_28;
                  if ((bool)uVar32) goto LAB_0028a359;
                  if (parameters->options_ == (type_27 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    var_9("../../gold/parameters.h",0x5c,"options");
                  }
                  if ((parameters->options_->shared_).value != false) {
                    uVar28 = false;
                    uVar32 = (((dst_id.first)->super_Object).shnum_ & 0x300) == 0;
                    if (!(bool)uVar32) goto LAB_0028a6f0;
                  }
                  var_35 = var_52 - 0x24;
                  uVar28 = var_35 < 0x27;
                  uVar32 = var_35 == 0x27;
                  if ((0x27 < var_35) ||
                     (uVar28 = (0xf03fffffffU >> ((type_2)var_35 & 0x3f) & 1) != 0, !(bool)uVar28))
                  goto LAB_0028a359;
                }
LAB_0028a6f0:
                __node_gen_3._M_h = (type_32 *)&symtab->icf_->fptr_section_id_;
                local_b8 = local_120;
                local_b0 = var_36;
                std::
                _Hashtable<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>,var_65::__detail::_Identity,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,_gold::Section_id_hash,var_65::__detail::_Mod_range_hashing,var_65::__detail::_Default_ranged_hash,var_65::__detail::_Prime_rehash_policy,var_65::__detail::var_24<true,var_25,var_25>var_17>
                ::
                _M_insert<std::var_38<var_39::type_14*,var_4>,var_65::__detail::_AllocNode<std::var_15<std::__detail::_Hash_node<std::var_38<var_39::type_14*,var_4>,var_25>var_17>var_17>var_17>
                          ((_Hashtable<std::var_38<var_39::type_14*,var_4>,var_65::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>,var_65::__detail::_Identity,var_65::equal_to<std::var_38<var_39::type_14*,var_4>var_17>,_gold::Section_id_hash,var_65::__detail::_Mod_range_hashing,var_65::__detail::_Default_ranged_hash,var_65::__detail::_Prime_rehash_policy,var_65::__detail::var_24<true,var_25,var_25>var_17>
                            *)__node_gen_3._M_h,&local_b8,&__node_gen_3,1);
              }
            }
            var_67 = ((dst_id.first)->super_Object)._vptr_Object;
          }
          else {
            var_36 = 0;
            var_67 = ((dst_id.first)->super_Object)._vptr_Object;
            uVar28 = 0;
            var_20 = 0;
            uVar32 = 1;
            local_120 = (type_22 *)0x0;
          }
        }
        else {
          pRVar25 = (type_14 *)((dst_id.first)->super_Object).xindex_;
          var_67 = ((dst_id.first)->super_Object)._vptr_Object;
          uVar28 = 0;
          var_20 = 0;
          uVar32 = 1;
          var_36 = 0;
          local_120 = (type_22 *)0x0;
          local_130 = (long)&(pRVar25->super_Object)._vptr_Object + var_37;
        }
LAB_0028a359:
        var_19 = 8;
        var_21 = (type_10 *)"__start_";
        pp_Var22 = var_67;
        do {
          if (var_19 == 0) break;
          var_19 = var_19 + -1;
          uVar28 = *var_21 < *(type_10 *)pp_Var22;
          uVar32 = *var_21 == *(type_10 *)pp_Var22;
          var_21 = var_21 + (type_2)bVar34 * -2 + 1;
          pp_Var22 = (type_11 **)((long)pp_Var22 + (type_2)bVar34 * -2 + 1);
        } while ((bool)uVar32);
        var_28 = false;
        var_30 = (!(bool)uVar28 && !(bool)uVar32) == (bool)uVar28;
        if (var_30) {
          var_67 = var_67 + 1;
        }
        else {
          var_19 = 7;
          var_21 = (type_10 *)"__stop_";
          pp_Var22 = var_67;
          do {
            if (var_19 == 0) break;
            var_19 = var_19 + -1;
            var_28 = *var_21 < *(type_10 *)pp_Var22;
            var_30 = *var_21 == *(type_10 *)pp_Var22;
            var_21 = var_21 + (type_2)bVar34 * -2 + 1;
            pp_Var22 = (type_11 **)((long)pp_Var22 + (type_2)bVar34 * -2 + 1);
          } while (var_30);
          var_67 = (type_11 **)((long)var_67 + 7);
          if ((!var_28 && !var_30) != var_28) {
            var_67 = var_61;
          }
        }
        var_61 = var_67;
        if (var_22) {
          if (var_20 == 0) {
            var_18.first = (type_14 *)0x0;
            var_18._8_8_ = (type_2)(type_9)var_18._12_4_ << 0x20;
            std::
            vector<std::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>
            ::var_49<std::var_38<var_39::type_14*,var_4>var_17>
                      (&local_160->section_info,(var_38<var_39::type_14*,var_4> *var_46)&var_18);
          }
          else {
            var_18.first = (type_14 *)local_120;
            var_18.second = var_36;
            std::
            vector<std::var_38<var_39::type_14*,var_4>,var_65::var_15<std::var_38<var_39::type_14*,var_4>var_17>var_17>
            ::var_49<std::var_38<var_39::type_14*,var_4>var_17>
                      (&local_160->section_info,(var_38<var_39::type_14*,var_4> *var_46)&var_18);
          }
          __position._M_current =
               (local_158->super__Vector_base<var_39::var_40*,var_65::var_15<var_39::var_40*>var_17>var_46).
               _M_impl._M_finish;
          if (__position._M_current ==
              (local_158->super__Vector_base<var_39::var_40*,var_65::var_15<var_39::var_40*>var_17>var_46)._M_impl
              ._M_end_of_storage) {
            std::vector<var_39::var_40*,var_65::var_15<var_39::var_40*>var_17>::
            var_47<var_39::var_40*var_68&>(local_158,__position,(var_40 **)&dst_id);
          }
          else {
            *__position._M_current = (var_40 *)dst_id.first;
            (local_158->super__Vector_base<var_39::var_40*,var_65::var_15<var_39::var_40*>var_17>var_46)._M_impl.
            _M_finish = __position._M_current + 1;
          }
          var_18.first = pRVar25;
          var_18._8_8_ = var_37;
          std::
          vector<std::var_38<var_43,var_44>,var_65::var_15<std::var_38<var_43,var_44>var_17>var_17>
          ::var_49<std::var_38<var_43,var_44>var_17>
                    (local_168,(var_38<var_43,var_44> *var_46)&var_18);
          var_18.first = (type_14 *)*var_70;
          iVar2._M_current =
               (local_148->super__Vector_base<var_45,var_65::var_15<var_45>var_17>var_46
               )._M_impl._M_finish;
          if (iVar2._M_current ==
              (local_148->super__Vector_base<var_45,var_65::var_15<var_45>var_17>var_46)
              ._M_impl._M_end_of_storage) {
            std::vector<var_45,var_65::var_15<var_45>var_17>::
            var_47<var_48&>(local_148,iVar2,(type_2 *)&var_18);
          }
          else {
            *iVar2._M_current = (type_2)var_18.first;
            (local_148->super__Vector_base<var_45,var_65::var_15<var_45>var_17>var_46).
            _M_impl._M_finish = iVar2._M_current + 1;
          }
          src_id_2.first = (type_14 *)((type_2)src_id_2.first & 0xffffffff00000000);
          std::vector<var_50,var_65::var_15<var_50>var_17>::var_49<var_50>
                    (local_170,(type_9 *)&src_id_2);
        }
        if (var_20 != 0) goto LAB_0028a049;
      }
LAB_00289ec8:
      var_69 = var_69 + 1;
      var_70 = var_70 + 3;
    } while (var_31 != var_69);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<var_16,var_65::char_traits<var_16>,var_65::var_15<var_16>var_17>var_71
       *)src_section_name._M_dataplus._M_p != &src_section_name.field_2) {
    var_23(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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (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: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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 (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))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) 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: (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))))))) (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: (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: (identifier)))) (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) (binary_expression left: (identifier) right: (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: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (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: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) 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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (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: (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: (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))) (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) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (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: (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) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (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)))) (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: (false))) (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (identifier)))) (if_statement condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (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)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_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)))) (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: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (identifier))))))) (labeled_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: (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: (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 (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: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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,undefined8 *param_5,
                 long param_6,ulong param_7,long param_8)

{
  undefined8 *puVar1;
  ulong uVar2;
  long *plVar3;
  code *pcVar4;
  char cVar5;
  long lVar6;
  size_t sVar7;
  long lVar8;
  long lVar9;
  long lVar10;
  long lVar11;
  uint uVar12;
  byte *pbVar13;
  byte bVar14;
  long lVar15;
  byte *pbVar16;
  byte *pbVar17;
  byte *pbVar18;
  ulong uVar19;
  undefined1 uVar20;
  bool bVar21;
  bool bVar22;
  bool bVar23;
  undefined1 uVar24;
  bool bVar25;
  byte bVar26;
  long local_170;
  long local_168;
  long local_160;
  long local_158;
  long local_148;
  byte *local_140;
  char local_135;
  byte *local_130;
  byte *local_120;
  int local_118;
  uint local_104;
  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];
  
  bVar26 = 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 {
    (**(code **)(*(long *)param_3 + 0x80))(local_78,param_3,param_4);
  }
  pbVar17 = 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_00289d45:
    bVar22 = false;
    local_170 = 0;
    local_148 = 0;
    local_168 = 0;
    local_158 = 0;
    local_160 = 0;
  }
  else {
    pbVar13 = (byte *)0xffffffffffffffff;
    local_58 = local_48;
    uVar20 = 0;
    uVar24 = local_78[0] == (byte *)0x0;
    if (!(bool)uVar24) {
      sVar7 = strlen((char *)local_78[0]);
      pbVar13 = pbVar17 + sVar7;
    }
    FUN_001a61c0(&local_58,pbVar17,pbVar13);
    lVar15 = 5;
    pbVar17 = (byte *)".text";
    pbVar13 = local_58;
    do {
      if (lVar15 == 0) break;
      lVar15 = lVar15 + -1;
      uVar20 = *pbVar17 < *pbVar13;
      uVar24 = *pbVar17 == *pbVar13;
      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
    } while ((bool)uVar24);
    bVar22 = false;
    bVar23 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;
    if (!bVar23) {
      lVar15 = 0xf;
      pbVar17 = (byte *)".gnu.linkonce.t";
      pbVar13 = local_58;
      do {
        if (lVar15 == 0) break;
        lVar15 = lVar15 + -1;
        bVar22 = *pbVar17 < *pbVar13;
        bVar23 = *pbVar17 == *pbVar13;
        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
      } while (bVar23);
      if ((!bVar22 && !bVar23) != bVar22) {
        if (local_58 != local_48) {
          FUN_0049e330(local_58);
        }
        goto LAB_00289d45;
      }
    }
    if (local_58 != local_48) {
      FUN_0049e330(local_58);
    }
    local_50 = CONCAT44(local_50._4_4_,param_4);
    local_58 = param_3;
    local_160 = FUN_001a7bd0(*(long *)(param_1 + 0x298) + 0xa8,&local_58);
    local_158 = local_160 + 0x18;
    local_148 = local_160 + 0x48;
    local_168 = local_160 + 0x30;
    local_170 = local_160 + 0x60;
    bVar22 = true;
  }
  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0028aa51 to 0028aa6d has its CatchHandler @ 0028aa6e */
    FUN_00352af0("../../gold/parameters.h",0x5c,"options");
  }
  if ((*(int *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x9050) == 2) &&
     (cVar5 = (**(code **)(*param_2 + 0x90))(param_2), cVar5 != '\0')) {
    pcVar4 = *(code **)(*param_2 + 0x10);
    if (pcVar4 != FUN_001a5310) {
                    /* try { // try from 0028a98a to 0028aa25 has its CatchHandler @ 0028aa6e */
      local_135 = (*pcVar4)(param_2,local_78[0]);
      goto LAB_00289da4;
    }
    pcVar4 = *(code **)(*param_2 + 0x98);
    bVar23 = pcVar4 < FUN_001a53d0;
    bVar25 = pcVar4 == FUN_001a53d0;
    if (!bVar25) {
      local_135 = (*pcVar4)(param_2,local_78[0]);
      goto LAB_00289da4;
    }
    lVar15 = 0xc;
    pbVar17 = (byte *)".rodata._ZTV";
    pbVar13 = local_78[0];
    do {
      if (lVar15 == 0) break;
      lVar15 = lVar15 + -1;
      bVar23 = *pbVar17 < *pbVar13;
      bVar25 = *pbVar17 == *pbVar13;
      pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
      pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
    } while (bVar25);
    bVar21 = false;
    bVar23 = (!bVar23 && !bVar25) == bVar23;
    if (!bVar23) {
      lVar15 = 0x11;
      pbVar17 = (byte *)".data.rel.ro._ZTV";
      pbVar13 = local_78[0];
      do {
        if (lVar15 == 0) break;
        lVar15 = lVar15 + -1;
        bVar21 = *pbVar17 < *pbVar13;
        bVar23 = *pbVar17 == *pbVar13;
        pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
        pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
      } while (bVar23);
      bVar25 = false;
      bVar23 = (!bVar21 && !bVar23) == bVar21;
      if (!bVar23) {
        lVar15 = 0xc;
        pbVar17 = (byte *)".rodata._ZTC";
        pbVar13 = local_78[0];
        do {
          if (lVar15 == 0) break;
          lVar15 = lVar15 + -1;
          bVar25 = *pbVar17 < *pbVar13;
          bVar23 = *pbVar17 == *pbVar13;
          pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
          pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
        } while (bVar23);
        bVar21 = false;
        bVar23 = (!bVar25 && !bVar23) == bVar25;
        if (!bVar23) {
          lVar15 = 0x11;
          pbVar17 = (byte *)".data.rel.ro._ZTC";
          pbVar13 = local_78[0];
          do {
            if (lVar15 == 0) break;
            lVar15 = lVar15 + -1;
            bVar21 = *pbVar17 < *pbVar13;
            bVar23 = *pbVar17 == *pbVar13;
            pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
            pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
          } while (bVar23);
          bVar25 = false;
          bVar23 = (!bVar21 && !bVar23) == bVar21;
          if (!bVar23) {
            lVar15 = 9;
            pbVar17 = (byte *)".eh_frame";
            pbVar13 = local_78[0];
            do {
              if (lVar15 == 0) break;
              lVar15 = lVar15 + -1;
              bVar25 = *pbVar17 < *pbVar13;
              bVar23 = *pbVar17 == *pbVar13;
              pbVar17 = pbVar17 + (ulong)bVar26 * -2 + 1;
              pbVar13 = pbVar13 + (ulong)bVar26 * -2 + 1;
            } while (bVar23);
            local_135 = (!bVar25 && !bVar23) != bVar25;
            goto LAB_00289da4;
          }
        }
      }
    }
  }
  local_135 = '\0';
LAB_00289da4:
  if (param_6 != 0) {
    local_140 = (byte *)0x0;
    local_100 = 0;
    do {
      uVar19 = param_5[1];
      uVar2 = param_5[2];
      uVar12 = (uint)(uVar19 >> 0x20);
      local_118 = (int)uVar19;
      if (uVar19 >> 0x20 < param_7) {
        if (param_8 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/gc.h",0xea,"gc_process_relocs");
        }
        lVar15 = (ulong)(uVar12 * 0x18) + param_8;
        local_104 = (uint)*(ushort *)(lVar15 + 6);
        if (local_104 < 0xff00) {
LAB_00289f33:
          pbVar17 = *(byte **)(lVar15 + 8);
          local_130 = pbVar17 + uVar2;
          if (bVar22) {
            local_50 = CONCAT44(local_50._4_4_,local_104);
            local_58 = param_3;
            FUN_001a7180(local_160,&local_58);
            bVar23 = true;
            if ((*(byte *)(lVar15 + 4) & 0xf) == 3) goto LAB_00289f81;
LAB_00289e47:
            local_58 = (byte *)0x0;
            FUN_001a7300(local_158,&local_58);
            goto LAB_00289e62;
          }
        }
        else {
          if (local_104 == 0xffff) {
            lVar9 = *(long *)(param_3 + 0x40);
            if (lVar9 == 0) {
              lVar9 = (**(code **)(*(long *)param_3 + 0xd8))(param_3);
              *(long *)(param_3 + 0x40) = lVar9;
            }
            local_104 = FUN_00392c60(lVar9,param_3,uVar19 >> 0x20);
            goto LAB_00289f33;
          }
          pbVar17 = *(byte **)(lVar15 + 8);
          local_130 = pbVar17 + uVar2;
          if (!bVar22) goto LAB_00289ec8;
          local_58 = (byte *)0x0;
          local_50 = local_50 & 0xffffffff00000000;
                    /* try { // try from 00289e2c to 0028a907 has its CatchHandler @ 0028aa6e */
          FUN_001a7180(local_160,&local_58);
          bVar23 = false;
          if ((*(byte *)(lVar15 + 4) & 0xf) != 3) goto LAB_00289e47;
LAB_00289f81:
          local_58 = (byte *)0xffffffffffffffff;
          FUN_001a7300(local_158,&local_58);
LAB_00289e62:
          local_58 = pbVar17;
          local_50 = uVar2;
          FUN_001a74a0(local_168,&local_58);
          local_58 = (byte *)*param_5;
          puVar1 = *(undefined8 **)(local_148 + 8);
          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {
            FUN_001a6070(local_148,puVar1,&local_58);
          }
          else {
            *puVar1 = local_58;
            *(undefined8 **)(local_148 + 8) = puVar1 + 1;
          }
          local_88 = (byte *)((ulong)local_88 & 0xffffffff00000000);
          FUN_001a7630(local_170,&local_88);
          if (!bVar23) goto LAB_00289ec8;
        }
        if ((((local_135 != '\0') && ((*(byte *)(lVar15 + 4) & 0xf) != 1)) &&
            (local_118 - 0x24U < 0x28)) &&
           ((0xf03fffffffU >> ((ulong)(local_118 - 0x24U) & 0x3f) & 1) != 0)) {
          local_a0 = (uint)*(ushort *)(lVar15 + 6);
          local_e8 = *(long *)(param_1 + 0x298) + 0x68;
          local_a8 = param_3;
          FUN_001a7850(local_e8,&local_a8,&local_e8,1);
        }
        local_120 = param_3;
        if (param_4 != local_104) {
LAB_0028a049:
          if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/parameters.h",0x5c,"options");
          }
          if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2809) != '\0') {
            lVar9 = *(long *)(param_1 + 0x290);
            local_80 = local_104;
            lVar15 = lVar9 + 0x28;
            local_88 = local_120;
            lVar10 = lVar15;
            lVar8 = *(long *)(lVar9 + 0x30);
            local_98 = param_3;
            local_90 = param_4;
            if (*(long *)(lVar9 + 0x30) == 0) {
LAB_0028a100:
              local_c8 = &local_98;
              lVar6 = FUN_001a64f0(lVar9 + 0x20,lVar15,&DAT_0055840a,&local_c8,&local_ea);
            }
            else {
              do {
                while ((lVar6 = lVar8, *(byte **)(lVar6 + 0x20) < param_3 ||
                       ((param_3 == *(byte **)(lVar6 + 0x20) && (*(uint *)(lVar6 + 0x28) < param_4))
                       ))) {
                  plVar3 = (long *)(lVar6 + 0x18);
                  lVar6 = lVar10;
                  lVar8 = *plVar3;
                  if (*plVar3 == 0) goto LAB_0028a0da;
                }
                lVar10 = lVar6;
                lVar8 = *(long *)(lVar6 + 0x10);
              } while (*(long *)(lVar6 + 0x10) != 0);
LAB_0028a0da:
              bVar23 = lVar6 == lVar15;
              lVar15 = lVar6;
              if (((bVar23) || (param_3 < *(byte **)(lVar6 + 0x20))) ||
                 ((param_3 == *(byte **)(lVar6 + 0x20) && (param_4 < *(uint *)(lVar6 + 0x28)))))
              goto LAB_0028a100;
            }
            local_d0 = lVar6 + 0x30;
            FUN_001a78f0(local_d0,&local_88,&local_d0,1);
            plVar3 = *(long **)(PTR_DAT_0067cb08 + 0x18);
            if (plVar3 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
              FUN_00352af0("../../gold/parameters.h",0x73,"sized_target");
            }
            if (*(code **)(*plVar3 + 0x208) != FUN_001c0b90) {
              (**(code **)(*plVar3 + 0x208))
                        (plVar3,param_1,param_3,param_4,local_120,local_104,local_130);
            }
            if (local_140 != (byte *)0x0) {
              lVar15 = *(long *)(param_1 + 0x290);
              local_58 = local_48;
              sVar7 = strlen((char *)local_140);
              FUN_001a61c0(&local_58,local_140,local_140 + sVar7);
              lVar15 = FUN_001c4d80(lVar15 + 0x88,&local_58);
              if (local_58 != local_48) {
                FUN_0049e330();
              }
              lVar9 = *(long *)(param_1 + 0x290);
              if (lVar15 != lVar9 + 0x90) {
                lVar10 = lVar9 + 0x28;
                local_50 = CONCAT44(local_50._4_4_,param_4);
                lVar8 = lVar10;
                lVar6 = *(long *)(lVar9 + 0x30);
                if (*(long *)(lVar9 + 0x30) == 0) {
LAB_0028a5e0:
                  local_c0 = &local_58;
                  local_58 = param_3;
                  lVar11 = FUN_001a64f0(lVar9 + 0x20,lVar10,&DAT_0055840a,&local_c0,&local_e9);
                }
                else {
                  do {
                    while ((lVar11 = lVar6, *(byte **)(lVar11 + 0x20) < param_3 ||
                           ((param_3 == *(byte **)(lVar11 + 0x20) &&
                            (*(uint *)(lVar11 + 0x28) < param_4))))) {
                      plVar3 = (long *)(lVar11 + 0x18);
                      lVar11 = lVar8;
                      lVar6 = *plVar3;
                      if (*plVar3 == 0) goto LAB_0028a24a;
                    }
                    lVar8 = lVar11;
                    lVar6 = *(long *)(lVar11 + 0x10);
                  } while (*(long *)(lVar11 + 0x10) != 0);
LAB_0028a24a:
                  bVar23 = lVar10 == lVar11;
                  lVar10 = lVar11;
                  if (((bVar23) || (param_3 < *(byte **)(lVar11 + 0x20))) ||
                     ((local_58 = param_3, param_3 == *(byte **)(lVar11 + 0x20) &&
                      (param_4 < *(uint *)(lVar11 + 0x28))))) goto LAB_0028a5e0;
                }
                for (puVar1 = *(undefined8 **)(lVar15 + 0x50); puVar1 != (undefined8 *)0x0;
                    puVar1 = (undefined8 *)*puVar1) {
                  local_d8 = lVar11 + 0x30;
                  FUN_001a78f0(lVar11 + 0x30,puVar1 + 1,&local_d8,1);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar12 < *(uint *)(param_3 + 0x120)) {
          local_88 = (byte *)0x0;
LAB_0028a4f8:
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/gc.h",0x11c,"gc_process_relocs");
        }
        uVar19 = (ulong)(uVar12 - *(uint *)(param_3 + 0x120));
        if ((ulong)(*(long *)(param_3 + 0x138) - *(long *)(param_3 + 0x130) >> 3) <= uVar19) {
                    /* WARNING: Subroutine does not return */
          FUN_00352af0("../../gold/object.h",0x8ad,"global_symbol");
        }
        local_88 = *(byte **)(*(long *)(param_3 + 0x130) + uVar19 * 8);
        if (local_88 == (byte *)0x0) goto LAB_0028a4f8;
        if ((local_88[0x3a] & 0x10) != 0) {
          local_88 = (byte *)FUN_00443570(param_1,local_88);
        }
        if ((local_88[0x3a] & 7) == 0) {
          pbVar17 = *(byte **)(local_88 + 0x40);
          local_120 = *(byte **)(local_88 + 0x10);
          local_130 = pbVar17 + uVar2;
          if ((local_120[0x3c] & 1) == 0) {
            local_104 = *(uint *)(local_88 + 0x18);
            bVar14 = local_88[0x3b] >> 5 & 1;
            uVar20 = (local_88[0x38] & 0xf) < 2;
            uVar24 = (local_88[0x38] & 0xf) == 2;
            if ((bool)uVar24) {
              uVar20 = 0;
              uVar24 = local_135 == '\0';
              if (!(bool)uVar24) {
                uVar20 = false;
                uVar24 = bVar14 == 0;
                if (!(bool)uVar24) {
                  pbVar13 = *(byte **)local_88;
                  lVar15 = 0x16;
                  pbVar16 = pbVar13;
                  pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";
                  do {
                    bVar23 = (bool)uVar20;
                    if (lVar15 == 0) break;
                    lVar15 = lVar15 + -1;
                    uVar20 = *pbVar16 < *pbVar18;
                    uVar24 = *pbVar16 == *pbVar18;
                    pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;
                    pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;
                    bVar23 = (bool)uVar20;
                  } while ((bool)uVar24);
                  uVar20 = 0;
                  uVar24 = (!bVar23 && !(bool)uVar24) == bVar23;
                  if ((bool)uVar24) goto LAB_0028a359;
                  if (*(long *)(PTR_DAT_0067cb08 + 0x10) == 0) {
                    /* WARNING: Subroutine does not return */
                    FUN_00352af0("../../gold/parameters.h",0x5c,"options");
                  }
                  if (*(char *)(*(long *)(PTR_DAT_0067cb08 + 0x10) + 0x2a61) != '\0') {
                    uVar20 = false;
                    uVar24 = (local_88[0x39] & 3) == 0;
                    if (!(bool)uVar24) goto LAB_0028a6f0;
                  }
                  uVar12 = local_118 - 0x24;
                  uVar20 = uVar12 < 0x27;
                  uVar24 = uVar12 == 0x27;
                  if ((0x27 < uVar12) ||
                     (uVar20 = (0xf03fffffffU >> ((ulong)uVar12 & 0x3f) & 1) != 0, !(bool)uVar20))
                  goto LAB_0028a359;
                }
LAB_0028a6f0:
                local_e0 = *(long *)(param_1 + 0x298) + 0x68;
                local_b8 = local_120;
                local_b0 = local_104;
                FUN_001a7850(local_e0,&local_b8,&local_e0,1);
              }
            }
            pbVar13 = *(byte **)local_88;
          }
          else {
            local_104 = 0;
            pbVar13 = *(byte **)local_88;
            uVar20 = 0;
            bVar14 = 0;
            uVar24 = 1;
            local_120 = (byte *)0x0;
          }
        }
        else {
          pbVar17 = *(byte **)(local_88 + 0x40);
          pbVar13 = *(byte **)local_88;
          uVar20 = 0;
          bVar14 = 0;
          uVar24 = 1;
          local_104 = 0;
          local_120 = (byte *)0x0;
          local_130 = pbVar17 + uVar2;
        }
LAB_0028a359:
        lVar15 = 8;
        pbVar16 = (byte *)"__start_";
        pbVar18 = pbVar13;
        do {
          if (lVar15 == 0) break;
          lVar15 = lVar15 + -1;
          uVar20 = *pbVar16 < *pbVar18;
          uVar24 = *pbVar16 == *pbVar18;
          pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;
          pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;
        } while ((bool)uVar24);
        bVar23 = false;
        bVar25 = (!(bool)uVar20 && !(bool)uVar24) == (bool)uVar20;
        if (bVar25) {
          pbVar13 = pbVar13 + 8;
        }
        else {
          lVar15 = 7;
          pbVar16 = (byte *)"__stop_";
          pbVar18 = pbVar13;
          do {
            if (lVar15 == 0) break;
            lVar15 = lVar15 + -1;
            bVar23 = *pbVar16 < *pbVar18;
            bVar25 = *pbVar16 == *pbVar18;
            pbVar16 = pbVar16 + (ulong)bVar26 * -2 + 1;
            pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;
          } while (bVar25);
          pbVar13 = pbVar13 + 7;
          if ((!bVar23 && !bVar25) != bVar23) {
            pbVar13 = local_140;
          }
        }
        local_140 = pbVar13;
        if (bVar22) {
          if (bVar14 == 0) {
            local_58 = (byte *)0x0;
            local_50 = (ulong)local_50._4_4_ << 0x20;
            FUN_001a7180(local_160,&local_58);
          }
          else {
            local_58 = local_120;
            local_50 = CONCAT44(local_50._4_4_,local_104);
            FUN_001a7180(local_160,&local_58);
          }
          puVar1 = *(undefined8 **)(local_158 + 8);
          if (puVar1 == *(undefined8 **)(local_158 + 0x10)) {
            FUN_001a5d30(local_158,puVar1,&local_88);
          }
          else {
            *puVar1 = local_88;
            *(undefined8 **)(local_158 + 8) = puVar1 + 1;
          }
          local_58 = pbVar17;
          local_50 = uVar2;
          FUN_001a74a0(local_168,&local_58);
          local_58 = (byte *)*param_5;
          puVar1 = *(undefined8 **)(local_148 + 8);
          if (puVar1 == *(undefined8 **)(local_148 + 0x10)) {
            FUN_001a6070(local_148,puVar1,&local_58);
          }
          else {
            *puVar1 = local_58;
            *(undefined8 **)(local_148 + 8) = puVar1 + 1;
          }
          local_98 = (byte *)((ulong)local_98 & 0xffffffff00000000);
          FUN_001a7630(local_170,&local_98);
        }
        if (bVar14 != 0) goto LAB_0028a049;
      }
LAB_00289ec8:
      local_100 = local_100 + 1;
      param_5 = param_5 + 3;
    } while (param_6 != local_100);
  }
  if (local_78[0] != local_68) {
    FUN_0049e330();
  }
  return;
}

